Browse Source

Merge remote-tracking branch 'origin/mode-min-unit' into mode-min-unit

xiahan 1 năm trước cách đây
mục cha
commit
079dc1887b

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

@@ -1991,8 +1991,8 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
              * 如果有坯料计划的承诺交货期-止 < 排程交货期,错误提示:第{几}个坯料计划的承诺交货期-止不能早于排程交货期{排程交货期}
              */
             if (req.getCheckDevice()) {
-                if (ObjectUtil.isEmpty(apsBlankOrderDo.getPromisedateend())) {
-                    return R.error("请填写所有坯料计划的承诺交货期-止");
+                if (ObjectUtil.isEmpty(apsBlankOrderDo.getPromisedatestart()) || ObjectUtil.isEmpty(apsBlankOrderDo.getPromisedateend())) {
+                    return R.error("请填写所有坯料计划的承诺交货期");
                 }
                 if (ObjectUtil.isEmpty(apsBlankOrderDo.getScheduledateend())) {
                     return R.error("第" + j + "个坯料计划 排程交货期-止不能为空");

+ 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)) {