Commit f2909d6bb6bb1928bcc3d20f6e75a14844b61ef2

Authored by lizhixian
1 parent e1152937

feat:新增自选节点审批人参数,由前端传递下个节点选择的审批人

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);