Procházet zdrojové kódy

aps-相同线下批次号领料逻辑

sucheng před 4 měsíci
rodič
revize
3889c5e3fc

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

@@ -178,4 +178,6 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
     List<ApsProcessOperationProcessEquDo> selectAllNeedSortTuiHuo(@Param("chongpaiEndDate") DateTime chongpaiEndDate,@Param("tenantId") String tenantId);
 
     List<ApsBlankOrderVo> getNeedScheduleList(@Param("tenantId") String tenantId);
+
+    List<ApsBlankOrderDo> selectBlankByStartNum(@Param("startNum") String startNum, @Param("blankId") String blankId);
 }

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

@@ -746,7 +746,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
      */
     @Override
     public void blankOrderAps(List<ApsBlankOrderVo> apsBlankOrders) {
-        apsService.apsSchedule(apsBlankOrders, new ApsTypeVo(), null, null, null,null);
+        apsService.apsSchedule(apsBlankOrders, new ApsTypeVo(), null, null, null, null);
 //        //调度排程
 //        //判断是否是 18:00:00-24:00:00/00:00:00-5:00:00
 //        // 获取当前时间
@@ -3492,7 +3492,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
     public void insertSchedule(Map<String, Object> params) {
         List<ApsBlankOrderVo> apsBlankOrders = apsBlankOrderDao.getByOrderBlanckId(params.get("PRODUCTIONORDERID").toString(), params.get("BLANKORDERID").toString());
         if (apsBlankOrders != null && apsBlankOrders.size() > 0) {
-            apsService.apsSchedule(apsBlankOrders, new ApsTypeVo(), null, null, null,null);
+            apsService.apsSchedule(apsBlankOrders, new ApsTypeVo(), null, null, null, null);
         }
     }
 
@@ -3644,11 +3644,26 @@ 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() + "领料");
+                        //批次号"-"之前的值
+                        String startNum = s.split("-")[0];
+                        List<ApsBlankOrderDo> list = this.baseMapper.selectBlankByStartNum(startNum, req.getBlankId());
+                        if (!list.isEmpty()) {
+                            for (ApsBlankOrderDo blankOrderDo : list) {
+                                String[] batchs = blankOrderDo.getPreparematerialbatchno().split(",");
+                                for (String batch : batchs) {
+                                    if (batch.startsWith(s + "-")
+                                            || batch.equals(s)
+                                            || s.startsWith(batch + "-")) {
+                                        return R.error("线下批次号" + s + "已经被坯料计划" + blankOrderDo.getBlanknumber() + "领料");
+                                    }
+                                }
+                            }
                         }
+//                        //查询是否已被其他坯料计划领料
+//                        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 {
@@ -4108,11 +4123,26 @@ 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() + "领料");
+                    //批次号"-"之前的值
+                    String startNum = s.split("-")[0];
+                    List<ApsBlankOrderDo> list = this.baseMapper.selectBlankByStartNum(startNum, req.getBlankId());
+                    if (!list.isEmpty()) {
+                        for (ApsBlankOrderDo blankOrderDo : list) {
+                            String[] batchs = blankOrderDo.getPreparematerialbatchno().split(",");
+                            for (String batch : batchs) {
+                                if (batch.startsWith(s + "-")
+                                        || batch.equals(s)
+                                        || s.startsWith(batch + "-")) {
+                                    return R.error("线下批次号" + s + "已经被坯料计划" + blankOrderDo.getBlanknumber() + "领料");
+                                }
+                            }
+                        }
                     }
+//                    //查询是否已被其他坯料计划领料
+//                    ApsBlankOrderDo blankOrderDo = this.baseMapper.countThisBatchNumber(s, req.getBlankId());
+//                    if (ObjectUtil.isNotEmpty(blankOrderDo)) {
+//                        return R.error("该批次号" + s + "已被其他坯料计划" + blankOrderDo.getBlanknumber() + "领料");
+//                    }
 
 
                     offLineBatchNumberList.add(s);
@@ -4421,7 +4451,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 //调度排程之后,进行预排程
                 //查询待排程的订单
                 List<ApsBlankOrderVo> resBlankList = apsBlankOrderDao.getNeedScheduleList(bancaiTenantId);
-                apsService.apsSchedule(resBlankList, new ApsTypeVo(), currentUser, null, null,null);
+                apsService.apsSchedule(resBlankList, new ApsTypeVo(), currentUser, null, null, null);
             }
             log.info("线程1执行完成:{}", bancaiTenantId);
         });
@@ -4455,7 +4485,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 //调度排程之后,进行预排程
                 //查询待排程的订单
                 List<ApsBlankOrderVo> resBlankList = apsBlankOrderDao.getNeedScheduleList(bocaiTenantId);
-                apsService.apsSchedule(resBlankList, new ApsTypeVo(), currentUser, null, null,null);
+                apsService.apsSchedule(resBlankList, new ApsTypeVo(), currentUser, null, null, null);
             }
             log.info("线程2执行完成:{}", bocaiTenantId);
         });
@@ -4679,7 +4709,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         needUnLockProcessIdList.addAll(notNeedUnLockProcessIdList);
         needUnLockProcessIdList = needUnLockProcessIdList.stream().distinct().collect(Collectors.toList());
         log.info("所有传入退火排程的作业ID:{}", needUnLockProcessIdList);
-        apsService.apsSchedule(new ArrayList<>(), apsTypeVo, currentUser, needUnLockProcessIdList, chongpaiStartDate,chongpaiEndDate);
+        apsService.apsSchedule(new ArrayList<>(), apsTypeVo, currentUser, needUnLockProcessIdList, chongpaiStartDate, chongpaiEndDate);
 
     }
 
@@ -4851,7 +4881,7 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
         needUnLockProcessIdList.addAll(notNeedUnLockProcessIdList);
         needUnLockProcessIdList = needUnLockProcessIdList.stream().distinct().collect(Collectors.toList());
         log.info("所有传入冷轧排程的作业ID:{}", needUnLockProcessIdList);
-        apsService.apsSchedule(new ArrayList<>(), apsTypeVo, currentUser, needUnLockProcessIdList, chongpaiStartDate,chongpaiEndDate);
+        apsService.apsSchedule(new ArrayList<>(), apsTypeVo, currentUser, needUnLockProcessIdList, chongpaiStartDate, chongpaiEndDate);
 
     }
 

+ 7 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsBlankOrderDao.xml

@@ -578,4 +578,11 @@
           AND abo.SCHEDULINGSTATUS = '10'
           AND abo.TENANTID = #{tenantId}
     </select>
+    <select id="selectBlankByStartNum" resultType="com.rongwei.bsentity.domain.ApsBlankOrderDo">
+        select *
+        from aps_blank_order
+        where DELETED = 0
+        AND PREPAREMATERIALBATCHNO like CONCAT('%',#{startNum},'%')
+        AND ID != #{blankId}
+    </select>
 </mapper>