Commit cdc4255da1539cd5d9016973f7b531d77cf8f774

Authored by YunaiV
1 parent ceb80466

fix:【bpm】更改 moveActivityIdsToSingleActivityId 传入的第一个参数,对应 https://gitee.com/zhij…

…iantianya/ruoyi-vue-pro/pulls/1466/
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
@@ -922,16 +922,12 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -922,16 +922,12 @@ public class BpmTaskServiceImpl implements BpmTaskService {
922 List<UserTask> returnUserTaskList = BpmnModelUtils.iteratorFindChildUserTasks(targetElement, runTaskKeyList, null, null); 922 List<UserTask> returnUserTaskList = BpmnModelUtils.iteratorFindChildUserTasks(targetElement, runTaskKeyList, null, null);
923 List<String> returnTaskKeyList = convertList(returnUserTaskList, UserTask::getId); 923 List<String> returnTaskKeyList = convertList(returnUserTaskList, UserTask::getId);
924 924
925 -// List<String> runExecutionIds = new ArrayList<>();  
926 // 2. 给当前要被退回的 task 数组,设置退回意见 925 // 2. 给当前要被退回的 task 数组,设置退回意见
927 taskList.forEach(task -> { 926 taskList.forEach(task -> {
928 // 需要排除掉,不需要设置退回意见的任务 927 // 需要排除掉,不需要设置退回意见的任务
929 if (!returnTaskKeyList.contains(task.getTaskDefinitionKey())) { 928 if (!returnTaskKeyList.contains(task.getTaskDefinitionKey())) {
930 return; 929 return;
931 } 930 }
932 -// if (task.getExecutionId() != null) {  
933 -// runExecutionIds.add(task.getExecutionId());  
934 -// }  
935 931
936 // 判断是否分配给自己任务,因为会签任务,一个节点会有多个任务 932 // 判断是否分配给自己任务,因为会签任务,一个节点会有多个任务
937 if (isAssignUserTask(userId, task)) { // 情况一:自己的任务,进行 RETURN 标记 933 if (isAssignUserTask(userId, task)) { // 情况一:自己的任务,进行 RETURN 标记
@@ -953,11 +949,8 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -953,11 +949,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
953 // 相关 issue: https://github.com/flowable/flowable-engine/issues/3944 949 // 相关 issue: https://github.com/flowable/flowable-engine/issues/3944
954 // ② flowable 7.2.0 版本后,继续使用 moveActivityIdsToSingleActivityId 方法。原因:flowable 7.2.0 版本修复了该问题。 950 // ② flowable 7.2.0 版本后,继续使用 moveActivityIdsToSingleActivityId 方法。原因:flowable 7.2.0 版本修复了该问题。
955 // 相关 issue:https://github.com/YunaiV/ruoyi-vue-pro/issues/1018 951 // 相关 issue:https://github.com/YunaiV/ruoyi-vue-pro/issues/1018
956 - // ③ moveExecutionsToSingleActivityId 基于运行时执行实例层面的精确控制,它的操作对象(第一个参数)是 executionId,需要收集到 runExecutionIds  
957 - // moveActivityIdsToSingleActivityId 基于 BPMN 模型层面的节点迁移,它的操作对象(第一个参数)是 taskKey  
958 runtimeService.createChangeActivityStateBuilder() 952 runtimeService.createChangeActivityStateBuilder()
959 .processInstanceId(currentTask.getProcessInstanceId()) 953 .processInstanceId(currentTask.getProcessInstanceId())
960 -// .moveExecutionsToSingleActivityId(runExecutionIds, reqVO.getTargetTaskDefinitionKey())  
961 .moveActivityIdsToSingleActivityId(returnTaskKeyList, reqVO.getTargetTaskDefinitionKey()) 954 .moveActivityIdsToSingleActivityId(returnTaskKeyList, reqVO.getTargetTaskDefinitionKey())
962 // 设置需要预测的任务 ids 的流程变量,用于辅助预测 955 // 设置需要预测的任务 ids 的流程变量,用于辅助预测
963 .processVariable(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_NEED_SIMULATE_TASK_IDS, needSimulateTaskDefinitionKeys) 956 .processVariable(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_NEED_SIMULATE_TASK_IDS, needSimulateTaskDefinitionKeys)
@@ -1470,7 +1463,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -1470,7 +1463,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
1470 return; 1463 return;
1471 } 1464 }
1472 1465
1473 - // 自动去重,通过自动审批的方式 TODO @芋艿 驳回的情况得考虑一下;@lesan:驳回后,又自动审批么? 1466 + // 自动去重,通过自动审批的方式
1474 BpmProcessDefinitionInfoDO processDefinitionInfo = bpmProcessDefinitionService.getProcessDefinitionInfo(task.getProcessDefinitionId()); 1467 BpmProcessDefinitionInfoDO processDefinitionInfo = bpmProcessDefinitionService.getProcessDefinitionInfo(task.getProcessDefinitionId());
1475 if (processDefinitionInfo == null) { 1468 if (processDefinitionInfo == null) {
1476 log.error("[processTaskAssigned][taskId({}) 没有找到流程定义({})]", task.getId(), task.getProcessDefinitionId()); 1469 log.error("[processTaskAssigned][taskId({}) 没有找到流程定义({})]", task.getId(), task.getProcessDefinitionId());