소스 검색

排程优化-退火合并优化

fangpy 9 달 전
부모
커밋
209196209d

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

@@ -712,7 +712,7 @@ public class ApsConstraintProvider implements ConstraintProvider {
                 }
                 // 周期立板剩余时间
                 BigDecimal syLb = standingyieldbig.subtract(zqlb);
-                if(syLb.compareTo(new BigDecimal("10"))<0){
+                if(syLb.compareTo(new BigDecimal("10"))<0 && syLb.compareTo(new BigDecimal("0"))>0){
                     syLb = new BigDecimal("10");
                 }
                 Integer syLbTime = (syLb.multiply(new BigDecimal(hasStartTimeProcess.get(i).getProduceTime()).divide(hasStartTimeProcess.get(i).getSinglerollweight(), 2, RoundingMode.HALF_UP)).intValue()+1);

+ 7 - 4
rw-aps-server/src/main/java/com/rongwei/rwapsserver/aps/service/impl/ProductionScheduleServiceImpl.java

@@ -990,10 +990,13 @@ public class ProductionScheduleServiceImpl implements ProductionScheduleService
             if(process.getIfLock() && process.getOptionalProviderEquipments().size()>0){
                 process.setIfLock(false);
                 int ai = -1;
-                for (int i = 0; i < process.getOptionalProviderEquipments().get(0).getEquipmentRunTimes().size(); i++) {
-                    EquipmentRunTime equipmentRunTime = process.getOptionalProviderEquipments().get(0).getEquipmentRunTimes().get(i);
-                    if(equipmentRunTime.getStartRunTime().compareTo(process.getStartTime()) == 0 && equipmentRunTime.getEndRunTime().compareTo(process.getEndTime()) == 0){
-                        ai = i;
+                if(process.getOptionalProviderEquipments().get(0).getEquipmentRunTimes() != null
+                        && process.getOptionalProviderEquipments().get(0).getEquipmentRunTimes().size()>0){
+                    for (int i = 0; i < process.getOptionalProviderEquipments().get(0).getEquipmentRunTimes().size(); i++) {
+                        EquipmentRunTime equipmentRunTime = process.getOptionalProviderEquipments().get(0).getEquipmentRunTimes().get(i);
+                        if(equipmentRunTime.getStartRunTime().compareTo(process.getStartTime()) == 0 && equipmentRunTime.getEndRunTime().compareTo(process.getEndTime()) == 0){
+                            ai = i;
+                        }
                     }
                 }
                 if(ai>-1){