Commit f6f46ada6c4f9c9007ea2a3128f5ab6da50e628d

Authored by jason
1 parent fa359d22

【缺陷修复】 修复多实例任务时,审批人为空时,导致报错问题

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmParallelMultiInstanceBehavior.java
@@ -54,13 +54,13 @@ public class BpmParallelMultiInstanceBehavior extends ParallelMultiInstanceBehav @@ -54,13 +54,13 @@ public class BpmParallelMultiInstanceBehavior extends ParallelMultiInstanceBehav
54 Set<Long> assigneeUserIds = (Set<Long>) execution.getVariable(super.collectionVariable, Set.class); 54 Set<Long> assigneeUserIds = (Set<Long>) execution.getVariable(super.collectionVariable, Set.class);
55 if (assigneeUserIds == null) { 55 if (assigneeUserIds == null) {
56 assigneeUserIds = taskCandidateInvoker.calculateUsersByTask(execution); 56 assigneeUserIds = taskCandidateInvoker.calculateUsersByTask(execution);
57 - execution.setVariable(super.collectionVariable, assigneeUserIds);  
58 if (CollUtil.isEmpty(assigneeUserIds)) { 57 if (CollUtil.isEmpty(assigneeUserIds)) {
59 // 特殊:如果没有处理人的情况下,至少有一个 null 空元素,避免自动通过! 58 // 特殊:如果没有处理人的情况下,至少有一个 null 空元素,避免自动通过!
60 // 这样,保证在 BpmUserTaskActivityBehavior 至少创建出一个 Task 任务 59 // 这样,保证在 BpmUserTaskActivityBehavior 至少创建出一个 Task 任务
61 // 用途:1)审批人为空时;2)审批类型为自动通过、自动拒绝时 60 // 用途:1)审批人为空时;2)审批类型为自动通过、自动拒绝时
62 assigneeUserIds = SetUtils.asSet((Long) null); 61 assigneeUserIds = SetUtils.asSet((Long) null);
63 } 62 }
  63 + execution.setVariable(super.collectionVariable, assigneeUserIds);
64 } 64 }
65 return assigneeUserIds.size(); 65 return assigneeUserIds.size();
66 } 66 }
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/behavior/BpmSequentialMultiInstanceBehavior.java
@@ -47,13 +47,13 @@ public class BpmSequentialMultiInstanceBehavior extends SequentialMultiInstanceB @@ -47,13 +47,13 @@ public class BpmSequentialMultiInstanceBehavior extends SequentialMultiInstanceB
47 Set<Long> assigneeUserIds = (Set<Long>) execution.getVariable(super.collectionVariable, Set.class); 47 Set<Long> assigneeUserIds = (Set<Long>) execution.getVariable(super.collectionVariable, Set.class);
48 if (assigneeUserIds == null) { 48 if (assigneeUserIds == null) {
49 assigneeUserIds = taskCandidateInvoker.calculateUsersByTask(execution); 49 assigneeUserIds = taskCandidateInvoker.calculateUsersByTask(execution);
50 - execution.setVariable(super.collectionVariable, assigneeUserIds);  
51 if (CollUtil.isEmpty(assigneeUserIds)) { 50 if (CollUtil.isEmpty(assigneeUserIds)) {
52 // 特殊:如果没有处理人的情况下,至少有一个 null 空元素,避免自动通过! 51 // 特殊:如果没有处理人的情况下,至少有一个 null 空元素,避免自动通过!
53 // 这样,保证在 BpmUserTaskActivityBehavior 至少创建出一个 Task 任务 52 // 这样,保证在 BpmUserTaskActivityBehavior 至少创建出一个 Task 任务
54 // 用途:1)审批人为空时;2)审批类型为自动通过、自动拒绝时 53 // 用途:1)审批人为空时;2)审批类型为自动通过、自动拒绝时
55 assigneeUserIds = SetUtils.asSet((Long) null); 54 assigneeUserIds = SetUtils.asSet((Long) null);
56 } 55 }
  56 + execution.setVariable(super.collectionVariable, assigneeUserIds);
57 } 57 }
58 return assigneeUserIds.size(); 58 return assigneeUserIds.size();
59 } 59 }