소스 검색

同步订单万里牛状态为1时,订单状态为待确认,不锁定库存

fgd 1 년 전
부모
커밋
218dc5dbb5

+ 2 - 4
sd-business/src/main/java/com/sd/business/service/in/impl/InOutStorageBomServiceImpl.java

@@ -65,7 +65,8 @@ public class InOutStorageBomServiceImpl extends ServiceImpl<InOutStorageBomMappe
         wrapper.eq("ios", InOutStorage::getDetailType, dto.getDetailType());
         wrapper.ge("ios", InOutStorage::getInOutStorageTime, dto.getBeginTime());
         wrapper.le("ios", InOutStorage::getInOutStorageTime, dto.getEndTime());
-
+        // 筛选吊牌、不干胶、彩纸出入库记录
+        wrapper.notIn("bs", BomSpec::getCode, "40904003", "409001", "40101010");
         Page<InOutStorageBomVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;
     }
@@ -98,10 +99,7 @@ public class InOutStorageBomServiceImpl extends ServiceImpl<InOutStorageBomMappe
         dto.setPageSize(9999999);
         Page<InOutStorageBomVo> page = this.getPage(dto);
         List<InOutStorageBomVo> list = page.getRecords();
-        // 筛选吊牌、不干胶、彩纸出入库记录
-        List<String> bomCodeList = Arrays.asList("40904003", "409001", "40101010");
         List<InOutStorageBomVo> inOutStorageBomList = list.stream()
-                .filter(item -> !bomCodeList.contains(item.getBomSpecCode()))
                 .filter(item -> {
                     // 导出入库明细,入库类型不为采购入库时。筛选掉采购入库记录
                     if (ObjectUtil.equals(dto.getType(), InOutTypeEnum.IN.getKey())

+ 21 - 3
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -40,6 +40,7 @@ import java.math.BigDecimal;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Slf4j
 @Service
@@ -209,7 +210,7 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         }
 
         // 订单进度
-        if (department != null && Objects.equals(department.getOrderMode(), "2")) {
+        if (department != null && Objects.equals(department.getOrderMode(), "2") && orderInfo.getWlnStatus() != 1) {
             orderInfo.setStatus(OrderStatusEnum.STOCK_PREPARATION.getKey());
         } else {
             orderInfo.setStatus(OrderStatusEnum.UNDER_REVIEW.getKey());
@@ -320,6 +321,14 @@ public class WlnOrderServiceImpl implements WlnOrderService {
             }
         }
 
+        // 万里牛订单状态不为1时,订单状态修改为备料中
+        if (department != null
+                && Objects.equals(department.getOrderMode(), "2")
+                && orderInfo.getWlnStatus() != 1
+                && Objects.equals(orderInfo.getStatus(), OrderStatusEnum.UNDER_REVIEW.getKey())) {
+            orderInfo.setStatus(OrderStatusEnum.STOCK_PREPARATION.getKey());
+        }
+
         updateOrderList.add(orderInfo);
     }
 
@@ -706,11 +715,20 @@ public class WlnOrderServiceImpl implements WlnOrderService {
         List<OrderInfo> saveOrderList = context.getSaveOrderList();
         List<OrderSku> saveOrderSkuList = context.getSaveOrderSkuList();
         Map<Long, BomSpecBo> bomSpecBoMap = context.getBomSpecBoMap();
+        List<OrderInfo> updateOrderList = context.getUpdateOrderList();
+        Map<Long, List<OrderSku>> existOrderSkuMap = context.getExistOrderSkuMap();
 
-        Map<Long, OrderInfo> orderMap = saveOrderList.stream().collect(Collectors.toMap(BaseIdPo::getId, Function.identity()));
+        Map<Long, OrderInfo> orderMap = Stream.concat(saveOrderList.stream(), updateOrderList.stream()).collect(Collectors.toMap(BaseIdPo::getId, Function.identity()));
 
-        Map<Long, List<OrderSku>> orderSkuMap = saveOrderSkuList.stream()
+        Map<Long, List<OrderSku>> orderSkuMap = Stream.concat(
+                        saveOrderSkuList.stream(),
+                        updateOrderList.stream()
+                                .map(item -> existOrderSkuMap.get(item.getId()))
+                                .flatMap(Collection::stream)
+                )
                 .filter(item -> orderMap.get(item.getOrderId()).getExceptionType().equals(OrderExceptionTypeEnum.NORMAL.getKey().toString()))
+                .filter(item -> Objects.equals(orderMap.get(item.getOrderId()).getStatus(), OrderStatusEnum.STOCK_PREPARATION.getKey()))
+                .filter(item -> Objects.equals(orderMap.get(item.getOrderId()).getLockStorage(), StatusConstant.NO))
                 .filter(item -> bomSpecBoMap.get(item.getBomSpecId()).getClassifyParentId().equals(1L))
                 .collect(Collectors.groupingBy(OrderSku::getOrderId));