Pārlūkot izejas kodu

调度冷轧连续排程优化、以及铸轧重叠bug修改

fangpy 5 mēneši atpakaļ
vecāks
revīzija
3375accd1a

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

@@ -253,11 +253,14 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
                 if(preProcess.getEquipment() == null){
                     int aa = 1;
                 }
-                if(preProcess.getEquipment().getWorkshopid() != null && preProcess.getEquipment().getWorkshopid().equals(process.getEquipment().getWorkshopid())){
-                    lzTimes = process.getApsOverallConfig().getRoamTime().get("WORKSHOP_IN");
-                }else{
-                    lzTimes = process.getApsOverallConfig().getRoamTime().get("WORKSHOP_CROSS");
+                if(!preProcess.getEquipment().getId().equals(process.getEquipment().getId())){
+                    if(preProcess.getEquipment().getWorkshopid() != null && preProcess.getEquipment().getWorkshopid().equals(process.getEquipment().getWorkshopid())){
+                        lzTimes = process.getApsOverallConfig().getRoamTime().get("WORKSHOP_IN");
+                    }else{
+                        lzTimes = process.getApsOverallConfig().getRoamTime().get("WORKSHOP_CROSS");
+                    }
                 }
+
                 // 松散度
                 /*if(preProcess.getApsOverallConfig().getLooseness() != null){
                     BigDecimal lostime = preProcess.getApsOverallConfig().getLooseness().multiply(new BigDecimal(preProcess.getProduceTime())).divide(new BigDecimal("100"));

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

@@ -148,11 +148,14 @@ public class ApsConstraintProvider implements ConstraintProvider {
                             // 流转时间(最小等待时间)
                             Integer lzTimes = 0;
                             if(preProcess.getEquipment() != null){
-                                if(preProcess.getEquipment().getWorkshopid() != null && preProcess.getEquipment().getWorkshopid().equals(productionProcesses.getEquipment().getWorkshopid())){
-                                    lzTimes = productionProcesses.getApsOverallConfig().getRoamTime().get("WORKSHOP_IN");
-                                }else{
-                                    lzTimes = productionProcesses.getApsOverallConfig().getRoamTime().get("WORKSHOP_CROSS");
+                                if(!preProcess.getEquipment().getId().equals(productionProcesses.getEquipment().getId())){
+                                    if(preProcess.getEquipment().getWorkshopid() != null && preProcess.getEquipment().getWorkshopid().equals(productionProcesses.getEquipment().getWorkshopid())){
+                                        lzTimes = productionProcesses.getApsOverallConfig().getRoamTime().get("WORKSHOP_IN");
+                                    }else{
+                                        lzTimes = productionProcesses.getApsOverallConfig().getRoamTime().get("WORKSHOP_CROSS");
+                                    }
                                 }
+
                                 // 最小等待时间对比流转时间
                                 if(productionProcesses.getMinWaitTime() != null && lzTimes<productionProcesses.getMinWaitTime()){
                                     lzTimes = productionProcesses.getMinWaitTime();
@@ -252,11 +255,14 @@ public class ApsConstraintProvider implements ConstraintProvider {
                                 LocalDateTime startTime = nextProcess.getStartTime();
                                 // 流转时间(最小等待时间)
                                 Integer lzTimes = 0;
-                                if(productionProcesses.getEquipment().getWorkshopid() != null && productionProcesses.getEquipment().getWorkshopid().equals(nextProcess.getEquipment().getWorkshopid())){
-                                    lzTimes = productionProcesses.getApsOverallConfig().getRoamTime().get("WORKSHOP_IN");
-                                }else{
-                                    lzTimes = productionProcesses.getApsOverallConfig().getRoamTime().get("WORKSHOP_CROSS");
+                                if(!nextProcess.getEquipment().getId().equals(productionProcesses.getEquipment().getId())){
+                                    if(productionProcesses.getEquipment().getWorkshopid() != null && productionProcesses.getEquipment().getWorkshopid().equals(nextProcess.getEquipment().getWorkshopid())){
+                                        lzTimes = productionProcesses.getApsOverallConfig().getRoamTime().get("WORKSHOP_IN");
+                                    }else{
+                                        lzTimes = productionProcesses.getApsOverallConfig().getRoamTime().get("WORKSHOP_CROSS");
+                                    }
                                 }
+
                                 // 最小等待时间对比流转时间
                                 if(nextProcess.getMinWaitTime() != null && lzTimes<nextProcess.getMinWaitTime()){
                                     lzTimes = nextProcess.getMinWaitTime();