fangpy 5 meses atrás
pai
commit
52ae719be2

+ 11 - 6
rw-aps-server/src/main/java/com/rongwei/rwapsserver/aps/service/impl/ApsServiceImpl.java

@@ -1091,6 +1091,7 @@ public class ApsServiceImpl implements ApsService {
             // 退火合并
             if(thproMap != null && thproMap.size()>0){
                 thproMap.forEach((k,v)->{
+                    // 未锁定的退火合并
                     if(v.size()>1){
                         // 作业卷数大于1,合并退火
                         List<Equipment> equipments = equipmentList.stream().filter(eq -> eq.getId().equals(v.get(0).getOptionalEquipments().get(0))).collect(Collectors.toList());
@@ -1134,12 +1135,15 @@ public class ApsServiceImpl implements ApsService {
                             }
 
                             List<List<ProductionProcesses>> chunks = new ArrayList<>();
-                            if(v.get(0).getIfLock()){
-                                Collections.sort(v,(p1,p2)->{
+
+                            List<ProductionProcesses> lockpps = v.stream().filter(m -> m.getIfLock()).collect(Collectors.toList());
+                            List<ProductionProcesses> notlockpps = v.stream().filter(m -> !m.getIfLock()).collect(Collectors.toList());
+                            if(lockpps != null && lockpps.size()>0){
+                                Collections.sort(lockpps,(p1,p2)->{
                                     return p1.getStartTime().compareTo(p2.getStartTime());
                                 });
                                 Map<String, List<ProductionProcesses>> map = new TreeMap<>();
-                                for (ProductionProcesses productionProcesses : v) {
+                                for (ProductionProcesses productionProcesses : lockpps) {
                                     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                                     String startStr = productionProcesses.getStartTime().format(formatter);
                                     if(map.containsKey(startStr)){
@@ -1155,10 +1159,11 @@ public class ApsServiceImpl implements ApsService {
                                         chunks.add(entry.getValue());
                                     }
                                 }
-                            }else {
-                                int listSize = v.size();
+                            }
+                            if(notlockpps != null && notlockpps.size()>0) {
+                                int listSize = notlockpps.size();
                                 for (int i = 0; i < listSize; i += a) {
-                                    chunks.add(v.subList(i, Math.min(i + a, listSize)));
+                                    chunks.add(notlockpps.subList(i, Math.min(i + a, listSize)));
                                 }
                             }
                             // 合并退火作业