From 055aa1d5d5cdc9fa36f6f0ea5af7f60f8b426617 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sun, 19 Nov 2023 00:28:08 +0800 Subject: [PATCH] =?UTF-8?q?add=20-=20=E6=96=B0=E5=A2=9E=E2=80=9C=E4=B8=8A?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E5=AE=A1=E6=89=B9=E6=8C=87=E5=AE=9A=E2=80=9D?= =?UTF-8?q?=E7=9A=84=E5=AE=9A=E4=B9=89=EF=BC=8C=E5=B9=B6=E5=88=86=E6=9E=90?= =?UTF-8?q?=E8=AF=A5=E9=85=8D=E7=BD=AE=E5=A6=82=E4=BD=95=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/client/feign/bpmn/ProcessInstanceApi.java | 3 +-- .../cn/axzo/workflow/common/enums/ApproverScopeEnum.java | 1 + .../workflow/core/common/utils/BpmnMetaParserHelper.java | 7 +++++++ .../core/deletage/AbstractBpmnTaskAssigneeSelector.java | 6 ++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessInstanceApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessInstanceApi.java index 1fbf3b048..698be5359 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessInstanceApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessInstanceApi.java @@ -108,7 +108,6 @@ public interface ProcessInstanceApi { @Nullable @RequestParam(required = false) String tenantId); @GetMapping("/api/process/instance/cooperation-org") - CommonResponse getCooperationOrg(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam(required = - false) String processInstanceId, + CommonResponse getCooperationOrg(@NotBlank(message = "流程实例 ID 不能为空") @RequestParam String processInstanceId, @Nullable @RequestParam(required = false) String tenantId); } diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverScopeEnum.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverScopeEnum.java index cdb4f309a..158b509fa 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverScopeEnum.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverScopeEnum.java @@ -10,6 +10,7 @@ public enum ApproverScopeEnum { entWorkspace("entWorkspace", "企业工作台"), projectWorkspace("projectWorkspace", "项目工作台"), preTaskUser("preTaskUser", "上节点审批人所在单位"), + preTaskSpecified("preTaskSpecified", "上节点审批人指定"), ; private String type; private String desc; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java index 54fc8ec7f..358cec4fd 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java @@ -2,6 +2,7 @@ package cn.axzo.workflow.core.common.utils; import cn.axzo.workflow.common.enums.ApprovalMethodEnum; import cn.axzo.workflow.common.enums.ApproverEmptyHandleTypeEnum; +import cn.axzo.workflow.common.enums.ApproverScopeEnum; import cn.axzo.workflow.common.enums.ApproverSpecifyEnum; import cn.axzo.workflow.common.enums.BpmnFlowNodeType; import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonConf; @@ -26,6 +27,7 @@ import java.util.Optional; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_APPROVAL_METHOD; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_APPROVER_EMPTY_HANDLE_TYPE; +import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_APPROVER_SCOPE; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_APPROVER_SPECIFY; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_BUTTON; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_BUTTON_META; @@ -159,6 +161,11 @@ public final class BpmnMetaParserHelper { .map(element -> ApprovalMethodEnum.valueOf(element.getAttributeValue(null, ELEMENT_ATTRIBUTE_VALUE))); } + public static Optional getApproverScope(UserTask userTask) { + return defaultValid(userTask, CONFIG_APPROVER_SCOPE) + .map(element -> ApproverScopeEnum.valueOf(element.getAttributeValue(null, ELEMENT_ATTRIBUTE_VALUE))); + } + public static Optional getApproverSpecify(UserTask userTask) { return defaultValid(userTask, CONFIG_APPROVER_SPECIFY) .map(element -> ApproverSpecifyEnum.valueOf(element.getAttributeValue(null, ELEMENT_ATTRIBUTE_VALUE))); diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/AbstractBpmnTaskAssigneeSelector.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/AbstractBpmnTaskAssigneeSelector.java index 0a7c41d4d..db671e4bf 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/AbstractBpmnTaskAssigneeSelector.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/deletage/AbstractBpmnTaskAssigneeSelector.java @@ -4,8 +4,10 @@ import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.maokai.api.client.OrganizationalNodeUserApi; import cn.axzo.maokai.api.vo.request.FlowTaskAssignerReq; import cn.axzo.maokai.api.vo.response.FlowTaskAssigner; +import cn.axzo.workflow.common.enums.ApproverScopeEnum; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; import cn.axzo.workflow.core.common.exception.WorkflowEngineException; +import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.lang.Assert; import cn.hutool.http.HttpStatus; @@ -32,6 +34,10 @@ public abstract class AbstractBpmnTaskAssigneeSelector implements BpmnTaskAssign protected abstract FlowTaskAssignerReq buildQuery(UserTask userTask); + protected final ApproverScopeEnum getApproerScope(UserTask userTask) { + return BpmnMetaParserHelper.getApproverScope(userTask).orElseThrow(() -> new WorkflowEngineException( + "未获取到”审批人所在范围”的配置信息,请检查流程配置")); + } @Override public List select(UserTask userTask) { FlowTaskAssignerReq query = buildQuery(userTask);