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 4 import cn.hutool.core.convert.Convert;
5 5 import cn.hutool.core.io.FileUtil;
6 6 import cn.hutool.core.lang.Assert;
  7 +import cn.hutool.core.map.MapUtil;
7 8 import cn.hutool.core.util.*;
8 9 import cn.hutool.extra.spring.SpringUtil;
9 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
... ... @@ -622,9 +623,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
622 623 }
623 624  
624 625 // 4. 校验并处理 APPROVE_USER_SELECT 当前审批人,选择下一节点审批人的逻辑
625   - Map<String, Object> variables = validateAndSetNextAssignees(task.getTaskDefinitionKey(), processVariables,
  626 + validateAndSetNextAssignees(task.getTaskDefinitionKey(), processVariables,
626 627 bpmnModel, reqVO.getNextAssignees(), instance);
627   - runtimeService.setVariables(task.getProcessInstanceId(), variables);
  628 + runtimeService.setVariables(task.getProcessInstanceId(), processVariables);
628 629  
629 630 // 5. 如果当前节点 Id 存在于需要预测的流程节点中,从中移除。 流程变量在回退操作中设置
630 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 643 }
643 644  
644 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 650 handleParentTaskIfSign(task.getParentTaskId());
... ...