From 65d677ac900076312b03ef09af05b0b23e93a62b Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Tue, 25 Nov 2025 18:52:25 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=E6=8E=92=E4=BB=96?= =?UTF-8?q?=E7=BD=91=E5=85=B3=E6=89=A7=E8=A1=8C=E5=90=8E=EF=BC=8C=E9=A9=B3?= =?UTF-8?q?=E5=9B=9E=E9=80=89=E5=88=B0=E6=9C=AA=E6=89=A7=E8=A1=8C=E7=9A=84?= =?UTF-8?q?=E7=BD=91=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FlwTaskServiceImpl.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index a2d4c337a..3b056879d 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -535,8 +535,20 @@ public class FlwTaskServiceImpl implements IFlwTaskService { } //获取可驳回的前置节点 List nodes = nodeService.previousNodeList(task.getDefinitionId(), nowNodeCode); - if (CollUtil.isNotEmpty(nodes)) { - return StreamUtils.filter(nodes, e -> NodeType.BETWEEN.getKey().equals(e.getNodeType())); + List taskList = hisTaskService.getByInsId(task.getInstanceId()); + + Map nodeMap = StreamUtils.toIdentityMap(nodes, Node::getNodeCode); + List backNodeList = new ArrayList<>(); + for (HisTask hisTask : taskList) { + Node nodeValue = nodeMap.get(hisTask.getNodeCode()); + if (nodeValue != null) { + backNodeList.add(nodeValue); + } + } + if (CollUtil.isNotEmpty(backNodeList)) { + List prefixOrSuffixNodes = StreamUtils.filter(backNodeList, e -> NodeType.BETWEEN.getKey().equals(e.getNodeType())); + Collections.reverse(prefixOrSuffixNodes); + return prefixOrSuffixNodes; } return nodes; }