diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java index 719a11f..d9332ac 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java @@ -96,17 +96,21 @@ public class BpmTaskCandidateInvoker { String range = BpmnModelUtils.parseCandidateRange(execution.getCurrentFlowElement()); String param = BpmnModelUtils.parseCandidateParam(execution.getCurrentFlowElement()); // 1.1 计算任务的候选人 审批人范围为:本部门或本公司 - if ( range.equals("1") || range.equals("2")) { - if (strategy == 21) { //审批人为部门负责人 - userIds = getCandidateStrategy(strategy).calculateUsers2(execution, range); + if ((range != null) && (range.equals("1") || range.equals("2")) ){ + switch (strategy) { + case 21: //审批人为部门负责人 + userIds = getCandidateStrategy(strategy).calculateUsers2(execution, range); + break; + case 22: //审批人为岗位 + userIds = getCandidateStrategy(strategy).calculateUsers2(execution, range+"#"+param); + break; + case 10: //审批人为角色 + userIds = getCandidateStrategy(strategy).calculateUsers2(execution, range+"#"+param); + break; + default: + userIds = getCandidateStrategy(strategy).calculateUsers(execution, param); + break; } - if (strategy == 22) { //审批人为岗位 - userIds = getCandidateStrategy(strategy).calculateUsers2(execution, range+"#"+param); - } - if (strategy == 10) { //审批人为角色 - userIds = getCandidateStrategy(strategy).calculateUsers2(execution, range+"#"+param); - } - //userIds = getCandidateStrategy(strategy).calculateUsers2(execution, param); }else{ //默认不选择审批人范围 userIds = getCandidateStrategy(strategy).calculateUsers(execution, param); }