|
@@ -3084,9 +3084,9 @@ public class ApsConstraintProvider implements ConstraintProvider {
|
|
|
qz = 1100;
|
|
|
}
|
|
|
int zzdf = ppMap.size()*qz;
|
|
|
- if(hasMergeOldKeys != null && hasMergeOldKeys.size()>0){
|
|
|
+ /*if(hasMergeOldKeys != null && hasMergeOldKeys.size()>0){
|
|
|
zzdf = zzdf + hasMergeOldKeys.size();
|
|
|
- }
|
|
|
+ }*/
|
|
|
return zzdf;
|
|
|
})
|
|
|
.asConstraint("mergeTuihuo");
|
|
@@ -3161,7 +3161,35 @@ public class ApsConstraintProvider implements ConstraintProvider {
|
|
|
for(int i=0;i<hasStartTimeProcess.size()-1;i++){
|
|
|
ProductionProcesses bfpps = hasStartTimeProcess.get(i);
|
|
|
ProductionProcesses afpps = hasStartTimeProcess.get(i+1);
|
|
|
- if(bfpps.getId() != null || afpps.getId() != null){
|
|
|
+
|
|
|
+ List<EquipmentRunTime> bfppsRunTimes = equipment.getEquipmentRunTimes().stream().filter(v -> v.getStartRunTime().compareTo(bfpps.getStartTime()) == 0).collect(Collectors.toList());
|
|
|
+ List<EquipmentRunTime> afppsRunTimes = equipment.getEquipmentRunTimes().stream().filter(v -> v.getStartRunTime().compareTo(afpps.getStartTime()) == 0).collect(Collectors.toList());
|
|
|
+
|
|
|
+ boolean hasNowApsPros = true;
|
|
|
+ // 前后道工序都是本批次排程的任务
|
|
|
+ if(bfpps.getId() != null && afpps.getId() != null){
|
|
|
+ if(bfppsRunTimes != null && bfppsRunTimes.size()>0 && afppsRunTimes != null && afppsRunTimes.size()>0){
|
|
|
+ hasNowApsPros = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 前道工序是本批次排程的任务
|
|
|
+ else if (bfpps.getId() != null && afpps.getId() == null) {
|
|
|
+ if(bfppsRunTimes != null && bfppsRunTimes.size()>0){
|
|
|
+ hasNowApsPros = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 后道工序是本批次排程的任务
|
|
|
+ else if (bfpps.getId() == null && afpps.getId() != null) {
|
|
|
+ if(afppsRunTimes != null && afppsRunTimes.size()>0){
|
|
|
+ hasNowApsPros = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 前后道工序都不是本批次排程的任务
|
|
|
+ else{
|
|
|
+ hasNowApsPros = false;
|
|
|
+ }
|
|
|
+ // 再判断前后道工序之间是否有碎片时间
|
|
|
+ if(hasNowApsPros){
|
|
|
if(bfpps.getEndTime().plusMinutes(300).compareTo(afpps.getStartTime())<0 && bfpps.getEndTime().plusMinutes(1200).compareTo(afpps.getStartTime())>0){
|
|
|
b++;
|
|
|
}
|