From 61c04b7f36ddfe275a6cae395e438b19688901f4 Mon Sep 17 00:00:00 2001 From: yueyi <329929997@qq.com> Date: Fri, 10 Oct 2025 10:12:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E8=89=BA=E6=B5=81=E7=A8=8B=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zt-module-bpm/zt-module-bpm-server/pom.xml | 5 +++ .../rpc/config/RpcConfiguration.java | 3 +- .../ProcessRouteApprovalBpmListener.java | 42 +++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/process/route/listener/ProcessRouteApprovalBpmListener.java diff --git a/zt-module-bpm/zt-module-bpm-server/pom.xml b/zt-module-bpm/zt-module-bpm-server/pom.xml index 8d152f0..aef8316 100644 --- a/zt-module-bpm/zt-module-bpm-server/pom.xml +++ b/zt-module-bpm/zt-module-bpm-server/pom.xml @@ -38,6 +38,11 @@ zt-module-capital-api ${business.version} + + com.zt.plat + zt-module-product-api + ${business.version} + diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java index 0ab98bc..d3ad777 100644 --- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java @@ -1,6 +1,7 @@ package com.zt.plat.module.bpm.framework.rpc.config; import com.zt.plat.module.capital.api.AmountCreditApplyApi; +import com.zt.plat.module.product.api.MesProcessRoutApi; import com.zt.plat.module.system.api.dept.DeptApi; import com.zt.plat.module.system.api.dept.PostApi; import com.zt.plat.module.system.api.dict.DictDataApi; @@ -13,6 +14,6 @@ import org.springframework.context.annotation.Configuration; @Configuration(value = "bpmRpcConfiguration", proxyBeanMethods = false) @EnableFeignClients(clients = {RoleApi.class, DeptApi.class, PostApi.class, AdminUserApi.class, SmsSendApi.class, DictDataApi.class, - PermissionApi.class, AmountCreditApplyApi.class}) + PermissionApi.class, AmountCreditApplyApi.class, MesProcessRoutApi.class}) public class RpcConfiguration { } diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/process/route/listener/ProcessRouteApprovalBpmListener.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/process/route/listener/ProcessRouteApprovalBpmListener.java new file mode 100644 index 0000000..2bdbe8d --- /dev/null +++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/process/route/listener/ProcessRouteApprovalBpmListener.java @@ -0,0 +1,42 @@ +package com.zt.plat.module.bpm.service.process.route.listener; + +import com.zt.plat.module.bpm.api.event.BpmProcessInstanceStatusEvent; +import com.zt.plat.module.bpm.api.event.BpmProcessInstanceStatusEventListener; +import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum; +import com.zt.plat.module.product.api.MesProcessRoutApi; +import com.zt.plat.module.product.enums.process.ProcessConstant; +import com.zt.plat.module.product.enums.process.ProcessRouteApprovalStatusEnums; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Objects; + +/** + * 工艺流程审批状态监听器 + */ +@Component +public class ProcessRouteApprovalBpmListener extends BpmProcessInstanceStatusEventListener { + + @Resource + private MesProcessRoutApi mesProcessRoutApi; + + @Override + protected List getProcessDefinitionKey() { + return List.of(ProcessConstant.APPROVAL_PROCESS_KEY); + } + + @Override + protected void onEvent(BpmProcessInstanceStatusEvent event) { + Integer bpmStatus = event.getStatus(); + String status = null; + if (Objects.equals(BpmProcessInstanceStatusEnum.APPROVE.getStatus(), bpmStatus)) { + status = ProcessRouteApprovalStatusEnums.Approved.getCode(); + } else if (Objects.equals(BpmProcessInstanceStatusEnum.REJECT.getStatus(), bpmStatus)) { + status = ProcessRouteApprovalStatusEnums.Failed.getCode(); + } else if (Objects.equals(BpmProcessInstanceStatusEnum.CANCEL.getStatus(), bpmStatus)) { + status = ProcessRouteApprovalStatusEnums.Draft.getCode(); + } + mesProcessRoutApi.updateProcessRouteApprovalStatus(Long.parseLong(event.getBusinessKey()), status); + } +}