Selaa lähdekoodia

同步订单新增成品备货

fgd 1 vuosi sitten
vanhempi
commit
2cc507c25c

+ 14 - 2
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -745,7 +745,11 @@ public class WlnOrderServiceImpl implements WlnOrderService {
 
             OrderInfo orderInfo = orderMap.get(orderId);
 
-            boolean lockStorageFlag = inventoryService.lockStorage(orderSkuList);
+            boolean lockStorageFlag;
+            // 先判断成品是否能锁定
+            if (!(lockStorageFlag = inventoryFinishedService.lockNoSourceStorage(orderSkuList))) {
+                lockStorageFlag = inventoryService.lockStorage(orderSkuList);
+            }
 
             if (lockStorageFlag) {
                 orderInfo.setLockStorage(StatusConstant.YES);
@@ -764,7 +768,10 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         Map<Long, List<OrderSku>> existOrderSkuMap = context.getExistOrderSkuMap();
         Map<Long, BomSpecBo> bomSpecBoMap = context.getBomSpecBoMap();
 
+        // 半成品解锁库存sku
         List<OrderSku> unlockStorageOrderSkuList = new ArrayList<>();
+        // 成品解锁库存sku
+        List<OrderSku> unlockFinishedStorageOrderSkuList = new ArrayList<>();
 
         for (OrderInfo orderInfo : updateOrderList) {
             if (ObjectUtil.equal(orderInfo.getExceptionType(), OrderExceptionTypeEnum.NORMAL.getKey().toString())
@@ -785,11 +792,16 @@ public class WlnOrderServiceImpl implements WlnOrderService {
                     })
                     .collect(Collectors.toList());
 
-            unlockStorageOrderSkuList.addAll(orderSkuList);
+            if (Objects.equals(orderInfo.getStockType(), StatusConstant.YES)) {
+                unlockFinishedStorageOrderSkuList.addAll(orderSkuList);
+            } else {
+                unlockStorageOrderSkuList.addAll(orderSkuList);
+            }
             orderInfo.setLockStorage(StatusConstant.NO);
         }
 
         inventoryService.unlockStorage(unlockStorageOrderSkuList);
+        inventoryFinishedService.unlockNoSourceStorage(unlockFinishedStorageOrderSkuList);
     }
 
     /**