Commit ad0d9d10c8f741f46a921a59face1566b072ec20

Authored by YunaiV
1 parent 742c2967

【功能新增】工作流:BpmTaskCandidateAssignEmptyStrategy 读取流程管理员

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/candidate/strategy/BpmTaskCandidateAssignEmptyStrategy.java
1 package cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.strategy; 1 package cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.strategy;
2 2
  3 +import cn.hutool.core.lang.Assert;
  4 +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
3 import cn.iocoder.yudao.module.bpm.enums.definition.BpmUserTaskAssignEmptyHandlerTypeEnum; 5 import cn.iocoder.yudao.module.bpm.enums.definition.BpmUserTaskAssignEmptyHandlerTypeEnum;
4 import cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.BpmTaskCandidateStrategy; 6 import cn.iocoder.yudao.module.bpm.framework.flowable.core.candidate.BpmTaskCandidateStrategy;
5 import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum; 7 import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
6 import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils; 8 import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils;
  9 +import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
7 import cn.iocoder.yudao.module.system.api.user.AdminUserApi; 10 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  11 +import jakarta.annotation.Resource;
8 import org.flowable.engine.delegate.DelegateExecution; 12 import org.flowable.engine.delegate.DelegateExecution;
  13 +import org.springframework.context.annotation.Lazy;
9 import org.springframework.stereotype.Component; 14 import org.springframework.stereotype.Component;
10 15
11 import java.util.HashSet; 16 import java.util.HashSet;
@@ -20,6 +25,10 @@ import java.util.Set; @@ -20,6 +25,10 @@ import java.util.Set;
20 @Component 25 @Component
21 public class BpmTaskCandidateAssignEmptyStrategy extends BpmTaskCandidateAbstractStrategy { 26 public class BpmTaskCandidateAssignEmptyStrategy extends BpmTaskCandidateAbstractStrategy {
22 27
  28 + @Resource
  29 + @Lazy // 延迟加载,避免循环依赖
  30 + private BpmProcessDefinitionService processDefinitionService;
  31 +
23 public BpmTaskCandidateAssignEmptyStrategy(AdminUserApi adminUserApi) { 32 public BpmTaskCandidateAssignEmptyStrategy(AdminUserApi adminUserApi) {
24 super(adminUserApi); 33 super(adminUserApi);
25 } 34 }
@@ -45,8 +54,9 @@ public class BpmTaskCandidateAssignEmptyStrategy extends BpmTaskCandidateAbstrac @@ -45,8 +54,9 @@ public class BpmTaskCandidateAssignEmptyStrategy extends BpmTaskCandidateAbstrac
45 54
46 // 情况二:流程管理员 55 // 情况二:流程管理员
47 if (Objects.equals(assignEmptyHandlerType, BpmUserTaskAssignEmptyHandlerTypeEnum.ASSIGN_ADMIN.getType())) { 56 if (Objects.equals(assignEmptyHandlerType, BpmUserTaskAssignEmptyHandlerTypeEnum.ASSIGN_ADMIN.getType())) {
48 - // TODO 芋艿:需要等待流程实例的管理员支持  
49 - throw new UnsupportedOperationException("暂时实现!!!"); 57 + BpmProcessDefinitionInfoDO processDefinition = processDefinitionService.getProcessDefinitionInfo(execution.getProcessDefinitionId());
  58 + Assert.notNull(processDefinition, "流程定义({})不存在", execution.getProcessDefinitionId());
  59 + return new HashSet<>(processDefinition.getManagerUserIds());
50 } 60 }
51 61
52 // 都不满足,还是返回空 62 // 都不满足,还是返回空