Przeglądaj źródła

aps-批次号处理

sucheng 1 rok temu
rodzic
commit
813097a928

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

@@ -108,4 +108,7 @@ public interface ApsBlankOrderDao extends BaseMapper<ApsBlankOrderDo> {
 
     @Select("SELECT * FROM aps_blank_order WHERE DELETED = 0 AND PRODUCTIONORDERID = #{productionorderId}")
     List<ApsBlankOrderDo> selectBlankOrderByProductionorderId(@Param("productionorderId") String productionorderId);
+
+    @Update("update aps_process_operation_process_equ set BACHMATERIALPROCESS = REPLACE(REPLACE(REPLACE(BACHMATERIALPROCESS,'${batchnumber},',''),',${batchnumber}',''),'${batchnumber}','') where DELETED = 0 AND PREVIOUSPROCESSESIDS = #{processoperationequid} AND PROCESSID IN (select ID from aps_process_operation where DELETED = 0 AND PLANINPUTID = #{joboutputmaterialid})")
+    void updateBatchNumberByBorrow(@Param("batchnumber") String batchnumber, @Param("processoperationequid") String processoperationequid, @Param("joboutputmaterialid") String joboutputmaterialid);
 }

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

@@ -67,4 +67,6 @@ public interface ApsProcessOperationDao extends BaseMapper<ApsProcessOperationDo
     @Select("SELECT * FROM aps_process_operation WHERE DELETED = 0 AND BLANKID = #{blankid}")
     List<ApsProcessOperationDo> getProcessOperationByBlankId(@Param("blankid") String blankid);
 
+    @Update("update aps_process_operation_process_equ set BACHMATERIALPROCESS = IF(BACHMATERIALPROCESS is null || BACHMATERIALPROCESS = '',#{batchnumber},concat(BACHMATERIALPROCESS,',',#{batchnumber})) where DELETED = 0 AND PREVIOUSPROCESSESIDS = #{previousprocessesids}")
+    void updateBatchNumberByPrevious(@Param("batchnumber") String batchnumber, @Param("previousprocessesids") String previousprocessesids);
 }

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

@@ -49,6 +49,9 @@ public interface ApsReportRecordsDao extends BaseMapper<ApsReportRecordsDo> {
 
     @Select("select arr.ID from aps_process_operation apo LEFT JOIN aps_report_records arr ON arr.DELETED = 0 AND arr.PROCESSOPERATIONID = apo.ID LEFT JOIN aps_report_output aro ON aro.DELETED = 0 AND aro.MAINID = arr.ID where apo.DELETED = 0 AND aro.OUTPUTNUMBER = #{inputBatchNumber} ORDER BY arr.CREATEDATE desc limit 1")
     String selectLastReoprtRecordByBatchNumber(@Param("inputBatchNumber") String inputBatchNumber);
+
+    @Update("update aps_process_operation_process_equ set BACHMATERIALPROCESS = REPLACE(REPLACE(REPLACE(BACHMATERIALPROCESS,'${inputBatchNumber},',''),',${inputBatchNumber}',''),'${inputBatchNumber}','') where DELETED = 0 AND PREVIOUSPROCESSESIDS = #{previousprocessesids}")
+    void updateAllProcessEquBatchNumber(@Param("inputBatchNumber") String inputBatchNumber, @Param("previousprocessesids") String previousprocessesids);
 }
 
 

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

@@ -1728,10 +1728,15 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
                 String batchnumber = progressWork.getBatchnumber();
                 //获取该在制品作业明细的ID
                 String processoperationequid = progressWork.getProcessoperationequid();
+                //在制品对应的工序作业输出物料ID
+                String joboutputmaterialid = progressWork.getJoboutputmaterialid();
                 //该对应工序作业的已借调卷数=已借调卷数+1
                 this.baseMapper.processAddSecondRoll(processoperationid);
-                //将在制品的作业输出物料ID对应的所有后道工序作业的所有作业明细的待加工料卷批次号去掉“{批次号},”
-                this.baseMapper.processDeleteBatchNumber(batchnumber, processoperationid);
+//                //将在制品的作业输出物料ID对应的所有后道工序作业的所有作业明细的待加工料卷批次号去掉“{批次号},”
+//                this.baseMapper.processDeleteBatchNumber(batchnumber, processoperationid);
+                //查找该在制品作业明细ID对应的后道作业明细中,其工序作业的输入物料ID是该在制品的作业输出物料ID的所有作业明细,
+                //将这些作业明细的待加工料卷批次号去掉“{批次号},”
+                this.baseMapper.updateBatchNumberByBorrow(batchnumber, processoperationequid, joboutputmaterialid);
                 //处理后续工序状态
                 Map<String, Object> params2 = new HashMap<>();
                 params2.put("processId", processoperationid);

+ 39 - 28
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsReportRecordsServiceImpl.java

@@ -143,26 +143,30 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
 
         /**
          * 如果输入物料有批次号,则
-         * 如果该工序作业没有前道工序作业,则该工序作业所有作业明细的待加工料卷批次号加上“{批次号},”
-         * 如果该工序作业有前道工序作业,则输入物料对应前道工序作业的输出物料的所有后道工序作业的所有作业明细的待加工料卷批次号加上“{批次号},”
          */
         if (ObjectUtil.isNotEmpty(recordsDo.getBatchnumber())) {
-            //查询工序作业
-            ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(processoperationid);
-            //没有前道工序
-            if (ObjectUtil.isEmpty(apsProcessOperationDo.getPreviousprocessid())) {
-                apsProcessOperationDao.updateBatchNumberByProcessId(recordsDo.getBatchnumber(), processoperationid);
-            }
-            //有前道工序
-            if (ObjectUtil.isNotEmpty(apsProcessOperationDo.getPreviousprocessid())) {
-                //查询所有同级工序
-                List<ApsProcessOperationDo> list = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getPreviousprocessid, apsProcessOperationDo.getPreviousprocessid()));
-                List<String> processIdList = list.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
-                if (StringUtils.isNotBlank(recordsDo.getBatchnumber())) {
-                    //更新所有同级工序作业的明细,增加批次号
-                    apsProcessOperationDao.updateBatchNumberByProcessList(recordsDo.getBatchnumber(), processIdList);
-                }
-
+//            //查询工序作业
+//            ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(processoperationid);
+//            //没有前道工序
+//            if (ObjectUtil.isEmpty(apsProcessOperationDo.getPreviousprocessid())) {
+//                apsProcessOperationDao.updateBatchNumberByProcessId(recordsDo.getBatchnumber(), processoperationid);
+//            }
+//            //有前道工序
+//            if (ObjectUtil.isNotEmpty(apsProcessOperationDo.getPreviousprocessid())) {
+//                //查询所有同级工序
+//                List<ApsProcessOperationDo> list = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getPreviousprocessid, apsProcessOperationDo.getPreviousprocessid()));
+//                List<String> processIdList = list.stream().map(ApsProcessOperationDo::getId).collect(Collectors.toList());
+//                if (StringUtils.isNotBlank(recordsDo.getBatchnumber())) {
+//                    //更新所有同级工序作业的明细,增加批次号
+//                    apsProcessOperationDao.updateBatchNumberByProcessList(recordsDo.getBatchnumber(), processIdList);
+//                }
+//
+//            }
+            /**
+             * 如果该工序作业明细有前道工序作业明细,则将前道工序作业明细的所有后道工序作业明细的待加工料卷批次号加上“{批次号},”
+             */
+            if (ObjectUtil.isNotEmpty(equDo.getPreviousprocessesids()) && ObjectUtil.isNotEmpty(recordsDo.getBatchnumber())) {
+                apsProcessOperationDao.updateBatchNumberByPrevious(recordsDo.getBatchnumber(), equDo.getPreviousprocessesids());
             }
         }
 
@@ -278,16 +282,23 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
         //==========输入物料有批次号==============
         if (ObjectUtil.isNotEmpty(req.getInputBatchNumber())) {
             //如果该工序作业没有前道工序作业
-            if (ObjectUtil.isEmpty(apsProcessOperationDo.getPreviousprocessid())) {
-                //该工序作业的待加工料卷批次号去掉“{批次号},”或者“,{批次号}”
-                this.baseMapper.updateBatchMaterialProcess(req.getInputBatchNumber(), apsProcessOperationProcessEquDo.getId());
-            } else {//如果该工序作业有前道工序作业
-                //前道工序作业 的 所有后道工序作业(包含本工序作业【即所有与本工序同级的工序作业】) 的待加工料卷批次号去掉“{批次号},”或者“,{批次号}”
-                //查询前道工序作业的所有后道工序作业
-                List<ApsProcessOperationDo> nextProcessList = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getPreviousprocessid, apsProcessOperationDo.getPreviousprocessid()));
-                String collect = nextProcessList.stream().map(ApsProcessOperationDo::getId).collect(Collectors.joining("','"));
-                String processIds = "'" + collect + "'";
-                this.baseMapper.updateBatchMaterialProcessBatch(req.getInputBatchNumber(), processIds);
+//            if (ObjectUtil.isEmpty(apsProcessOperationDo.getPreviousprocessid())) {
+//                //该工序作业的待加工料卷批次号去掉“{批次号},”或者“,{批次号}”
+//                this.baseMapper.updateBatchMaterialProcess(req.getInputBatchNumber(), apsProcessOperationProcessEquDo.getId());
+//            } else {//如果该工序作业有前道工序作业
+//                //前道工序作业 的 所有后道工序作业(包含本工序作业【即所有与本工序同级的工序作业】) 的待加工料卷批次号去掉“{批次号},”或者“,{批次号}”
+//                //查询前道工序作业的所有后道工序作业
+//                List<ApsProcessOperationDo> nextProcessList = apsProcessOperationService.list(new QueryWrapper<ApsProcessOperationDo>().lambda().eq(ApsProcessOperationDo::getPreviousprocessid, apsProcessOperationDo.getPreviousprocessid()));
+//                String collect = nextProcessList.stream().map(ApsProcessOperationDo::getId).collect(Collectors.joining("','"));
+//                String processIds = "'" + collect + "'";
+//                this.baseMapper.updateBatchMaterialProcessBatch(req.getInputBatchNumber(), processIds);
+//            }
+            /**
+             * 如果该工序作业明细有前道工序作业明细,
+             * 则将前道工序作业明细的所有后道工序作业明细的待加工料卷批次号去掉“{批次号},”
+             */
+            if (ObjectUtil.isNotEmpty(apsProcessOperationProcessEquDo.getPreviousprocessesids())) {
+                this.baseMapper.updateAllProcessEquBatchNumber(req.getInputBatchNumber(), apsProcessOperationProcessEquDo.getPreviousprocessesids());
             }
         }