From f2909d6bb6bb1928bcc3d20f6e75a14844b61ef2 Mon Sep 17 00:00:00 2001 From: lizhixian <18210040298@163.com> Date: Tue, 25 Feb 2025 16:27:05 +0800 Subject: [PATCH] feat:新增自选节点审批人参数,由前端传递下个节点选择的审批人 --- yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index f4d08b5..f2bd3ff 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/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 { // 其中,variables 是存储动态表单到 local 任务级别。过滤一下,避免 ProcessInstance 系统级的变量被占用 if (CollUtil.isNotEmpty(reqVO.getVariables())) { Map variables = FlowableUtils.filterTaskFormVariable(reqVO.getVariables()); - // 修改表单的值需要存储到 ProcessInstance 变量 + // 下个节点审批人如果不存在,则由前端传递 if (CollUtil.isNotEmpty(reqVO.getStartUserSelectAssignees())) { - variables.put(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_START_USER_SELECT_ASSIGNEES, - reqVO.getStartUserSelectAssignees()); + // 获取实例中的全部节点数据,避免后续节点的审批人被覆盖 + Map> startUserSelectAssignees = FlowableUtils.getStartUserSelectAssignees(instance.getProcessVariables()); + startUserSelectAssignees.putAll(reqVO.getStartUserSelectAssignees()); + variables.put(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_START_USER_SELECT_ASSIGNEES, startUserSelectAssignees); } runtimeService.setVariables(task.getProcessInstanceId(), variables); taskService.complete(task.getId(), variables, true); -- libgit2 0.21.4