소스 검색

aps-直接删除订单影响在制品库存状态相关代码修改

sucheng 1 주 전
부모
커밋
f12921b198
1개의 변경된 파일17개의 추가작업 그리고 29개의 파일을 삭제
  1. 17 29
      cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java

+ 17 - 29
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsBlankOrderServiceImpl.java

@@ -3117,31 +3117,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         ApsUtils.checkSchedulingByBlankId(null, req.getId());
         ApsBlankOrderDo apsBlankOrderDo = this.getById(req.getId());
 
-        //如果是否备料=是,备料对应在制品的备料计划ID=(空),在制品状态=备料中
-        if (ObjectUtil.isNotEmpty(apsBlankOrderDo.getPreparematerialbatchno())) {
-//            apsWorkInProgressInventoryService.update(new UpdateWrapper<ApsWorkInProgressInventoryDo>().lambda()
-//                    .set(ApsWorkInProgressInventoryDo::getPlanmaterialid, "")
-//                    .set(ApsWorkInProgressInventoryDo::getWorkinprocessstatus, SaveConstans.WorkInProgressStatus.WAITING)
-//                    .eq(ApsWorkInProgressInventoryDo::getBlankid, req.getId()));
-            List<String> batchNumberList = Arrays.asList(apsBlankOrderDo.getPreparematerialbatchno().split(","));
-            List<ApsWorkInProgressInventoryDo> apsWorkInProgressInventoryDos = apsWorkInProgressInventoryService.list(new LambdaQueryWrapper<ApsWorkInProgressInventoryDo>()
-                    .in(ApsWorkInProgressInventoryDo::getBatchnumber, batchNumberList));
-            List<String> workInProgressIds = apsWorkInProgressInventoryDos.stream().filter(item -> StringUtils.isNotBlank(item.getPreviousworkinprocessstatus()))
-                    .map(ApsWorkInProgressInventoryDo::getId)
-                    .distinct()
-                    .collect(Collectors.toList());
-            if (!workInProgressIds.isEmpty()) {
-                apsWorkInProgressInventoryService.update(new UpdateWrapper<ApsWorkInProgressInventoryDo>().lambda()
-                        .set(ApsWorkInProgressInventoryDo::getPlanmaterialid, null)
-                        .setSql("WORKINPROCESSSTATUS = IF(PREVIOUSWORKINPROCESSSTATUS = '待加工','备料中',PREVIOUSWORKINPROCESSSTATUS)")
-                        .eq(ApsWorkInProgressInventoryDo::getDeleted, "0")
-                        .in(ApsWorkInProgressInventoryDo::getId, workInProgressIds));
-            }
-            //更新坯料计划该字段为空
-            apsBlankOrderService.update(new UpdateWrapper<ApsBlankOrderDo>().lambda()
-                    .set(ApsBlankOrderDo::getPreparematerialbatchno, null)
-                    .eq(ApsBlankOrderDo::getId, apsBlankOrderDo.getId()));
-        }
+
         removeBlankOrderAndChild(apsBlankOrderDo);
 
         //物理删除相关的工序作业备份
@@ -3175,10 +3151,22 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         this.removeById(req.getId());
 
         //如果是备料,删除计划后,备料的计划ID设置为空
-        if (req.getPreparematerial().equals("是")) {
-            ApsWorkInProgressInventoryDo needUpdate = new ApsWorkInProgressInventoryDo();
-            needUpdate.setPlanmaterialid("");
-            apsWorkInProgressInventoryService.update(needUpdate, new QueryWrapper<ApsWorkInProgressInventoryDo>().lambda().eq(ApsWorkInProgressInventoryDo::getPlanmaterialid, req.getId()));
+        //如果是否备料=是,备料对应在制品的备料计划ID=(空),在制品状态=备料中
+        if (ObjectUtil.isNotEmpty(req.getPreparematerialbatchno())) {
+            List<String> batchNumberList = Arrays.asList(req.getPreparematerialbatchno().split(","));
+            List<ApsWorkInProgressInventoryDo> apsWorkInProgressInventoryDos = apsWorkInProgressInventoryService.list(new LambdaQueryWrapper<ApsWorkInProgressInventoryDo>()
+                    .in(ApsWorkInProgressInventoryDo::getBatchnumber, batchNumberList));
+            List<String> workInProgressIds = apsWorkInProgressInventoryDos.stream().filter(item -> StringUtils.isNotBlank(item.getPreviousworkinprocessstatus()))
+                    .map(ApsWorkInProgressInventoryDo::getId)
+                    .distinct()
+                    .collect(Collectors.toList());
+            if (!workInProgressIds.isEmpty()) {
+                apsWorkInProgressInventoryService.update(new UpdateWrapper<ApsWorkInProgressInventoryDo>().lambda()
+                        .set(ApsWorkInProgressInventoryDo::getPlanmaterialid, null)
+                        .setSql("WORKINPROCESSSTATUS = IF(PREVIOUSWORKINPROCESSSTATUS = '待加工','备料中',PREVIOUSWORKINPROCESSSTATUS)")
+                        .eq(ApsWorkInProgressInventoryDo::getDeleted, "0")
+                        .in(ApsWorkInProgressInventoryDo::getId, workInProgressIds));
+            }
         }
 
         //逻辑删除坯料计划输出成品