|
@@ -249,8 +249,45 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // 开始时间不小于最大的最小等待时间、不大于最小的最大等待时间
|
|
|
- toUpdateStartTime = lastMaxStartTime;
|
|
|
+ // 对比设备已运行时间(包括排程中添加的作业)来修正时间
|
|
|
+ LocalDateTime proStartTime = lastMaxStartTime;
|
|
|
+ /*LocalDateTime proEndTime = proStartTime.plusMinutes(process.getProduceTime());
|
|
|
+ List<EquipmentRunTime> equipmentRunTimes = process.getEquipment().getEquipmentRunTimes();
|
|
|
+ List<EquipmentRunTime> allRunTimes = new ArrayList<>();
|
|
|
+ if(equipmentRunTimes != null && equipmentRunTimes.size()>0){
|
|
|
+ for (EquipmentRunTime equipmentRunTime : equipmentRunTimes) {
|
|
|
+ EquipmentRunTime copy = new EquipmentRunTime();
|
|
|
+ copy.setStartRunTime(equipmentRunTime.getStartRunTime());
|
|
|
+ copy.setEndRunTime(equipmentRunTime.getEndRunTime());
|
|
|
+ allRunTimes.add(copy);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(process.getEquipment().getProcessesList() != null && process.getEquipment().getProcessesList().size()>0){
|
|
|
+// System.out.println("process.getEquipment().getProcessesList():"+process.getEquipment().getProcessesList().size());
|
|
|
+ for (ProductionProcesses productionProcesses : process.getEquipment().getProcessesList()) {
|
|
|
+ if(productionProcesses.getStartTime() != null && productionProcesses.getEndTime() != null){
|
|
|
+ EquipmentRunTime copy = new EquipmentRunTime();
|
|
|
+ copy.setStartRunTime(productionProcesses.getStartTime());
|
|
|
+ copy.setEndRunTime(productionProcesses.getEndTime());
|
|
|
+ allRunTimes.add(copy);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 按照开始时间排序
|
|
|
+ allRunTimes.sort(Comparator.comparing(EquipmentRunTime::getStartRunTime));
|
|
|
+
|
|
|
+ if(allRunTimes.size()>0){
|
|
|
+ for (EquipmentRunTime equipmentRunTime : allRunTimes) {
|
|
|
+ if(proStartTime.compareTo(equipmentRunTime.getEndRunTime())>0 || proEndTime.compareTo(equipmentRunTime.getStartRunTime())<0){
|
|
|
+ continue;
|
|
|
+ }else{
|
|
|
+ proStartTime = equipmentRunTime.getEndRunTime().plusMinutes(1);
|
|
|
+ proEndTime = proStartTime.plusMinutes(process.getProduceTime());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+
|
|
|
+ toUpdateStartTime = proStartTime;
|
|
|
}
|
|
|
// 非瓶颈工序,非瓶颈工序,默认前道工序只有一个
|
|
|
else{
|