|
@@ -204,8 +204,10 @@ public class StockPreparationServiceImpl implements StockPreparationService {
|
|
|
|
|
|
// 生产任务、生产工单
|
|
|
Map<Long, List<StockPreparationVo>> map = list.stream().collect(Collectors.groupingBy(StockPreparationVo::getOrderId));
|
|
|
- map.forEach((orderId, stockPreparationVoList) ->
|
|
|
- addTaskAndWorkOrder(stockPreparationVoList, productionTaskList, productionWorkOrderList));
|
|
|
+ map.forEach((orderId, stockPreparationVoList) -> {
|
|
|
+ String orderCode = stockPreparationVoList.get(0).getOrderCode();
|
|
|
+ addTaskAndWorkOrder(orderId, orderCode, productionTaskList, productionWorkOrderList);
|
|
|
+ });
|
|
|
|
|
|
if (productionTaskList.size() > 0) {
|
|
|
productionTaskService.saveBatch(productionTaskList);
|
|
@@ -400,26 +402,23 @@ public class StockPreparationServiceImpl implements StockPreparationService {
|
|
|
/**
|
|
|
* 添加 生产任务、工单
|
|
|
*/
|
|
|
- private void addTaskAndWorkOrder(List<StockPreparationVo> stockPreparationVoList,
|
|
|
+ private void addTaskAndWorkOrder(Long orderId,
|
|
|
+ String orderCode,
|
|
|
List<ProductionTask> productionTaskList,
|
|
|
List<ProductionWorkOrder> productionWorkOrderList) {
|
|
|
|
|
|
- if (stockPreparationVoList.size() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- Long orderId = stockPreparationVoList.get(0).getOrderId();
|
|
|
- String orderCode = stockPreparationVoList.get(0).getOrderCode();
|
|
|
+ List<OrderSku> orderSkuList = orderSkuService.list(q -> q.eq(OrderSku::getOrderId, orderId));
|
|
|
|
|
|
Map<String, ProductionTask> skuSpecIdProductionTaskMap = new HashMap<>();
|
|
|
+
|
|
|
int num = 1;
|
|
|
|
|
|
- for (StockPreparationVo preparationVo : stockPreparationVoList) {
|
|
|
+ for (OrderSku orderSku : orderSkuList) {
|
|
|
|
|
|
- Long skuSpecId = preparationVo.getSkuSpecId();
|
|
|
- Long bomSpecId = preparationVo.getBomSpecId();
|
|
|
- Integer printType = preparationVo.getPrintType();
|
|
|
- BigDecimal quantity = preparationVo.getQuantity();
|
|
|
+ Long skuSpecId = orderSku.getSkuSpecId();
|
|
|
+ Long bomSpecId = orderSku.getBomSpecId();
|
|
|
+ Integer printType = orderSku.getPrintType();
|
|
|
+ BigDecimal quantity = orderSku.getQuantity();
|
|
|
|
|
|
ProductionTask productionTask = skuSpecIdProductionTaskMap.computeIfAbsent(
|
|
|
skuSpecId + ":" + bomSpecId + ":" + printType,
|