Ver Fonte

aps-拆分

sucheng há 4 meses atrás
pai
commit
fba3627dcf

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

@@ -647,6 +647,8 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             }
         } else {
             needUpdateOld.setWorkstatus("已完工");
+            needUpdateOld.setActualfinishdate(DateUtil.date());
+
         }
         //临时计算待加工料卷批次号数量
         //如果剩余待开工卷数<待加工料卷批次号数量,

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

@@ -967,6 +967,77 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
                 }
             }
 
+            //查询当前的报工记录信息
+            ApsReportRecordsDo nowReportRecordsDo = this.getById(apsReportRecordsDo.getId());
+            //查询对应的工序作业信息
+            ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(nowReportRecordsDo.getProcessoperationid());
+            //明细
+            ApsProcessOperationProcessEquDo processEquDo = apsProcessOperationProcessEquService.getById(nowReportRecordsDo.getProcessequid());
+
+            //合并加工工序拆分
+            //如果剩余待开工卷数>0,则根据剩余待开工卷数拆分作业明细,参见【拆分作业明细】,
+            //检查记录新拆分作业明细冲突,参见【一键自动排程/记录作业冲突和警告】
+            Integer newLeaveWaitWorkRoll = processEquDo.getLeavewaitworkroll();
+            if (newLeaveWaitWorkRoll > 0) {
+                //待更新作业明细集合
+                List<ApsProcessOperationProcessEquDo> waitUpdateEquList = new LinkedList<>();
+                //待新增作业明细集合
+                List<ApsProcessOperationProcessEquDo> waitInsertEquList = new LinkedList<>();
+                List<ApsProcessOperationProcessEquDo> needUpdateOldList = new LinkedList<>();
+                List<ApsProcessOperationProcessEquDo> needInsertNewList = new LinkedList<>();
+                apsProcessOperationProcessEquService.splitProcessEqu(processEquDo,
+                        newLeaveWaitWorkRoll,
+                        apsProcessOperationDo,
+                        processEquDo.getPreviousprocessesids(),
+                        needUpdateOldList,
+                        needInsertNewList,
+                        waitUpdateEquList,
+                        waitInsertEquList);
+                Set<String> needUpdateProcessIdList = new HashSet<>();
+
+                //拆分完执行sql更新数据
+                if (!needInsertNewList.isEmpty()) {
+                    apsProcessOperationProcessEquService.saveBatch(needInsertNewList);
+                    needUpdateProcessIdList.addAll(needInsertNewList.stream().map(ApsProcessOperationProcessEquDo::getProcessid).collect(Collectors.toList()));
+                }
+                if (!needUpdateOldList.isEmpty()) {
+                    apsProcessOperationProcessEquService.updateBatchById(needUpdateOldList);
+                    needUpdateProcessIdList.addAll(needUpdateOldList.stream().map(ApsProcessOperationProcessEquDo::getProcessid).collect(Collectors.toList()));
+                }
+                if (!needUpdateProcessIdList.isEmpty()) {
+                    //更新对应工序作业的 计划完工时间和计划开工时间
+                    apsProcessOperationProcessEquDao.updateProcessPlanTimeByProcessIds(needUpdateProcessIdList);
+                }
+                //判断新拆分的作业的冲突
+                if (apsProcessOperationDo.getProcessway().equals("合并加工")) {
+                    for (ApsProcessOperationProcessEquDo equDo : needInsertNewList) {
+                        ApsProcessOperationProcessEquDo processEqu = apsProcessOperationProcessEquService.getById(equDo.getId());
+                        ApsProcessOperationDo process = apsProcessOperationService.getById(processEqu.getProcessid());
+                        apsProcessOperationProcessEquService.checkProcessingTimeConflict(processEqu,
+                                null, null, null, process.getProcessway(), new LinkedList<>());
+                        processEqu = apsProcessOperationProcessEquService.getById(processEqu.getId());
+                        apsProcessOperationProcessEquService.inspectionEquipmentIsAvailable(processEqu,
+                                processEqu.getProcessdeviceid(),
+                                processEqu.getPlanstartdate(),
+                                processEqu.getPlanenddate(),
+                                new LinkedList<>());
+                    }
+                    for (ApsProcessOperationProcessEquDo equDo : needUpdateOldList) {
+                        ApsProcessOperationProcessEquDo processEqu = apsProcessOperationProcessEquService.getById(equDo.getId());
+                        ApsProcessOperationDo process = apsProcessOperationService.getById(processEqu.getProcessid());
+                        apsProcessOperationProcessEquService.checkProcessingTimeConflict(processEqu,
+                                null, null, null, process.getProcessway(), new LinkedList<>());
+                        processEqu = apsProcessOperationProcessEquService.getById(processEqu.getId());
+                        apsProcessOperationProcessEquService.inspectionEquipmentIsAvailable(processEqu,
+                                processEqu.getProcessdeviceid(),
+                                processEqu.getPlanstartdate(),
+                                processEqu.getPlanenddate(),
+                                new LinkedList<>());
+                    }
+                }
+
+            }
+
             //没有新增,只会更新
             apsReportRecordsDo.setCheckstatus("待检验");
 
@@ -984,11 +1055,6 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
                 apsReportBlankCompentService.updateBatchById(apsReportBlankCompentDoList);
             }
 
-            //查询当前的报工记录信息
-            ApsReportRecordsDo nowReportRecordsDo = this.getById(apsReportRecordsDo.getId());
-
-            //查询对应的工序作业信息
-            ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(nowReportRecordsDo.getProcessoperationid());
             //查询对应的工序作业明细信息
             ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = apsProcessOperationProcessEquService.getById(nowReportRecordsDo.getProcessequid());
             //查询对应的坯料计划信息
@@ -1250,69 +1316,6 @@ public class ApsReportRecordsServiceImpl extends ServiceImpl<ApsReportRecordsDao
                 }
             }
 
-            //如果剩余待开工卷数>0,则根据剩余待开工卷数拆分作业明细,参见【拆分作业明细】,
-            //检查记录新拆分作业明细冲突,参见【一键自动排程/记录作业冲突和警告】
-            Integer newLeaveWaitWorkRoll = apsProcessOperationProcessEquDo.getLeavewaitworkroll();
-            if (newLeaveWaitWorkRoll > 0) {
-                //待更新作业明细集合
-                List<ApsProcessOperationProcessEquDo> waitUpdateEquList = new LinkedList<>();
-                //待新增作业明细集合
-                List<ApsProcessOperationProcessEquDo> waitInsertEquList = new LinkedList<>();
-                List<ApsProcessOperationProcessEquDo> needUpdateOldList = new LinkedList<>();
-                List<ApsProcessOperationProcessEquDo> needInsertNewList = new LinkedList<>();
-                apsProcessOperationProcessEquService.splitProcessEqu(apsProcessOperationProcessEquDo,
-                        newLeaveWaitWorkRoll,
-                        apsProcessOperationDo,
-                        apsProcessOperationProcessEquDo.getId(),
-                        needUpdateOldList,
-                        needInsertNewList,
-                        waitUpdateEquList,
-                        waitInsertEquList);
-                Set<String> needUpdateProcessIdList = new HashSet<>();
-
-                //拆分完执行sql更新数据
-                if (!needInsertNewList.isEmpty()) {
-                    apsProcessOperationProcessEquService.saveBatch(needInsertNewList);
-                    needUpdateProcessIdList.addAll(needInsertNewList.stream().map(ApsProcessOperationProcessEquDo::getProcessid).collect(Collectors.toList()));
-                }
-                if (!needUpdateOldList.isEmpty()) {
-                    apsProcessOperationProcessEquService.updateBatchById(needUpdateOldList);
-                    needUpdateProcessIdList.addAll(needUpdateOldList.stream().map(ApsProcessOperationProcessEquDo::getProcessid).collect(Collectors.toList()));
-                }
-                if (!needUpdateProcessIdList.isEmpty()) {
-                    //更新对应工序作业的 计划完工时间和计划开工时间
-                    apsProcessOperationProcessEquDao.updateProcessPlanTimeByProcessIds(needUpdateProcessIdList);
-                }
-                //判断新拆分的作业的冲突
-                if (apsProcessOperationDo.getProcessway().equals("合并加工")) {
-                    for (ApsProcessOperationProcessEquDo equDo : needInsertNewList) {
-                        ApsProcessOperationProcessEquDo processEqu = apsProcessOperationProcessEquService.getById(equDo.getId());
-                        ApsProcessOperationDo process = apsProcessOperationService.getById(processEqu.getProcessid());
-                        apsProcessOperationProcessEquService.checkProcessingTimeConflict(processEqu,
-                                null, null, null, process.getProcessway(), new LinkedList<>());
-                        processEqu = apsProcessOperationProcessEquService.getById(processEqu.getId());
-                        apsProcessOperationProcessEquService.inspectionEquipmentIsAvailable(processEqu,
-                                processEqu.getProcessdeviceid(),
-                                processEqu.getPlanstartdate(),
-                                processEqu.getPlanenddate(),
-                                new LinkedList<>());
-                    }
-                    for (ApsProcessOperationProcessEquDo equDo : needUpdateOldList) {
-                        ApsProcessOperationProcessEquDo processEqu = apsProcessOperationProcessEquService.getById(equDo.getId());
-                        ApsProcessOperationDo process = apsProcessOperationService.getById(processEqu.getProcessid());
-                        apsProcessOperationProcessEquService.checkProcessingTimeConflict(processEqu,
-                                null, null, null, process.getProcessway(), new LinkedList<>());
-                        processEqu = apsProcessOperationProcessEquService.getById(processEqu.getId());
-                        apsProcessOperationProcessEquService.inspectionEquipmentIsAvailable(processEqu,
-                                processEqu.getProcessdeviceid(),
-                                processEqu.getPlanstartdate(),
-                                processEqu.getPlanenddate(),
-                                new LinkedList<>());
-                    }
-                }
-
-            }
-
             //=========更新生产状态等=============
             //更新生产状态
             CommonUpdateProductionStatusReq req3 = new CommonUpdateProductionStatusReq();