Просмотр исходного кода

Merge branch 'mode-min-unit' into mode-min-unit-sc

sucheng 6 месяцев назад
Родитель
Сommit
6e12e5ffd1

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

@@ -560,9 +560,11 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             if (!updateConflictVoList.isEmpty()) {
                 updateConflictVoList.forEach(data -> {
                     ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = data.getApsProcessOperationProcessEquDo();
+                    this.updateById(apsProcessOperationProcessEquDo);
                     affectedIdList.addAll(checkProcessingTimeConflict(apsProcessOperationProcessEquDo,
                             data.getOldPlanStartdate(), data.getOldPlanEnddate(), data.getOldEquId(), data.getCurrentProcessWay(), returnAboutIds));
                     // 判断是否存在设备不可用
+                    apsProcessOperationProcessEquDo = this.getById(apsProcessOperationProcessEquDo.getId());
                     inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo,
                             apsProcessOperationProcessEquDo.getProcessdeviceid(),
                             apsProcessOperationProcessEquDo.getPlanstartdate(),
@@ -678,7 +680,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
         //如果作业明细计划完工时间超出订单期望交货期,记录警告:完工时间超出订单交货期
         //警告
         String newSoftconflictdes = apsProcessOperationProcessEquDo.getSoftconflictdes();
-        if (apsProcessOperationProcessEquDo.getPlanenddate().compareTo(apsBlankOrderDo.getDeliverydate()) > 0){
+        if (apsProcessOperationProcessEquDo.getPlanenddate().compareTo(apsBlankOrderDo.getDeliverydate()) > 0) {
             apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
                     "作业明细计划完工时间:" + apsProcessOperationProcessEquDo.getPlanenddate() + ",坯料计划期望交货期:" + apsBlankOrderDo.getDeliverydate(), PLAN_END_DATE_AFTER_DELIVERY_DATE, 1, null);
             newSoftconflictdes = addNewConflictsDesc(newSoftconflictdes, PLAN_END_DATE_AFTER_DELIVERY_DATE);
@@ -693,11 +695,11 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             Date earlyPlanStartDate = this.baseMapper.getEarltPlanStartDate(apsProcessOperationProcessEquDo.getBlankid());
             if (DateUtil.between(apsProcessOperationProcessEquDo.getPlanenddate(), earlyPlanStartDate, DateUnit.DAY) > apsBlankOrderDo.getExpecteddays()) {
                 apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
-                        "作业明细计划完工时间:" + apsProcessOperationProcessEquDo.getPlanenddate() + ",该坯料计划非铸轧作业明细的最早计划开工时间:" + earlyPlanStartDate+",坯料计划冷轧交货天数:"+apsBlankOrderDo.getExpecteddays(), NO_ABOUT_EXPECTED_DAYS, 1, null);
+                        "作业明细计划完工时间:" + apsProcessOperationProcessEquDo.getPlanenddate() + ",该坯料计划非铸轧作业明细的最早计划开工时间:" + earlyPlanStartDate + ",坯料计划冷轧交货天数:" + apsBlankOrderDo.getExpecteddays(), NO_ABOUT_EXPECTED_DAYS, 1, null);
                 newSoftconflictdes = addNewConflictsDesc(newSoftconflictdes, NO_ABOUT_EXPECTED_DAYS);
             } else {
                 apsConflictLogService.recordLog(apsProcessOperationProcessEquDo.getId(),
-                        "作业明细计划完工时间:" + apsProcessOperationProcessEquDo.getPlanenddate() + ",该坯料计划非铸轧作业明细的最早计划开工时间:" + earlyPlanStartDate+",坯料计划冷轧交货天数:"+apsBlankOrderDo.getExpecteddays(), NO_ABOUT_EXPECTED_DAYS, 2, null);
+                        "作业明细计划完工时间:" + apsProcessOperationProcessEquDo.getPlanenddate() + ",该坯料计划非铸轧作业明细的最早计划开工时间:" + earlyPlanStartDate + ",坯料计划冷轧交货天数:" + apsBlankOrderDo.getExpecteddays(), NO_ABOUT_EXPECTED_DAYS, 2, null);
                 newSoftconflictdes = removeConflictsDesc(newSoftconflictdes, NO_ABOUT_EXPECTED_DAYS);
             }
         }
@@ -830,9 +832,11 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
         }
         updateConflictVos.forEach(data -> {
             ApsProcessOperationProcessEquDo apsProcessOperationProcessEquDo = data.getApsProcessOperationProcessEquDo();
+            this.updateById(apsProcessOperationProcessEquDo);
             affectedIdList.addAll(checkProcessingTimeConflict(apsProcessOperationProcessEquDo,
                     data.getOldPlanStartdate(), data.getOldPlanEnddate(), data.getOldEquId(), data.getCurrentProcessWay(), returnAboutIds));
             // 判断是否存在设备不可用
+            apsProcessOperationProcessEquDo = this.getById(apsProcessOperationProcessEquDo.getId());
             inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo,
                     apsProcessOperationProcessEquDo.getProcessdeviceid(),
                     apsProcessOperationProcessEquDo.getPlanstartdate(),
@@ -926,18 +930,21 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             });
             //避免合并加工时,找到除去本身之外同一计划开工日期同一设备‘更新时间’更改之后存在冲突的工序作业明细
             this.updateBatchById(changeApsProcessEquList);
+            ApsProcessOperationProcessEquDo finalApsProcessOperationProcessEquDo = apsProcessOperationProcessEquDo;
             changeApsProcessEquList.forEach(detail -> {
                 //当工序作业为合并加工时处理工序作业明细冲突
-                String oldEquId = apsProcessOperationProcessEquDo.getProcessdeviceid();
-                Date oldPlanstartdate = apsProcessOperationProcessEquDo.getPlanstartdate();
-                Date oldPlanenddate = apsProcessOperationProcessEquDo.getPlanenddate();
+                String oldEquId = finalApsProcessOperationProcessEquDo.getProcessdeviceid();
+                Date oldPlanstartdate = finalApsProcessOperationProcessEquDo.getPlanstartdate();
+                Date oldPlanenddate = finalApsProcessOperationProcessEquDo.getPlanenddate();
+                this.updateById(finalApsProcessOperationProcessEquDo);
                 // 增加受影响的工序作业信息
                 affectedIdList.addAll(checkProcessingTimeConflict(detail, oldPlanstartdate,
                         oldPlanenddate, oldEquId, apsProcessOperationDo.getProcessway(), new ArrayList<>()));
                 // 判断是否存在设备不可用
+                detail = this.getById(detail.getId());
                 inspectionEquipmentIsAvailable(detail, detail.getProcessdeviceid()
                         , detail.getPlanstartdate(), detail.getPlanenddate());
-                if (!detail.getId().equals(apsProcessOperationProcessEquDo.getId())) {
+                if (!detail.getId().equals(finalApsProcessOperationProcessEquDo.getId())) {
                     mergeWorkerIdList.add(detail.getId());
                 }
             });
@@ -966,12 +973,14 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                 // 自动计算计划完工时间=原完工时间+新计划开工时间-原计划开工时间
                 apsProcessOperationProcessEquDo.setPlanenddate(new Date(apsProcessOperationProcessEquDo.getPlanenddate().getTime() +
                         jobDetailsVo.getPlanStartTime().getTime() - oldPlanstartdate.getTime()));
+                this.updateById(apsProcessOperationProcessEquDo);
                 // 增加受影响的工序作业信息
                 affectedIdList.addAll(checkProcessingTimeConflict(apsProcessOperationProcessEquDo, oldPlanstartdate,
                         oldPlanenddate, oldEquId, apsProcessOperationDo.getProcessway(), new ArrayList<>()));
             }
-            this.updateById(apsProcessOperationProcessEquDo);
+//            this.updateById(apsProcessOperationProcessEquDo);
             // 判断是否存在设备不可用
+            apsProcessOperationProcessEquDo = this.getById(apsProcessOperationProcessEquDo.getId());
             inspectionEquipmentIsAvailable(apsProcessOperationProcessEquDo, apsProcessOperationProcessEquDo.getProcessdeviceid()
                     , apsProcessOperationProcessEquDo.getPlanstartdate(), apsProcessOperationProcessEquDo.getPlanenddate());
         }
@@ -1241,15 +1250,16 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                     newDo.setCreatedate(new Date());
                     newDo.setModifydate(new Date());
                     affectedIdList.add(newDo.getId());
+                    this.save(newDo);
                     // 增加受影响的工序作业信息
                     affectedIdList.addAll(checkProcessingTimeConflict(newDo, newDo.getPlanstartdate(),
                             newDo.getPlanenddate(), newDo.getProcessdeviceid(),
                             currentProcessOperationDo.getProcessway(), new ArrayList<>()));
-                    this.save(newDo);
+                    newDo = this.getById(newDo.getId());
                     newDataList.add(newDo);
                 }
             });
-            this.saveOrUpdateBatch(newDataList);
+//            this.saveOrUpdateBatch(newDataList);
             newDataList.forEach(newDo -> {
                 // 判断是否存在设备不可用
                 inspectionEquipmentIsAvailable(newDo, newDo.getProcessdeviceid()
@@ -1680,6 +1690,12 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
         Date olddate1 = DateUtil.offsetDay(oldPlanstartdate, -5);
         Date olddate2 = DateUtil.offsetDay(oldPlanenddate, 5);
         List<ProcessVo> oldList = this.baseMapper.selectMyProcessVo(oldEquId, olddate1, olddate2);
+//        for (ProcessVo item : oldList) {
+//            if (item.getProcessEquId().equals(apsProcessOperationProcessEquDo.getId())) {
+//                item.setPlanStartTime(apsProcessOperationProcessEquDo.getPlanstartdate());
+//                item.setPlanEndTime(apsProcessOperationProcessEquDo.getPlanenddate());
+//            }
+//        }
         List<ProcessVo> needRemoveTimeOverLapList = checkNeedRemove(oldList,
                 oldPlanstartdate,
                 oldPlanenddate,
@@ -1697,6 +1713,12 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
         DateTime newdate1 = DateUtil.offsetDay(apsProcessOperationProcessEquDo.getPlanstartdate(), -5);
         DateTime newdate2 = DateUtil.offsetDay(apsProcessOperationProcessEquDo.getPlanenddate(), 5);
         List<ProcessVo> newList = this.baseMapper.selectMyProcessVo(apsProcessOperationProcessEquDo.getProcessdeviceid(), newdate1, newdate2);
+//        for (ProcessVo item : newList) {
+//            if (item.getProcessEquId().equals(apsProcessOperationProcessEquDo.getId())) {
+//                item.setPlanStartTime(apsProcessOperationProcessEquDo.getPlanstartdate());
+//                item.setPlanEndTime(apsProcessOperationProcessEquDo.getPlanenddate());
+//            }
+//        }
         List<ProcessVo> needAddTimeOverLapList = checkNeedAdd(newList,
                 apsProcessOperationProcessEquDo.getPlanstartdate(),
                 apsProcessOperationProcessEquDo.getPlanenddate(),
@@ -1800,7 +1822,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
 //                });
 //            }
 //        }
-        apsProcessOperationProcessEquDo = this.getById(apsProcessOperationProcessEquDo.getId());
+//        apsProcessOperationProcessEquDo = this.getById(apsProcessOperationProcessEquDo.getId());
         return affectedIdList;
     }