Kaynağa Gözat

aps-换线问题修改

sucheng 5 ay önce
ebeveyn
işleme
3bc46d1d96

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

@@ -346,6 +346,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             List<UpdateConflictVo> updateConflictVoList = new ArrayList<>();
             UpdateConflictVo updateConflictVo;
             for (ChangingWiresVo changingWiresVo : changingWiresVos) {
+                List<String> noUpdatePlanStartDate = new LinkedList<>();
                 updateConflictVo = new UpdateConflictVo();
                 // 工序作业明细
                 ApsProcessOperationProcessEquDo processEqus = apsProcessOperationProcessEquDos.stream()
@@ -419,6 +420,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                 }
                 //加工中的状态 将未加工的改变为重新生成
                 if (JOBSTATUS_TO_BE_STARTING.equals(processEqus.getWorkstatus())) {
+                    noUpdatePlanStartDate.add(processEqus.getId());
                     emptyBackup.set(true);
                     // 获取加工时长
                     //  long processingTime = DateUtil.between(processEqus.getPlanenddate(), processEqus.getPlanstartdate(), DateUnit.SECOND, false);
@@ -488,7 +490,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                             newProcessEqu.setPlanenddate(new Date(newProcessEqu.getPlanstartdate().getTime() + TimeUnit.MINUTES.toMillis(onceprocessmin.intValue()) - timeInterval));
                         } else {
                             // 如果工序作业的加工方式不是合并加工,则计划完工时间=计划开工时间+工序作业单卷加工时长*(计划加工卷数) - 开工时间间隔
-                            newProcessEqu.setPlanenddate(new Date(newProcessEqu.getPlanstartdate().getTime() + TimeUnit.MINUTES.toMillis((long) timeInterval * newProcessEqu.getPlanprocessrall()) - timeInterval));
+                            newProcessEqu.setPlanenddate(new Date(newProcessEqu.getPlanstartdate().getTime() + TimeUnit.MINUTES.toMillis((long) onceprocessmin.intValue() * newProcessEqu.getPlanprocessrall()) - timeInterval));
                         }
                         newProcessEqu.setPlanstartdate(new Date(newProcessEqu.getPlanstartdate().getTime() - timeInterval));
                         newProcessEqu.setStartingroll(0);
@@ -547,7 +549,9 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                         // 如果工序作业的加工方式不是合并加工,则计划完工时间=计划开工时间+工序作业单卷加工时长*计划加工卷数
                         processEqus.setPlanenddate(new Date(processEqus.getPlanstartdate().getTime() + TimeUnit.MINUTES.toMillis((long) onceprocessmin.intValue() * processEqus.getPlanprocessrall())));
                     }
-                    processEqus.setPlanstartdate(new Date(processEqus.getPlanstartdate().getTime() - timeInterval));
+                    if (!noUpdatePlanStartDate.contains(processEqus.getId())) {
+                        processEqus.setPlanstartdate(new Date(processEqus.getPlanstartdate().getTime() - timeInterval));
+                    }
                     // 更新未完工卷数
                     processEqus.setUnfinishroll(processEqus.getPlanprocessrall() - processEqus.getReportroll());
                     // 作业状态