diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/code/FlowableEngineRespCode.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/code/FlowableEngineRespCode.java index a55685da3..cdc9f933d 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/code/FlowableEngineRespCode.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/code/FlowableEngineRespCode.java @@ -14,8 +14,9 @@ import lombok.Getter; @AllArgsConstructor public enum FlowableEngineRespCode implements IModuleRespCode { ENGINE_EXECUTION_LOST_ID_ERROR("001", "Execution 丢失"), - ENGINE_USER_TASK_CALC_ERROR("002", "计算用户任务节点【nodeId: {}】的审批人发生异常, 配置类型:【{}】, 异常信息: 【{}】"), + ENGINE_USER_TASK_CALC_ERROR("002", "计算用户任务节点【nodeId:{}】的审批人发生异常, 配置类型:【{}】, 异常信息:【{}】"), ENGINE_USER_TASK_TYPE_NOT_SUPPORT("003", "审批指定方式暂不支持"), + ENGINE_USER_TASK_PARAM_ERROR("004", "构建后的查询审批人入参为空. 任务节点【nodeId:{}】, 审批人所在范围:【{}】"), ; private String code; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AbstractBpmnTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AbstractBpmnTaskAssigneeSelector.java index 7010046c9..d2ce88187 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AbstractBpmnTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AbstractBpmnTaskAssigneeSelector.java @@ -19,6 +19,7 @@ import org.flowable.engine.delegate.DelegateExecution; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; +import org.springframework.util.CollectionUtils; import org.springframework.util.StopWatch; import org.springframework.util.StringUtils; @@ -31,6 +32,7 @@ import java.util.stream.Collectors; import static cn.axzo.workflow.core.common.code.BpmnTaskRespCode.CALC_TASK_ASSIGNEE_ERROR; import static cn.axzo.workflow.core.common.code.ConvertorRespCode.CONVERTOR_META_DATA_FORMAT_ERROR; import static cn.axzo.workflow.core.common.code.FlowableEngineRespCode.ENGINE_USER_TASK_CALC_ERROR; +import static cn.axzo.workflow.core.common.code.FlowableEngineRespCode.ENGINE_USER_TASK_PARAM_ERROR; /** @@ -57,6 +59,11 @@ public abstract class AbstractBpmnTaskAssigneeSelector implements BpmnTaskAssign applicationContext.getBean(approverScopeEnum.getProcessor(), ApproverScopeProcessor.class); ApproverScopeDTO scopeDto = processor.build(userTask, execution); + if (CollectionUtils.isEmpty(scopeDto.getOrgScopes()) + && CollectionUtils.isEmpty(scopeDto.getWorkerTeamScopes())) { + throw new WorkflowEngineException(ENGINE_USER_TASK_PARAM_ERROR, userTask.getId(), + approverScopeEnum.getDesc()); + } try { return invokeService(userTask, execution, scopeDto); } catch (Throwable t) {