From c34c218bb56e1f5dc0d037224fd55867520a0eed Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 23 Nov 2025 12:04:42 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E3=80=90bpm=E3=80=91=E5=8F=AA?= =?UTF-8?q?=E8=83=BD=E9=80=80=E5=9B=9E=E5=88=B0=E5=B7=B2=E7=BB=8F=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=BF=87=E7=9A=84=E8=8A=82=E7=82=B9=EF=BC=88=E6=8E=92?= =?UTF-8?q?=E9=99=A4=E5=AE=A1=E6=89=B9=E6=9C=AA=E7=BB=8F=E8=BF=87=E7=9A=84?= =?UTF-8?q?=E8=8A=82=E7=82=B9=EF=BC=89=E3=80=82=E7=9B=B8=E5=85=B3=20issue?= =?UTF-8?q?=EF=BC=9Ahttps://github.com/YunaiV/ruoyi-vue-pro/issues/982?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/bpm/service/task/BpmTaskServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index d5c1099c7f..0d3d27834f 100644 --- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -376,6 +376,11 @@ public class BpmTaskServiceImpl implements BpmTaskService { } // 2.2 过滤:只有串行可到达的节点,才可以退回。类似非串行、子流程无法退回 previousUserList.removeIf(userTask -> !BpmnModelUtils.isSequentialReachable(source, userTask, null)); + + // 2.3 过滤:只能退回到已经处理过的节点(排除审批未经过的节点)。相关 issue:https://github.com/YunaiV/ruoyi-vue-pro/issues/982 + List finishedTasks = getFinishedTaskListByProcessInstanceIdWithoutCancel(task.getProcessInstanceId()); + Set finishedTaskDefinitionKeys = convertSet(finishedTasks, HistoricTaskInstance::getTaskDefinitionKey); + previousUserList.removeIf(userTask -> !finishedTaskDefinitionKeys.contains(userTask.getId())); return previousUserList; }