Browse Source

aps-坯料计划领料增加数据库字段值校验

sucheng 9 months ago
parent
commit
72e3c84b17

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

@@ -136,4 +136,6 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
     @Select("select count(1) from aps_work_in_progress_inventory where DELETED = 0 AND (BLANKBATCHNUMBER =  #{batchNumber} OR BLANKBATCHNUMBER like CONCAT(#{batchNumber},'-%') OR #{batchNumber} like CONCAT(BLANKBATCHNUMBER,'-%'))")
     Integer selectCountWorkIn(@Param("batchNumber") String batchNumber);
 
+    @Select("select GROUP_CONCAT(distinct IF(b.BACHMATERIALPROCESS = '', null,b.BACHMATERIALPROCESS) ) AS 'BACHMATERIALPROCESS' from aps_process_operation a LEFT JOIN aps_process_operation_process_equ b ON b.DELETED = 0 AND a.ID = b.PROCESSID where a.DELETED = 0 AND a.ID = #{processId} AND a.PREVIOUSPROCESSID is null group by a.ID")
+    String selectBatchNumbersByProcessId(@Param("processId") String processId);
 }

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

@@ -2962,6 +2962,9 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             return R.error("领料数量不能大于计划加工卷数-已开工卷数-已取消卷数=" + needStartRoll);
         }
 
+        //查询目前的作业明细包含的批次号
+        String nowNumber = this.baseMapper.selectBatchNumbersByProcessId(apsProcessOperationDo.getId());
+
         //原来的批次号
         String oldBatchNumbers = req.getOldBatchNumbers();
         LinkedList<String> oldBatchNumberList = new LinkedList<>();
@@ -2969,6 +2972,22 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             oldBatchNumberList = new LinkedList<>(Arrays.asList(oldBatchNumbers.split(",")));
         }
 
+        //判断旧的批次号有没有变化
+        List<String> nowNumberList = Arrays.asList(nowNumber.split(","));
+        if (nowNumberList.size() != oldBatchNumberList.size()) {
+            return R.error("领料批次号可能已经被使用,请刷新后重新领料");
+        }
+        for (String s : nowNumberList) {
+            if (!oldBatchNumberList.contains(s)) {
+                return R.error("领料批次号可能已经被使用,请刷新后重新领料");
+            }
+        }
+        for (String s : oldBatchNumberList) {
+            if (!nowNumberList.contains(s)) {
+                return R.error("领料批次号可能已经被使用,请刷新后重新领料");
+            }
+        }
+
         //新的批次号集合
         List<String> addBatchNumberList = new LinkedList<>();
         //删除的批次号集合