fix -- 优化流程跟踪节点查询方法

This commit is contained in:
konbai
2022-03-29 23:19:22 +08:00
parent 3b5b061336
commit adb13c4a91

View File

@@ -867,25 +867,22 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ
Set<String> rejectedTaskSet = new LinkedHashSet<>(); Set<String> rejectedTaskSet = new LinkedHashSet<>();
Set<String> sourceTaskSet = unfinishedTaskSet; Set<String> sourceTaskSet = unfinishedTaskSet;
while (true) { while (CollUtil.isNotEmpty(sourceTaskSet)) {
Set<String> nextIdSet = new HashSet<>(); Set<String> nextIdSet = new HashSet<>();
for (String previousId : sourceTaskSet) { for (String previousId : sourceTaskSet) {
List<String> nextIdList = sequenceElementMap.get(previousId); List<String> nextIdList = sequenceElementMap.get(previousId);
if (CollUtil.isEmpty(nextIdList)) { if (CollUtil.isEmpty(nextIdList)) {
continue; continue;
} }
for (String childId : nextIdList) { nextIdList.forEach(nextId -> {
String rejectedSequenceFlow = sequenceFlowMap.get(previousId + childId); if (finishedTaskSet.contains(nextId)) {
if (finishedTaskSet.contains(childId)) { nextIdSet.add(nextId);
nextIdSet.add(childId); String rejectedSequenceFlow = sequenceFlowMap.get(previousId + nextId);
if (finishedSequenceFlowSet.contains(rejectedSequenceFlow)) { if (finishedSequenceFlowSet.contains(rejectedSequenceFlow)) {
nextIdSet.add(sequenceFlowMap.get(previousId + childId)); nextIdSet.add(rejectedSequenceFlow);
} }
} }
} });
}
if (CollUtil.isEmpty(nextIdSet)) {
break;
} }
rejectedTaskSet.addAll(nextIdSet); rejectedTaskSet.addAll(nextIdSet);
sourceTaskSet = nextIdSet; sourceTaskSet = nextIdSet;