فهرست منبع

aps-提交时更新所有涉及客户订单号冗余字段的地方

sucheng 2 هفته پیش
والد
کامیت
6beb72b03e

+ 54 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionOrderServiceImpl.java

@@ -171,6 +171,8 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
     private SysGeneralCRUDService sysGeneralCRUDService;
     @Autowired
     private ApsCustomerManagementService apsCustomerManagementService;
+    @Autowired
+    private ApsReportRecordsService apsReportRecordsService;
 
 
     public static final String ERROR_MSG = "%s上诉订单的排程交货期大于承诺交货期";
@@ -1259,7 +1261,40 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
         String orderno = StringUtils.isNotBlank(orderDo.getOrderno()) ? orderDo.getOrderno() : "";
         String customorderno = StringUtils.isNotBlank(orderDo.getCustomorderno()) ? orderDo.getCustomorderno() : "";
         String customname = StringUtils.isNotBlank(orderDo.getCustomname()) ? orderDo.getCustomname() : "";
+        //更新产品明细的客户订单号
+        if (!apsBlankOrderDoList.isEmpty()) {
+            List<ApsProductDetailDo> needUpdateDetailList = new LinkedList<>();
+            for (ApsProductDetailDo apsProductDetailDo : apsProductDetailVoList) {
+                String mergeordernumber = apsProductDetailDo.getMergeordernumber();
+                if (StringUtils.isNotBlank(mergeordernumber)) {
+                    ApsProductDetailDo needUpdateDetail = new ApsProductDetailDo();
+                    needUpdateDetail.setId(apsProductDetailDo.getId());
+                    //查询对应合并订单的详情
+                    ApsProductionMergeOrderDo apsProductionMergeOrderDo = apsProductionMergeOrderDoList.stream().filter(item -> item.getDeleted().equals("0") && StringUtils.isNotBlank(item.getCustomorderno()) && item.getCustomorderno().equals(apsProductDetailDo.getCustomorderno())).findFirst().orElse(null);
+                    if (apsProductionMergeOrderDo == null) {
+                        needUpdateDetail.setCustomorderno(customorderno);
+                    } else {
+                        needUpdateDetail.setCustomorderno(apsProductionMergeOrderDo.getCustomorderno());
+                    }
+                } else {
+                    if (customorderno != apsProductDetailDo.getCustomorderno()) {
+                        ApsProductDetailDo needUpdateDetail = new ApsProductDetailDo();
+                        needUpdateDetail.setId(apsProductDetailDo.getId());
+                        needUpdateDetail.setCustomorderno(customorderno);
+                        needUpdateDetailList.add(needUpdateDetail);
+                    }
+                }
+            }
+
+            if (!needUpdateDetailList.isEmpty()) {
+                apsProductDetailService.updateBatchById(needUpdateDetailList);
+                apsProductDetailVoList = apsProductDetailService.list(new LambdaQueryWrapper<ApsProductDetailDo>().eq(ApsProductDetailDo::getMainid, orderDo.getId()));
+            }
+        }
+
         List<String> blankIdList = apsBlankOrderDoList.stream().map(ApsBlankOrderDo::getId).collect(Collectors.toList());
+        Map<String, String> blankNumberAndCustomOrder = new HashMap<>();
+        Map<String, String> blankIdAndCustomOrder = new HashMap<>();
         if (!blankIdList.isEmpty()) {
             List<ApsProcessOutputProductDo> apsProcessOutputProductDoList = apsProcessOutputProductService.list(new LambdaQueryWrapper<ApsProcessOutputProductDo>().in(ApsProcessOutputProductDo::getBlankid, blankIdList));
             List<ApsProcessOutputProductDo> needUpdateOutProductList = new LinkedList<>();
@@ -1321,6 +1356,11 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                 needUpdateBlank.setCustomname(customNames);
                 needUpdateBlank.setCustomeasyname(customEasyNames);
                 needUpdateBlankList.add(needUpdateBlank);
+                ApsBlankOrderDo apsBlankOrderDo = apsBlankOrderDoList.stream().filter(item -> item.getId().equals(key)).findFirst().orElse(null);
+                if (apsBlankOrderDo != null) {
+                    blankNumberAndCustomOrder.put(apsBlankOrderDo.getBlanknumber(), customOrderNos);
+                }
+                blankIdAndCustomOrder.put(key, customOrderNos);
             }
             //更新输出成品集合和坯料计划集合
             if (!needUpdateOutProductList.isEmpty()) {
@@ -1330,6 +1370,20 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
                 apsBlankOrderService.updateBatchById(needUpdateBlankList);
             }
         }
+
+        //更新报工记录
+        blankNumberAndCustomOrder.forEach((key, value) -> {
+            apsReportRecordsService.update(new LambdaUpdateWrapper<ApsReportRecordsDo>()
+                    .set(ApsReportRecordsDo::getReportcustomorderno, value)
+                    .eq(ApsReportRecordsDo::getReportblanknumber, key));
+        });
+
+        //更新在制品库存
+        blankIdAndCustomOrder.forEach((key, value) -> {
+            apsWorkInProgressInventoryService.update(new LambdaUpdateWrapper<ApsWorkInProgressInventoryDo>()
+                    .set(ApsWorkInProgressInventoryDo::getCustomorderno, value)
+                    .eq(ApsWorkInProgressInventoryDo::getPlanblankid, key));
+        });
     }
 
     @Override