Commit 4227de4b9baf233851dc36dc29ba6424a5eb3cc6
1 parent
57f575bf
fix: [bpm] 优化任务 local variable。用于任务内嵌表单
Showing
1 changed file
with
5 additions
and
3 deletions
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()); |