Commit f2909d6bb6bb1928bcc3d20f6e75a14844b61ef2
1 parent
e1152937
feat:新增自选节点审批人参数,由前端传递下个节点选择的审批人
Showing
1 changed file
with
5 additions
and
3 deletions
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
| @@ -519,10 +519,12 @@ public class BpmTaskServiceImpl implements BpmTaskService { | @@ -519,10 +519,12 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||
| 519 | // 其中,variables 是存储动态表单到 local 任务级别。过滤一下,避免 ProcessInstance 系统级的变量被占用 | 519 | // 其中,variables 是存储动态表单到 local 任务级别。过滤一下,避免 ProcessInstance 系统级的变量被占用 |
| 520 | if (CollUtil.isNotEmpty(reqVO.getVariables())) { | 520 | if (CollUtil.isNotEmpty(reqVO.getVariables())) { |
| 521 | Map<String, Object> variables = FlowableUtils.filterTaskFormVariable(reqVO.getVariables()); | 521 | Map<String, Object> variables = FlowableUtils.filterTaskFormVariable(reqVO.getVariables()); |
| 522 | - // 修改表单的值需要存储到 ProcessInstance 变量 | 522 | + // 下个节点审批人如果不存在,则由前端传递 |
| 523 | if (CollUtil.isNotEmpty(reqVO.getStartUserSelectAssignees())) { | 523 | if (CollUtil.isNotEmpty(reqVO.getStartUserSelectAssignees())) { |
| 524 | - variables.put(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_START_USER_SELECT_ASSIGNEES, | ||
| 525 | - reqVO.getStartUserSelectAssignees()); | 524 | + // 获取实例中的全部节点数据,避免后续节点的审批人被覆盖 |
| 525 | + Map<String, List<Long>> startUserSelectAssignees = FlowableUtils.getStartUserSelectAssignees(instance.getProcessVariables()); | ||
| 526 | + startUserSelectAssignees.putAll(reqVO.getStartUserSelectAssignees()); | ||
| 527 | + variables.put(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_START_USER_SELECT_ASSIGNEES, startUserSelectAssignees); | ||
| 526 | } | 528 | } |
| 527 | runtimeService.setVariables(task.getProcessInstanceId(), variables); | 529 | runtimeService.setVariables(task.getProcessInstanceId(), variables); |
| 528 | taskService.complete(task.getId(), variables, true); | 530 | taskService.complete(task.getId(), variables, true); |