fix:【bpm】只能退回到已经处理过的节点(排除审批未经过的节点)。相关 issue:https://github.com/YunaiV/ruoyi-vue-pro/issues/982

This commit is contained in:
YunaiV 2025-11-23 12:04:42 +08:00
parent fe186da113
commit c34c218bb5

View File

@ -376,6 +376,11 @@ public class BpmTaskServiceImpl implements BpmTaskService {
}
// 2.2 过滤只有串行可到达的节点才可以退回类似非串行子流程无法退回
previousUserList.removeIf(userTask -> !BpmnModelUtils.isSequentialReachable(source, userTask, null));
// 2.3 过滤只能退回到已经处理过的节点排除审批未经过的节点相关 issuehttps://github.com/YunaiV/ruoyi-vue-pro/issues/982
List<HistoricTaskInstance> finishedTasks = getFinishedTaskListByProcessInstanceIdWithoutCancel(task.getProcessInstanceId());
Set<String> finishedTaskDefinitionKeys = convertSet(finishedTasks, HistoricTaskInstance::getTaskDefinitionKey);
previousUserList.removeIf(userTask -> !finishedTaskDefinitionKeys.contains(userTask.getId()));
return previousUserList;
}