Bläddra i källkod

bugFix 修改开工时间后 数据不正确的问题

xiahan 1 år sedan
förälder
incheckning
ee840c2a47

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

@@ -252,7 +252,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             // 获取该工序作业最早的计划开始时间
             Date planstartdate = processEqus.getPlanstartdate();
             // 获取开工时间间隔=所选作业明细最早计划开工时间-所选加工开始时间
-            long timeInterval = DateUtil.between(changingWiresVo.getProcessingTime(), planstartdate, DateUnit.SECOND,false);
+            long timeInterval = planstartdate.getTime()- changingWiresVo.getProcessingTime().getTime();
 
             // 待开工的直接修改
             if (JOBSTATUS_TO_BE_START.equals(processEqus.getWorkstatus())) {
@@ -261,8 +261,10 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                 processEqus.setProcessworkshop(changingWiresVo.getWorkshopName());
                 processEqus.setProcessdeviceid(changingWiresVo.getEquId());
                 processEqus.setProcessdevice(changingWiresVo.getEquName());
-                processEqus.setPlanstartdate(DateUtil.offsetSecond(processEqus.getPlanstartdate(), (int) timeInterval));
-                processEqus.setPlanenddate(DateUtil.offsetSecond(processEqus.getPlanenddate(), (int) timeInterval));
+                // 计计划开工时间=计划开工时间-开工时间间隔
+                processEqus.setPlanstartdate(new Date(planstartdate.getTime()-timeInterval));
+                // 计划完工时间=计划完工时间-开工时间间隔
+                processEqus.setPlanenddate(new Date(processEqus.getPlanenddate().getTime()-timeInterval));
                 checkConflictVos.add(new CheckConflictVo(processEqus.getId(), processEqus.getProcessdeviceid(),
                         processEqus.getPlanstartdate(), processEqus.getPlanenddate()));
                 // 判断是否存在设备不可用
@@ -486,7 +488,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             long timeInterval = DateUtil.between(planStartTime, oldPlanstartdate, DateUnit.SECOND, false);
             apsProcessOperationProcessEquDo.setPlanstartdate(planStartTime);
             // 自动计算计划完工时间=原完工时间+新计划开工时间-原计划开工时间
-            apsProcessOperationProcessEquDo.setPlanenddate(DateUtil.offsetSecond(apsProcessOperationProcessEquDo.getPlanenddate(), (int) timeInterval));
+            apsProcessOperationProcessEquDo.setPlanenddate(new Date(apsProcessOperationProcessEquDo.getPlanenddate().getTime()+jobDetailsVo.getPlanStartTime().getTime()-oldPlanstartdate.getTime()));
             // 获取更新之前的存在冲突的工序作业
             List<ApsProcessOperationProcessEquDo> beforeUpdatingConflictId = this.baseMapper.getConflictId(
                     oldEquId, id, oldPlanstartdate, oldPlanenddate);