24282 1 gadu atpakaļ
vecāks
revīzija
1464e9c114

+ 13 - 14
sd-business/src/main/java/com/sd/business/service/production/impl/StockPreparationServiceImpl.java

@@ -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,