|
@@ -1762,6 +1762,10 @@ public class ApsConstraintProvider implements ConstraintProvider {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if(processes.get(0).getId().equals("72b556a4ba2a4594bfc003b67a5e3e3b") && processes.get(0).getDelay() == 63
|
|
|
+ && processes.get(0).getEquipmentId().equals("0001be252874536843730b100163")){
|
|
|
+ int a = 1;
|
|
|
+ }
|
|
|
// 检查合并工序是否超过容量
|
|
|
for (Map.Entry<String,List<ProductionProcesses>> entry: ppMap.entrySet()) {
|
|
|
List<ProductionProcesses> v = entry.getValue();
|
|
@@ -3061,7 +3065,11 @@ public class ApsConstraintProvider implements ConstraintProvider {
|
|
|
if(scheduleType == null || scheduleType.getConstraintMode() == null || "th".equals(scheduleType.getConstraintMode())){
|
|
|
qz = 1100;
|
|
|
}
|
|
|
- return ppMap.size()*qz;
|
|
|
+ int zzdf = ppMap.size()*qz;
|
|
|
+ if(hasMergeOldKeys != null && hasMergeOldKeys.size()>0){
|
|
|
+ zzdf = zzdf + hasMergeOldKeys.size();
|
|
|
+ }
|
|
|
+ return zzdf;
|
|
|
})
|
|
|
.asConstraint("mergeTuihuo");
|
|
|
}
|
|
@@ -3089,19 +3097,43 @@ public class ApsConstraintProvider implements ConstraintProvider {
|
|
|
|
|
|
Equipment equipment = processes.get(0).getEquipment();
|
|
|
List<EquipmentRunTime> equipmentRunTimes = equipment.getEquipmentRunTimes();
|
|
|
- List<ProductionProcesses> hasStartTimeProcess = processes.stream().filter(v -> v.getStartTime() != null).collect(Collectors.toList());
|
|
|
+ List<ProductionProcesses> hasStartTimeProcess = new ArrayList<>();
|
|
|
+ List<ProductionProcesses> hasStartTimeProcess1 = processes.stream().filter(v -> v.getStartTime() != null).collect(Collectors.toList());
|
|
|
+ if(hasStartTimeProcess1 != null && hasStartTimeProcess1.size()>0){
|
|
|
+ for (ProductionProcesses productionProcesses : hasStartTimeProcess1) {
|
|
|
+ ProductionProcesses pp = new ProductionProcesses();
|
|
|
+ pp.setId(productionProcesses.getId());
|
|
|
+ pp.setStartTime(productionProcesses.getStartTime());
|
|
|
+ pp.setEndTime(productionProcesses.getEndTime());
|
|
|
+ pp.setSeriesProduceMark(productionProcesses.getSeriesProduceMark());
|
|
|
+ pp.setProcessType(productionProcesses.getProcessType());
|
|
|
+ pp.setBsProcessesId(productionProcesses.getBsProcessesId());
|
|
|
+ pp.setConflictRoptions(productionProcesses.getConflictRoptions());
|
|
|
+ hasStartTimeProcess.add(pp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 设备占用时间参与连续生产排程
|
|
|
if(equipment != null && equipment.getEquipmentRunTimes() != null && equipment.getEquipmentRunTimes().size()>0){
|
|
|
for (EquipmentRunTime equipmentRunTime : equipment.getEquipmentRunTimes()) {
|
|
|
if(equipmentRunTime.getOccupyType().equals("process")){
|
|
|
- ProductionProcesses pp = new ProductionProcesses();
|
|
|
- pp.setStartTime(equipmentRunTime.getStartRunTime());
|
|
|
- pp.setEndTime(equipmentRunTime.getEndRunTime());
|
|
|
- pp.setSeriesProduceMark(equipmentRunTime.getSeriesProduceMark());
|
|
|
- pp.setProcessType(equipmentRunTime.getProcessType());
|
|
|
- pp.setBsProcessesId(Arrays.asList(new String[]{"haspcprocess"}));
|
|
|
- pp.setConflictRoptions(new HashMap<>());
|
|
|
- hasStartTimeProcess.add(pp);
|
|
|
+ List<ProductionProcesses> samestartTime = hasStartTimeProcess.stream().filter(v -> v.getStartTime().compareTo(equipmentRunTime.getStartRunTime()) == 0).collect(Collectors.toList());
|
|
|
+ if(samestartTime != null && samestartTime.size()>0){
|
|
|
+ for (ProductionProcesses productionProcesses : samestartTime) {
|
|
|
+ if(productionProcesses.getEndTime().compareTo(equipmentRunTime.getEndRunTime())<0){
|
|
|
+ productionProcesses.setEndTime(equipmentRunTime.getEndRunTime());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ ProductionProcesses pp = new ProductionProcesses();
|
|
|
+ pp.setStartTime(equipmentRunTime.getStartRunTime());
|
|
|
+ pp.setEndTime(equipmentRunTime.getEndRunTime());
|
|
|
+ pp.setSeriesProduceMark(equipmentRunTime.getSeriesProduceMark());
|
|
|
+ pp.setProcessType(equipmentRunTime.getProcessType());
|
|
|
+ pp.setBsProcessesId(Arrays.asList(new String[]{"haspcprocess"}));
|
|
|
+ pp.setConflictRoptions(new HashMap<>());
|
|
|
+ hasStartTimeProcess.add(pp);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -3141,6 +3173,10 @@ public class ApsConstraintProvider implements ConstraintProvider {
|
|
|
.groupBy(ProductionProcesses::getEquipmentId,ConstraintCollectors.toList())
|
|
|
.filter((equipmentId,processes) -> {
|
|
|
if(processes != null && processes.size()>0){
|
|
|
+ if(processes.get(0).getApsOverallConfig().getScheduleType() != null && processes.get(0).getApsOverallConfig().getScheduleType().getScheduleType() != null
|
|
|
+ && !"dd".equals(processes.get(0).getApsOverallConfig().getScheduleType().getScheduleType())){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
return true;
|
|
|
}else{
|
|
|
return false;
|