Commit 4227de4b9baf233851dc36dc29ba6424a5eb3cc6

Authored by jason
1 parent 57f575bf

fix: [bpm] 优化任务 local variable。用于任务内嵌表单

yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.convert.Convert; 4 import cn.hutool.core.convert.Convert;
5 import cn.hutool.core.io.FileUtil; 5 import cn.hutool.core.io.FileUtil;
6 import cn.hutool.core.lang.Assert; 6 import cn.hutool.core.lang.Assert;
  7 +import cn.hutool.core.map.MapUtil;
7 import cn.hutool.core.util.*; 8 import cn.hutool.core.util.*;
8 import cn.hutool.extra.spring.SpringUtil; 9 import cn.hutool.extra.spring.SpringUtil;
9 import cn.iocoder.yudao.framework.common.pojo.PageResult; 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -622,9 +623,9 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -622,9 +623,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
622 } 623 }
623 624
624 // 4. 校验并处理 APPROVE_USER_SELECT 当前审批人,选择下一节点审批人的逻辑 625 // 4. 校验并处理 APPROVE_USER_SELECT 当前审批人,选择下一节点审批人的逻辑
625 - Map<String, Object> variables = validateAndSetNextAssignees(task.getTaskDefinitionKey(), processVariables, 626 + validateAndSetNextAssignees(task.getTaskDefinitionKey(), processVariables,
626 bpmnModel, reqVO.getNextAssignees(), instance); 627 bpmnModel, reqVO.getNextAssignees(), instance);
627 - runtimeService.setVariables(task.getProcessInstanceId(), variables); 628 + runtimeService.setVariables(task.getProcessInstanceId(), processVariables);
628 629
629 // 5. 如果当前节点 Id 存在于需要预测的流程节点中,从中移除。 流程变量在回退操作中设置 630 // 5. 如果当前节点 Id 存在于需要预测的流程节点中,从中移除。 流程变量在回退操作中设置
630 Object needSimulateTaskIds = runtimeService.getVariable(task.getProcessInstanceId(), BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_NEED_SIMULATE_TASK_IDS); 631 Object needSimulateTaskIds = runtimeService.getVariable(task.getProcessInstanceId(), BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_NEED_SIMULATE_TASK_IDS);
@@ -642,7 +643,8 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -642,7 +643,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
642 } 643 }
643 644
644 // 7. 调用 BPM complete 去完成任务 645 // 7. 调用 BPM complete 去完成任务
645 - taskService.complete(task.getId(), variables, true); 646 + Map<String,Object> taskVariables = MapUtil.emptyIfNull(reqVO.getVariables()); // task local variables. 一般用于任务内嵌流程表单
  647 + taskService.complete(task.getId(), taskVariables, true);
646 648
647 // 【加签专属】处理加签任务 649 // 【加签专属】处理加签任务
648 handleParentTaskIfSign(task.getParentTaskId()); 650 handleParentTaskIfSign(task.getParentTaskId());