|
@@ -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<>();
|