Parcourir la source

新模型探索

fangpy il y a 4 mois
Parent
commit
24a782022d

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

@@ -185,6 +185,44 @@ public class ProductionScheduleServiceImpl implements ProductionScheduleService
 
         }
         apsSolution.setEquipmentList(equipments);
+        // 根据可选设备分组排程
+        Map<String,List<ProductionProcesses>> equPros = new HashMap<>();
+        for (ProductionProcesses productionProcesses : apsSolution.getProcessesList()) {
+            String equids = CollUtil.join(productionProcesses.getOptionalEquipments(), ",");
+            if(equPros.size() == 0){
+                List<ProductionProcesses> pps = new ArrayList<>();
+                pps.add(productionProcesses);
+                equPros.put(equids,pps);
+            }else {
+                boolean hasSameKeys = false;
+                String haskey = null;
+                Set<String> keys = equPros.keySet();
+                for (String key : keys) {
+                    for (String optionalEquipment : productionProcesses.getOptionalEquipments()) {
+                        if(key.contains(optionalEquipment)){
+                            hasSameKeys = true;
+                            haskey = key;
+                        }
+                    }
+                }
+                if(hasSameKeys){
+                    List<ProductionProcesses> processesList1 = equPros.get(haskey);
+                    processesList1.add(productionProcesses);
+                    equPros.remove(haskey);
+                    for (String optionalEquipment : productionProcesses.getOptionalEquipments()) {
+                        if(!haskey.contains(optionalEquipment)){
+                            haskey = haskey + "," + optionalEquipment;
+                        }
+                    }
+                    equPros.put(haskey,processesList1);
+                }else{
+                    List<ProductionProcesses> pps = new ArrayList<>();
+                    pps.add(productionProcesses);
+                    equPros.put(equids,pps);
+                }
+            }
+        }
+
         ApsSolution solvedBalance  = solver.solve(apsSolution);
         log.info("**************排程评分分析***************");
         SolutionManager<ApsSolution, HardSoftScore> scoreManager = SolutionManager.create(solverFactory);