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 20089b4e6..2864e93dc 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 @@ -19,13 +19,11 @@ import org.apache.commons.collections4.ListUtils; import org.flowable.bpmn.model.FlowElement; import org.flowable.bpmn.model.UserTask; import org.flowable.engine.delegate.DelegateExecution; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import javax.annotation.Resource; -import javax.validation.Valid; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -70,7 +68,7 @@ public class TransferToAdminTaskAssigneeSelector extends AbstractBpmnTaskAssigne protected List invokeService(FlowElement flowElement, DelegateExecution execution, ApproverScopeDTO scopeDto) { - if(Boolean.TRUE.equals(supportRefreshProperties.getUseNewToAdminApi())) { + if (Boolean.TRUE.equals(supportRefreshProperties.getUseNewToAdminApi())) { return invokeNewQuery(flowElement, execution, scopeDto); } else { return invokeOldQuery(flowElement, execution, scopeDto); @@ -90,7 +88,10 @@ public class TransferToAdminTaskAssigneeSelector extends AbstractBpmnTaskAssigne .map(w -> BeanUtil.copyProperties(w, ListFlowTaskAssignerReq.OrgScope.class)) .collect(Collectors.toList())); } - ListFlowTaskAssignerReq req = builder.workspaceAdmin(false).build(); + ListFlowTaskAssignerReq req = builder + .procInstId(execution.getProcessInstanceId()) + .workspaceAdmin(false) + .build(); BpmnMetaParserHelper.getApproverScope((UserTask) flowElement) .ifPresent(i -> { if (Objects.equals(i, ApproverScopeEnum.projectWorkspace)) { @@ -133,13 +134,14 @@ public class TransferToAdminTaskAssigneeSelector extends AbstractBpmnTaskAssigne } ListFlowTaskAssignerReq req = builder.workspaceAdmin(false).build(); req.setProcInstId(execution.getProcessInstanceId()); - if(Objects.equals(ApproverScopeEnum.entWorkspace, approverScope.get()) && Objects.equals(ApproverSpecifyEnum.fixedPerson,optSpecify.get())) { - req.setCooperateTypes(Sets.newHashSet(1,2,3,4,5,6,7,8,9,11,30)); + if (approverScope.isPresent() && Objects.equals(ApproverScopeEnum.entWorkspace, approverScope.get()) && + optSpecify.isPresent() && Objects.equals(ApproverSpecifyEnum.fixedPerson, optSpecify.get())) { + req.setCooperateTypes(Sets.newHashSet(1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 30)); } else { req.setCooperateTypes(getCooperationTypes(flowElement)); } // 发起人主管找其超管时,需要将发起人的数据包装进 orgScope - if (Objects.equals(ApproverSpecifyEnum.initiatorLeader, optSpecify.get())) { + if (optSpecify.isPresent() && Objects.equals(ApproverSpecifyEnum.initiatorLeader, optSpecify.get())) { BpmnTaskDelegateAssigner initiator = BpmnTaskDelegateAssigner.toObjectCompatible(execution.getVariable(INTERNAL_INITIATOR, String.class)); Integer workspaceType = execution.getVariable(INTERNAL_PROCESS_WORKSPACE_TYPE, Integer.class); req.setOrgScopes(Lists.newArrayList(new ListFlowTaskAssignerReq.OrgScope(workspaceType, Long.parseLong(initiator.getTenantId()), Long.parseLong(initiator.getOuId()), null)));