Kaynağa Gözat

备料时委外订单主材不出库

fgd 1 yıl önce
ebeveyn
işleme
29f6655775

+ 28 - 4
sd-business/src/main/java/com/sd/business/service/production/impl/StockPreparationServiceImpl.java

@@ -104,7 +104,17 @@ public class StockPreparationServiceImpl implements StockPreparationService {
         IWrapper<StockPreparationVo> wrapper = getWrapper(dto);
         List<StockPreparationVo> stockPreparationVoList = stockPreparationMapper.uncompletedList(wrapper);
 
-        return stockPreparationVoList.stream().collect(Collectors.toMap(
+        // 查询出委外订单,委外订单不出库主材
+        List<Long> orderIds = stockPreparationVoList.stream().map(StockPreparationVo::getOrderId).collect(Collectors.toList());
+        List<Long> outsourceOrderIds = orderService.list(q -> q
+                .in(BaseIdPo::getId, orderIds)
+                .eq(OrderInfo::getType, 2)
+                .select(BaseIdPo::getId))
+                .stream().map(BaseIdPo::getId).collect(Collectors.toList());
+
+        return stockPreparationVoList.stream()
+                .filter(item -> outsourceOrderIds.isEmpty() || !outsourceOrderIds.contains(item.getOrderId()))
+                .collect(Collectors.toMap(
                         StockPreparationVo::getBomSpecId,
                         item -> {
                             UncompletedVo uncompletedVo = new UncompletedVo();
@@ -300,7 +310,14 @@ public class StockPreparationServiceImpl implements StockPreparationService {
         }
 
         List<Long> orderIdList = stockPreparationVoList.stream().map(StockPreparationVo::getOrderId).distinct().collect(Collectors.toList());
-        List<OrderSku> orderSkuList = orderSkuService.list(q -> q.in(OrderSku::getOrderId, orderIdList));
+        // 查询出委外订单,委外订单不出库主材
+        List<Long> outsourceOrderIds = orderService.list(q -> q
+                        .in(BaseIdPo::getId, orderIdList)
+                        .eq(OrderInfo::getType, 2)
+                        .select(BaseIdPo::getId))
+                .stream().map(BaseIdPo::getId).collect(Collectors.toList());
+        List<OrderSku> orderSkuList = orderSkuService.list(q -> q.in(OrderSku::getOrderId, orderIdList)
+                .notIn(!outsourceOrderIds.isEmpty(), OrderSku::getOrderId, outsourceOrderIds));
         List<OrderSkuBom> orderSkuBomList = orderSkuBomService.list(q -> q.in(OrderSkuBom::getOrderId, orderIdList));
         Map<Long, OrderSku> orderSkuMap = orderSkuList.stream().collect(Collectors.toMap(BaseIdPo::getId, Function.identity()));
 
@@ -462,8 +479,15 @@ public class StockPreparationServiceImpl implements StockPreparationService {
                 item -> ObjectUtil.defaultIfNull(item.getLockStorage(), StatusConstant.NO),
                 (v1, v2) -> v1)
         );
-
-        List<OrderSku> orderSkuList = orderSkuService.list(q -> q.in(OrderSku::getOrderId, orderIdLockStorageMap.keySet()));
+        // 查询出委外订单,委外订单不出库主材
+        List<Long> outsourceOrderIds = orderService.list(q -> q
+                        .in(BaseIdPo::getId, orderIdLockStorageMap.keySet())
+                        .eq(OrderInfo::getType, 2)
+                        .select(BaseIdPo::getId))
+                .stream().map(BaseIdPo::getId).collect(Collectors.toList());
+
+        List<OrderSku> orderSkuList = orderSkuService.list(q -> q.in(OrderSku::getOrderId, orderIdLockStorageMap.keySet())
+                .notIn(!outsourceOrderIds.isEmpty(), OrderSku::getOrderId, outsourceOrderIds));
         List<OrderSkuBom> orderSkuBomList = orderSkuBomService.list(q -> q.in(OrderSkuBom::getOrderId, orderIdLockStorageMap.keySet()));
         Map<Long, OrderSku> orderSkuMap = orderSkuList.stream().collect(Collectors.toMap(BaseIdPo::getId, Function.identity()));