Commit 3a433e8226ca72643118efa47a00593f495a2125

Authored by jason
1 parent b98421df

仿钉钉流程设计- 连续多级部门负责人review 修改

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/strategy/BpmTaskCandidateDeptLeaderMultiStrategy.java
@@ -31,23 +31,19 @@ public class BpmTaskCandidateDeptLeaderMultiStrategy extends BpmTaskCandidateAbs @@ -31,23 +31,19 @@ public class BpmTaskCandidateDeptLeaderMultiStrategy extends BpmTaskCandidateAbs
31 31
32 @Override 32 @Override
33 public void validateParam(String param) { 33 public void validateParam(String param) {
34 - // TODO @jason:是不是可以 | 分隔 deptId 数组,和 level;这样后续可以加更多的参数。  
35 - // 参数格式: , 分割。前面的部门编号,可以为多个。最后一个为部门层级  
36 - List<Long> params = StrUtils.splitToLong(param, ",");  
37 - List<List<Long>> splitList = CollUtil.split(params, params.size() - 1);  
38 - Assert.isTrue(splitList.size() == 2, "参数格式不匹配");  
39 - deptApi.validateDeptList(splitList.get(0));  
40 - Assert.isTrue(splitList.get(1).get(0) > 0, "部门层级必须大于 0"); 34 + // 参数格式: | 分隔 。左边为部门(多个部门用 , 分隔)。 右边为部门层级
  35 + String[] params = param.split("\\|");
  36 + Assert.isTrue(params.length == 2, "参数格式不匹配");
  37 + deptApi.validateDeptList(StrUtils.splitToLong(params[0], ","));
  38 + Assert.isTrue(Integer.parseInt(params[1]) > 0, "部门层级必须大于 0");
41 } 39 }
42 40
43 @Override 41 @Override
44 public Set<Long> calculateUsers(DelegateExecution execution, String param) { 42 public Set<Long> calculateUsers(DelegateExecution execution, String param) {
45 - // TODO @jason:是不是可以 | 分隔 deptId 数组,和 level;这样后续可以加更多的参数。 43 + // 参数格式: | 分隔 。左边为部门(多个部门用 , 分隔)。 右边为部门层级
46 // 参数格式: ,分割。前面的部门Id. 可以为多个。 最后一个为部门层级 44 // 参数格式: ,分割。前面的部门Id. 可以为多个。 最后一个为部门层级
47 - List<Long> params = StrUtils.splitToLong(param, ",");  
48 - List<List<Long>> splitList = CollUtil.split(params, params.size() - 1);  
49 - Long level = splitList.get(1).get(0);  
50 - return getMultiLevelDeptLeaderIds(splitList.get(0), level.intValue()); 45 + String[] params = param.split("\\|");
  46 + return getMultiLevelDeptLeaderIds(StrUtils.splitToLong(params[0], ","), Integer.valueOf(params[1]));
51 } 47 }
52 48
53 } 49 }