|
|
@@ -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<HistoricTaskInstance> finishedTasks = getFinishedTaskListByProcessInstanceIdWithoutCancel(task.getProcessInstanceId());
|
|
|
+ Set<String> finishedTaskDefinitionKeys = convertSet(finishedTasks, HistoricTaskInstance::getTaskDefinitionKey);
|
|
|
+ previousUserList.removeIf(userTask -> !finishedTaskDefinitionKeys.contains(userTask.getId()));
|
|
|
return previousUserList;
|
|
|
}
|
|
|
|