Commit ee5cb23730ebdf7cb0827ea5a22ea29cffe1785d
1 parent
edb30252
fix(bpm):修复自选审批人时存在多个并行节点时审批人覆盖问题
多个并行节点中只有最后一个节点的审批人会被保存,其他都为空
Showing
1 changed file
with
5 additions
and
4 deletions
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
| ... | ... | @@ -597,6 +597,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { |
| 597 | 597 | * @param nextAssignees 下一个节点审批人集合(参数) |
| 598 | 598 | * @param processInstance 流程实例 |
| 599 | 599 | */ |
| 600 | + @SuppressWarnings("unchecked") | |
| 600 | 601 | private Map<String, Object> validateAndSetNextAssignees(String taskDefinitionKey, Map<String, Object> variables, BpmnModel bpmnModel, |
| 601 | 602 | Map<String, List<Long>> nextAssignees, ProcessInstance processInstance) { |
| 602 | 603 | // simple 设计器第一个节点默认为发起人节点,不校验是否存在审批人 |
| ... | ... | @@ -646,10 +647,10 @@ public class BpmTaskServiceImpl implements BpmTaskService { |
| 646 | 647 | approveUserSelectAssignees = new HashMap<>(); |
| 647 | 648 | } |
| 648 | 649 | approveUserSelectAssignees.put(nextFlowNode.getId(), assignees); |
| 649 | - @SuppressWarnings("unchecked") | |
| 650 | - Map<String,List<Long>> existing = (Map<String,List<Long>>) variables.get(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_APPROVE_USER_SELECT_ASSIGNEES); | |
| 651 | - if(CollUtil.isNotEmpty(existing)) { | |
| 652 | - approveUserSelectAssignees.putAll(existing); | |
| 650 | + Map<String,List<Long>> existingApproveUserSelectAssignees = (Map<String,List<Long>>) variables.get( | |
| 651 | + BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_APPROVE_USER_SELECT_ASSIGNEES); | |
| 652 | + if (CollUtil.isNotEmpty(existingApproveUserSelectAssignees)) { | |
| 653 | + approveUserSelectAssignees.putAll(existingApproveUserSelectAssignees); | |
| 653 | 654 | } |
| 654 | 655 | variables.put(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_APPROVE_USER_SELECT_ASSIGNEES, approveUserSelectAssignees); |
| 655 | 656 | } | ... | ... |