Переглянути джерело

APS平台新模型约束优化

fangpy 1 рік тому
батько
коміт
e06fb8db93

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

@@ -75,7 +75,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
         scoreDirector.beforeVariableChanged(process, "startTime");
         process.setStartTime(startDateTime);
         // 设备占用的任务设置
-        equipmentProListSet(process);
+//        equipmentProListSet(process);
         scoreDirector.afterVariableChanged(process, "startTime");
         if(process.getNextProcesses() != null && process.getNextProcesses().size()>0){
             for (ProductionProcesses nextProcess : process.getNextProcesses()) {
@@ -257,6 +257,7 @@ public class TaskStartTimeListener implements VariableListener<ApsSolution, Prod
                             }
                         }
                         if(process.getEquipment().getProcessesList() != null && process.getEquipment().getProcessesList().size()>0){
+//                            System.out.println("process.getEquipment().getProcessesList():"+process.getEquipment().getProcessesList().size());
                             for (ProductionProcesses productionProcesses : process.getEquipment().getProcessesList()) {
                                 if(productionProcesses.getStartTime() != null && productionProcesses.getEndTime() != null){
                                     EquipmentRunTime copy = new EquipmentRunTime();

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

@@ -606,6 +606,21 @@ public class ApsConstraintProvider implements ConstraintProvider {
         return constraintFactory.forEach(ProductionProcesses.class)
                 .groupBy(ProductionProcesses::getEquipmentId, ConstraintCollectors.toList())
                 .filter((equipmentId,processes) -> {
+                    if(processes != null && processes.size()>0){
+                        Equipment equipment = processes.get(0).getEquipment();
+                        List<ProductionProcesses> plist = new ArrayList<>();
+                        for (ProductionProcesses process : processes) {
+                            ProductionProcesses pro = new ProductionProcesses();
+                            pro.setId(process.getId());
+                            pro.setEquipmentId(process.getEquipmentId());
+                            pro.setProduceTime(process.getProduceTime());
+                            pro.setStartTime(process.getStartTime());
+                            pro.setEndTime(process.getEndTime());
+                            plist.add(pro);
+                        }
+                        equipment.setProcessesList(plist);
+                    }
+
                     for (ProductionProcesses process : processes) {
                         if(process.getStartTime() == null){
                             return false;