瀏覽代碼

aps-领料增加防止重复逻辑

sucheng 7 月之前
父節點
當前提交
dca203b944

+ 2 - 2
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsBlankOrderDao.java

@@ -147,6 +147,6 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
     @Select("select * from aps_process_operation_process_equ where DELETED = 0 AND FIND_IN_SET(#{batchnumber},BACHMATERIALPROCESS) limit 1")
     ApsProcessOperationProcessEquDo selectUseThisBatchNumberProcessEqu(@Param("batchnumber") String batchnumber);
 
-    @Select("select * from aps_blank_order where DELETED = 0 AND FIND_IN_SET(#{batchNumber},PREPAREMATERIALBATCHNO) limit 1")
-    ApsBlankOrderDo countThisBatchNumber(@Param("batchNumber") String batchNumber);
+    @Select("select * from aps_blank_order where DELETED = 0 AND FIND_IN_SET(#{batchNumber},PREPAREMATERIALBATCHNO) AND ID != #{blankId} limit 1")
+    ApsBlankOrderDo countThisBatchNumber(@Param("batchNumber") String batchNumber, @Param("blankId") String blankId);
 }

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

@@ -540,9 +540,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 retMsg = "解锁成功";
             }
             return R.ok("200", retMsg, orderLockVo.getId());
-        }else{
+        } else {
             Date lockStartTime = orderLockVo.getLockStartTime();
-            if(lockStartTime != null){
+            if (lockStartTime != null) {
                 // 获取排程参数设置
                 List<ApsScheduleConfigDo> apsConfigs = apsScheduleConfigService.list();
                 // 默认最小排程时间
@@ -555,7 +555,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 }
                 Date date = orderLockGetSearChDate(lockStartTime, defaultStartStartSchedulerun, lockMark);
                 List<ApsProcessOperationProcessEquDo> processDetailInfoByLockTime = this.baseMapper.getProcessDetailInfoByLockTime(date, lockMark);
-                if(processDetailInfoByLockTime != null && processDetailInfoByLockTime.size()>0){
+                if (processDetailInfoByLockTime != null && processDetailInfoByLockTime.size() > 0) {
                     List<String> lpeus = processDetailInfoByLockTime.stream().map(ApsProcessOperationProcessEquDo::getId).collect(Collectors.toList());
                     apsProcessOperationProcessEquService.update(new LambdaUpdateWrapper<ApsProcessOperationProcessEquDo>()
                             .in(ApsProcessOperationProcessEquDo::getId, lpeus)
@@ -564,7 +564,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                     // 锁定
                     if (LOCKMARK_Y.equals(lockMark)) {
                         retMsg = "锁定成功";
-                    }else if (LOCKMARK_N.equals(lockMark)) {
+                    } else if (LOCKMARK_N.equals(lockMark)) {
                         retMsg = "解锁成功";
                     }
                     return R.ok("200", retMsg, lpeus);
@@ -3309,14 +3309,6 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             List<ApsWorkInProgressInventoryDo> workInProgressInventoryDos = new LinkedList<>();
             if (ObjectUtil.isNotEmpty(addBatchNumberList)) {
 
-                //查询是否已被其他坯料计划领料
-                for (String batchNumber : addBatchNumberList) {
-                    ApsBlankOrderDo blankOrderDo = this.baseMapper.countThisBatchNumber(batchNumber);
-                    if (ObjectUtil.isNotEmpty(blankOrderDo)) {
-                        return R.error("该批次号" + batchNumber + "已被其他坯料计划" + blankOrderDo.getBlanknumber() + "领料");
-                    }
-                }
-
                 //查询新增的批次号
                 workInProgressInventoryDos =
                         apsWorkInProgressInventoryService.list(new QueryWrapper<ApsWorkInProgressInventoryDo>().lambda()
@@ -3336,6 +3328,11 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                     if (!s.startsWith("*")) {
                         s = "*" + s;
                         addBatchNumberList.set(i, s);
+                        //查询是否已被其他坯料计划领料
+                        ApsBlankOrderDo blankOrderDo = this.baseMapper.countThisBatchNumber(s, req.getBlankId());
+                        if (ObjectUtil.isNotEmpty(blankOrderDo)) {
+                            return R.error("该批次号" + s + "已被其他坯料计划" + blankOrderDo.getBlanknumber() + "领料");
+                        }
                         batchNumberList.set(batchNumberList.indexOf(addBatchNumber), s);
                     }
                 } else {
@@ -3731,15 +3728,6 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
 
             List<ApsWorkInProgressInventoryDo> workInProgressInventoryDos = new LinkedList<>();
             if (ObjectUtil.isNotEmpty(addBatchNumberList)) {
-                //查询是否已被其他坯料计划领料
-                for (String batchNumber : addBatchNumberList) {
-                    ApsBlankOrderDo blankOrderDo = this.baseMapper.countThisBatchNumber(batchNumber);
-                    if (ObjectUtil.isNotEmpty(blankOrderDo)) {
-                        return R.error("该批次号" + batchNumber + "已被其他坯料计划" + blankOrderDo.getBlanknumber() + "领料");
-                    }
-                }
-
-
                 //查询新增的批次号
                 workInProgressInventoryDos =
                         apsWorkInProgressInventoryService.list(new QueryWrapper<ApsWorkInProgressInventoryDo>().lambda()
@@ -3784,6 +3772,11 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                     if (count > 0) {
                         return R.error("线下批次号" + s + "与其他线下批次号重复");
                     }
+                    //查询是否已被其他坯料计划领料
+                    ApsBlankOrderDo blankOrderDo = this.baseMapper.countThisBatchNumber(s, req.getBlankId());
+                    if (ObjectUtil.isNotEmpty(blankOrderDo)) {
+                        return R.error("该批次号" + s + "已被其他坯料计划" + blankOrderDo.getBlanknumber() + "领料");
+                    }
 
 
                     offLineBatchNumberList.add(s);