Kaynağa Gözat

新模型合并

fangpy 4 ay önce
ebeveyn
işleme
7107429f8e

+ 21 - 0
rw-aps-server/src/main/java/com/rongwei/rwapsserver/aps/taskassigning/service/impl/DdApsTaServiceImpl.java

@@ -692,14 +692,35 @@ public class DdApsTaServiceImpl implements DdApsTaService {
                 if(processes != null && processes.size()>0){
                     // 获取所有根节点
                     List<ProductionProcessesTa> rootPros = new ArrayList<>();
+                    List<ProductionProcessesTa> firstNotLocks = new ArrayList<>();
                     for (ProductionProcessesTa mergeprocess : processes) {
                         if(mergeprocess.getPreviousProcesses() == null || mergeprocess.getPreviousProcesses().size() == 0){
                             rootPros.add(mergeprocess);
+                        }else{
+                            List<ProductionProcessesTa> previousProcesses = mergeprocess.getPreviousProcesses();
+                            boolean preLock = true;
+                            for (ProductionProcessesTa previousProcess : previousProcesses) {
+                                if(!previousProcess.getIfLock()){
+                                    preLock = false;
+                                }
+                            }
+                            if (!mergeprocess.getIfLock() && preLock) {
+                                firstNotLocks.add(mergeprocess);
+                            }
                         }
                     }
                     // 获取第一道未锁定工序数据
                     List<ProductionProcessesTa> firstNotLockPros = new ArrayList<>();
                     getFirstNotLockPros(rootPros,firstNotLockPros);
+                    // 补充第一道未锁定工序
+                    if(firstNotLocks != null && firstNotLocks.size()>0){
+                        for (ProductionProcessesTa firstNotLock : firstNotLocks) {
+                            List<ProductionProcessesTa> sameNotLocks = firstNotLockPros.stream().filter(v -> v.getId().equals(firstNotLock.getId())).collect(Collectors.toList());
+                            if(sameNotLocks == null || sameNotLocks.size() == 0){
+                                firstNotLockPros.add(firstNotLock);
+                            }
+                        }
+                    }
                     // 根据根节点逐级查询是否可合并的作业
                     if(firstNotLockPros != null && firstNotLockPros.size()>0){
                         Map<String,List<ProductionProcessesTa>> lzbzMerges = new HashMap<>();