Ver código fonte

新模型探索

fangpy 4 meses atrás
pai
commit
f1af22431c

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

@@ -111,6 +111,22 @@ public class ProductionScheduleServiceImpl implements ProductionScheduleService
         }
         apsSolution.setProcessesList(notLocks);
 
+        // 取每个坯料计划的第一道待排序
+        List<ProductionProcesses> firstpros = apsSolution.getProcessesList().stream().filter(v -> {
+            boolean firstpro = true;
+            List<ProductionProcesses> previousProcesses = v.getPreviousProcesses();
+            if (previousProcesses != null && previousProcesses.size() > 0) {
+                for (ProductionProcesses previousProcess : previousProcesses) {
+                    if (!previousProcess.getIfLock()) {
+                        firstpro = false;
+                        break;
+                    }
+                }
+            }
+            return firstpro;
+        }).collect(Collectors.toList());
+        apsSolution.setProcessesList(firstpros);
+
         String cores = Runtime.getRuntime().availableProcessors() + "";
         SolverFactory<ApsSolution> solverFactory = SolverFactory.create(new SolverConfig()
                         .withEnvironmentMode(EnvironmentMode.REPRODUCIBLE)
@@ -119,7 +135,7 @@ public class ProductionScheduleServiceImpl implements ProductionScheduleService
                         .withEntityClasses(ProductionProcesses.class, Equipment.class)
                         .withConstraintProviderClass(ApsConstraintListProvider.class)
 //                        .withTerminationConfig(new TerminationConfig().withUnimprovedSecondsSpentLimit(60L))
-                    .withTerminationSpentLimit(Duration.ofSeconds(1800))
+                    .withTerminationSpentLimit(Duration.ofSeconds(300))
                         .withMoveThreadCount(cores)
         );
         Solver<ApsSolution> solver = solverFactory.buildSolver();