From adb13c4a91587bd3f23d69d7cca54ffcc8765b78 Mon Sep 17 00:00:00 2001 From: konbai <1527468660@qq.com> Date: Tue, 29 Mar 2022 23:19:22 +0800 Subject: [PATCH] =?UTF-8?q?fix=20--=20=E4=BC=98=E5=8C=96=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E8=B7=9F=E8=B8=AA=E8=8A=82=E7=82=B9=E6=9F=A5=E8=AF=A2=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WfTaskServiceImpl.java | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java index 27601909..e939c234 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java @@ -867,25 +867,22 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ Set rejectedTaskSet = new LinkedHashSet<>(); Set sourceTaskSet = unfinishedTaskSet; - while (true) { + while (CollUtil.isNotEmpty(sourceTaskSet)) { Set nextIdSet = new HashSet<>(); for (String previousId : sourceTaskSet) { List nextIdList = sequenceElementMap.get(previousId); if (CollUtil.isEmpty(nextIdList)) { continue; } - for (String childId : nextIdList) { - String rejectedSequenceFlow = sequenceFlowMap.get(previousId + childId); - if (finishedTaskSet.contains(childId)) { - nextIdSet.add(childId); + nextIdList.forEach(nextId -> { + if (finishedTaskSet.contains(nextId)) { + nextIdSet.add(nextId); + String rejectedSequenceFlow = sequenceFlowMap.get(previousId + nextId); if (finishedSequenceFlowSet.contains(rejectedSequenceFlow)) { - nextIdSet.add(sequenceFlowMap.get(previousId + childId)); + nextIdSet.add(rejectedSequenceFlow); } } - } - } - if (CollUtil.isEmpty(nextIdSet)) { - break; + }); } rejectedTaskSet.addAll(nextIdSet); sourceTaskSet = nextIdSet;