diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorSpecifiedTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorSpecifiedTaskAssigneeSelector.java index f8f3a7ec2..0ab4f2ef8 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorSpecifiedTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorSpecifiedTaskAssigneeSelector.java @@ -2,7 +2,9 @@ package cn.axzo.workflow.server.controller.delegate; import cn.axzo.workflow.common.enums.ApproverSpecifyEnum; import cn.axzo.workflow.common.exception.WorkflowEngineException; +import cn.axzo.workflow.common.model.request.bpmn.BpmnSignApproverLimit; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; +import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.flowable.bpmn.model.FlowElement; @@ -16,6 +18,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; import static cn.axzo.workflow.common.code.FlowableEngineRespCode.ENGINE_USER_TASK_CALC_ERROR; @@ -48,7 +51,14 @@ public class BasedInitiatorSpecifiedTaskAssigneeSelector extends AbstractBpmnTas public List select(FlowElement flowElement, DelegateExecution execution, Boolean throwException) { List assigners = new ArrayList<>(); try { - populateAssigneeByInitiatorSpecify(assigners, flowElement, execution); + Optional signApproverLimit = BpmnMetaParserHelper.getSignApproverLimit(flowElement); + if (signApproverLimit.isPresent()) { + // 签署业务节点,设置发起人自选后,会设置限制范围 + // TODO + } else { + // 最初的发起人自选 + populateAssigneeByInitiatorSpecify(assigners, flowElement, execution); + } } catch (Throwable t) { if (Boolean.TRUE.equals(throwException)) { log.warn("执行查询发起时指定审批人时发现异常, 审批节点:{}, 异常信息:{}", flowElement.getId(), t.getMessage());