diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/TransferToAdminTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/TransferToAdminTaskAssigneeSelector.java index 76c29318e..d39497a57 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/TransferToAdminTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/TransferToAdminTaskAssigneeSelector.java @@ -57,8 +57,10 @@ public class TransferToAdminTaskAssigneeSelector extends AbstractBpmnTaskAssigne protected List invokeService(FlowElement flowElement, DelegateExecution execution, ApproverScopeDTO scopeDto) { + Optional approverScope = BpmnMetaParserHelper.getApproverScope((UserTask) flowElement); Optional optSpecify = BpmnMetaParserHelper.getApproverSpecify((UserTask) flowElement); - if (optSpecify.isPresent() + if (optSpecify.isPresent() && approverScope.isPresent() + && Objects.equals(ApproverScopeEnum.projectWorkspace, approverScope.get()) && !Objects.equals(ApproverSpecifyEnum.position, optSpecify.get()) && !Objects.equals(ApproverSpecifyEnum.role, optSpecify.get())) { return Collections.emptyList(); @@ -78,12 +80,11 @@ public class TransferToAdminTaskAssigneeSelector extends AbstractBpmnTaskAssigne ListFlowTaskAssignerReq req = builder.workspaceAdmin(false).build(); req.setProcInstId(execution.getProcessInstanceId()); req.setCooperateTypes(getCooperationTypes(flowElement)); - BpmnMetaParserHelper.getApproverScope((UserTask) flowElement) - .ifPresent(i -> { - if (Objects.equals(i, ApproverScopeEnum.projectWorkspace)) { - req.setWorkspaceAdmin(true); - } - }); + approverScope.ifPresent(i -> { + if (Objects.equals(i, ApproverScopeEnum.projectWorkspace)) { + req.setWorkspaceAdmin(true); + } + }); List flowTaskAssigners = parseApiResult(() -> flowSupportApi.listTaskAssignerAdminV2(req), "审批节点: " + flowElement.getId() + ", 通过管理员查询审批人",