Kaynağa Gözat

更新工序作业取消卷数

DLC 1 yıl önce
ebeveyn
işleme
b77a0a0396

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

@@ -97,8 +97,6 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
     @Autowired
     private ApsProcessOperationBackupDao apsProcessOperationBackupDao;
     @Autowired
-    private ApsProcessOperationProcessEquDao apsProcessOperationProcessEquDao;
-    @Autowired
     private ApsProcessOperationProcessEquBackupDao apsProcessOperationProcessEquBackupDao;
     @Autowired
     private ApsScheduleConfigService apsScheduleConfigService;
@@ -1950,6 +1948,16 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
                 apsProcessOperationProcessEquDoList.add(processOperationProcessEquDo);
             }
 
+            //作业计划开工时间=所有作业明细最早计划开工时间
+            Optional<Date> minDate = apsProcessOperationProcessEquDos.stream()
+                    .map(ApsProcessOperationProcessEquDo::getPlanstartdate).min(Comparator.naturalOrder());
+            apsProcessOperationDo.setPlanstartdate(new Date(minDate.get().getTime()));
+
+            //作业计划完工时间=所有作业明细最晚计划完工时间
+            Optional<Date> maxDate = apsProcessOperationProcessEquDos.stream()
+                    .map(ApsProcessOperationProcessEquDo::getPlanenddate).max(Comparator.naturalOrder());
+            apsProcessOperationDo.setPlanenddate(new Date(maxDate.get().getTime()));
+
             boolean bool1 = apsProcessOperationService.saveOrUpdate(apsProcessOperationDo);
             boolean bool2 = apsProcessOperationOutMaterService.saveOrUpdateBatch(apsProcessOperationOutMaterDoList);
             boolean bool3 = true;
@@ -1963,6 +1971,23 @@ public class ApsProcessOperationServiceImpl extends ServiceImpl<ApsProcessOperat
             apsProcessOperationProcessEquService.updateProductionStatus(req);
 
             if (bool1 && bool2 && bool3) {
+                String blanckId = apsProcessOperationDo.getBlankid();
+                List<String> blankIds = Arrays.asList(blanckId.split(","));
+                String processId = apsProcessOperationDo.getId();
+                List<String> processIds = Arrays.asList(processId.split(","));
+                //先清除该坯料计划的排程结果备份
+                apsProcessOperationBackupDao.deletedByBlankId(blankIds, null);
+                apsProcessOperationProcessEquBackupDao.deletedByBlankId(blankIds, null);
+
+                //再备份工序作业及作业明细
+                SysUserVo currentUser = CXCommonUtils.getCurrentUser();
+                apsProcessOperationBackupDao.processOperationBackup(processIds,
+                        currentUser == null ? "" : currentUser.getId(),
+                        currentUser == null ? "" : currentUser.getName());
+                apsProcessOperationProcessEquBackupDao.processOperationEquCopy(processIds,
+                        currentUser == null ? "" : currentUser.getId(),
+                        currentUser == null ? "" : currentUser.getName());
+
                 //更新坯料计划的所选工艺路线相关信息
                 ApsCraftRouteDo apsCraftRouteDo = null;
                 if (StringUtils.isNotBlank(craftrouteid)) {