fangpy hai 4 meses
pai
achega
a89445f4b8

+ 6 - 6
rw-aps-server/src/main/java/com/rongwei/rwapsserver/aps/listener/TaskStartTimeListener.java

@@ -404,7 +404,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
             // 按照开始时间排序
             equipmentRunTimes.sort(Comparator.comparing(EquipmentRunTime::getStartRunTime));
 
-            if(process.getEquipmentId().equals("0001be252874536843730b100163")){
+            if(process.getEquipmentId().equals("7b2ffd8c722d4d5a85b55fc32de99366")){
                 int a = 0;
             }
             if(process.getId().equals("b48d04239ebe4b7f95e18ded92c25249")){
@@ -419,7 +419,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
                         continue;
                     }
                     // 退火工序
-                    if(process.getProcessType().equals("成退") || process.getProcessType().equals("中退")){
+                    if(process.getProcessType().equals("成退") || process.getProcessType().equals("中退") || process.getProcessType().equals("小卷成退")){
                         // 没有交叉直接跳过
                         /*if(equipmentRunTime.getEndRunTime().compareTo(proStartTime)<=0 || equipmentRunTime.getStartRunTime().compareTo(proEndTime)>=0){
                             continue;
@@ -523,7 +523,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
                             }
                         }
                     }*/
-                    else if (process.getProcessType().equals("小卷成退")) {
+                    /*else if (process.getProcessType().equals("小卷成退")) {
                         if(proStartTime.compareTo(equipmentRunTime.getEndRunTime())>=0 || proEndTime.compareTo(equipmentRunTime.getStartRunTime())<=0
                                 || proStartTime.compareTo(equipmentRunTime.getStartRunTime())==0){
                             break;
@@ -531,7 +531,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
                             proStartTime = equipmentRunTime.getEndRunTime();
                             proEndTime = proStartTime.plusMinutes(process.getProduceTime());
                         }
-                    }
+                    }*/
                     // 其它工序
                     else{
                         if(proStartTime.compareTo(equipmentRunTime.getEndRunTime())>=0 || proEndTime.compareTo(equipmentRunTime.getStartRunTime())<=0){
@@ -702,8 +702,8 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
                 }
                 Set<String> minThGroupNames = equipmentRunTime.getMinThGroupNames();
                 minThGroupNames.add(groupname);
-                BigDecimal totalWeight = process.getSinglerollweight().add(equipmentRunTime.getTotalSinglerollweight());
-                if(totalWeight.compareTo(process.getEquipment().getEquipmentParameter().getEquipmentBearing())<=0){
+                BigDecimal totalWeight = process.getTotalSinglerollweight().add(equipmentRunTime.getTotalSinglerollweight());
+                if(totalWeight.compareTo(process.getEquipment().getEquipmentParameter().getEquipmentBearing())<=0 && process.getProcessType().equals(equipmentRunTime.getProcessType())){
                     if(minThGroupNames.size() == 1){
                         hasMergeTh = true;
                     }else if(minThGroupNames.size() > 1){

+ 8 - 2
rw-aps-server/src/main/java/com/rongwei/rwapsserver/aps/score/ApsConstraintProvider.java

@@ -1369,6 +1369,9 @@ public class ApsConstraintProvider implements ConstraintProvider {
         if(processes != null && processes.size()>0){
             equipment = processes.get(0).getEquipment();
         }
+        if(equipment.getId().equals("7b2ffd8c722d4d5a85b55fc32de99366")){
+            int a = 2;
+        }
         // 设备承重
         BigDecimal equipmentBearing = equipment.getEquipmentParameter().getEquipmentBearing();
         List<ProductionProcesses> hasStartTimeProcess = processes.stream().filter(v -> v.getStartTime() != null).collect(Collectors.toList());
@@ -1464,6 +1467,9 @@ public class ApsConstraintProvider implements ConstraintProvider {
 
         //  检查合并工序是否超过容量
         for (Map.Entry<String,List<ProductionProcesses>> entry: ppMap.entrySet()) {
+            if(equipment.getId().equals("7b2ffd8c722d4d5a85b55fc32de99366")){
+                int a = 2;
+            }
             List<ProductionProcesses> v = entry.getValue();
             Set<String> groupnames = new HashSet<>();
             BigDecimal totalWeight = new BigDecimal(0);
@@ -1488,13 +1494,13 @@ public class ApsConstraintProvider implements ConstraintProvider {
                         if(furnaceInstallation.getAlloystatus() != null && (productionProcesses.getVolumeMetalstate() == null || !furnaceInstallation.getAlloystatus().contains(productionProcesses.getVolumeMetalstate()))){
                             a = false;
                         }
-                        if(furnaceInstallation.getStartthickness() != null && furnaceInstallation.getStartthickness().compareTo(productionProcesses.getVolumeThickness())>=0){
+                        if(furnaceInstallation.getStartthickness() != null && furnaceInstallation.getStartthickness().compareTo(productionProcesses.getVolumeThickness())>0){
                             a = false;
                         }
                         if(furnaceInstallation.getEndthickness() != null && furnaceInstallation.getEndthickness().compareTo(productionProcesses.getVolumeThickness())<0){
                             a = false;
                         }
-                        if(furnaceInstallation.getStartwidth() != null && new BigDecimal(furnaceInstallation.getStartwidth()).compareTo(productionProcesses.getVolumeWidth())>=0){
+                        if(furnaceInstallation.getStartwidth() != null && new BigDecimal(furnaceInstallation.getStartwidth()).compareTo(productionProcesses.getVolumeWidth())>0){
                             a = false;
                         }
                         if(furnaceInstallation.getEndwidth() != null && new BigDecimal(furnaceInstallation.getEndwidth()).compareTo(productionProcesses.getVolumeWidth())<0){