From 3c5c3ddc87b1fa13590efe2c554819738bca18c6 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 30 Jul 2025 18:51:23 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E3=80=90bpm=20=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81=E3=80=91=E8=B7=A8=E8=BF=9B=E7=A8=8B=E8=B0=83=E7=94=A8?= =?UTF-8?q?=EF=BC=8C=E6=97=A0=E6=B3=95=E5=9B=9E=E8=B0=83=20crm=20=E7=9A=84?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E7=BB=93=E6=9E=9C=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/event/CrmContractStatusListener.java | 25 +++++++++++++++++++ .../event/CrmReceivableStatusListener.java | 2 -- .../rpc/config/RpcConfiguration.java | 7 ++++++ .../listener/CrmContractStatusListener.java | 16 +++++++++--- 4 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/api/event/CrmContractStatusListener.java diff --git a/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/api/event/CrmContractStatusListener.java b/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/api/event/CrmContractStatusListener.java new file mode 100644 index 000000000..12eb9cf17 --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/api/event/CrmContractStatusListener.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.bpm.api.event; + +import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmHttpRequestUtils; +import jakarta.validation.Valid; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * 合同审批的结果的监听器实现类 + * + * @author 芋道源码 + */ +public class CrmContractStatusListener extends BpmProcessInstanceStatusEventListener { + + @Override + public String getProcessDefinitionKey() { + return "crm-contract-audit"; + } + + @Override + public void onEvent(@RequestBody @Valid BpmProcessInstanceStatusEvent event) { + BpmHttpRequestUtils.executeBpmHttpRequest(event, + "http://crm-server/rpc-api/crm/contract/update-audit-status"); + } + +} diff --git a/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/api/event/CrmReceivableStatusListener.java b/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/api/event/CrmReceivableStatusListener.java index 69769058d..a780a5be7 100644 --- a/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/api/event/CrmReceivableStatusListener.java +++ b/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/api/event/CrmReceivableStatusListener.java @@ -2,8 +2,6 @@ package cn.iocoder.yudao.module.bpm.api.event; import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmHttpRequestUtils; import jakarta.validation.Valid; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestBody; /** diff --git a/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/framework/rpc/config/RpcConfiguration.java b/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/framework/rpc/config/RpcConfiguration.java index 90ffa4eca..fac52b41e 100644 --- a/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/framework/rpc/config/RpcConfiguration.java +++ b/yudao-module-bpm/yudao-module-bpm-server/src/main/java/cn/iocoder/yudao/module/bpm/framework/rpc/config/RpcConfiguration.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.bpm.framework.rpc.config; +import cn.iocoder.yudao.module.bpm.api.event.CrmContractStatusListener; import cn.iocoder.yudao.module.bpm.api.event.CrmReceivableStatusListener; import cn.iocoder.yudao.module.system.api.dept.DeptApi; import cn.iocoder.yudao.module.system.api.dept.PostApi; @@ -26,4 +27,10 @@ public class RpcConfiguration { return new CrmReceivableStatusListener(); } + @Bean + @ConditionalOnMissingBean(name = "crmContractStatusListener") + public CrmContractStatusListener crmContractStatusListener() { + return new CrmContractStatusListener(); + } + } diff --git a/yudao-module-crm/yudao-module-crm-server/src/main/java/cn/iocoder/yudao/module/crm/service/contract/listener/CrmContractStatusListener.java b/yudao-module-crm/yudao-module-crm-server/src/main/java/cn/iocoder/yudao/module/crm/service/contract/listener/CrmContractStatusListener.java index ce82858b2..64caa3749 100644 --- a/yudao-module-crm/yudao-module-crm-server/src/main/java/cn/iocoder/yudao/module/crm/service/contract/listener/CrmContractStatusListener.java +++ b/yudao-module-crm/yudao-module-crm-server/src/main/java/cn/iocoder/yudao/module/crm/service/contract/listener/CrmContractStatusListener.java @@ -2,19 +2,28 @@ package cn.iocoder.yudao.module.crm.service.contract.listener; import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener; +import cn.iocoder.yudao.module.crm.enums.ApiConstants; import cn.iocoder.yudao.module.crm.service.contract.CrmContractService; import cn.iocoder.yudao.module.crm.service.contract.CrmContractServiceImpl; import jakarta.annotation.Resource; -import org.springframework.stereotype.Component; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; /** * 合同审批的结果的监听器实现类 * * @author HUIHUI */ -@Component +@RestController +@Validated +@FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = public class CrmContractStatusListener extends BpmProcessInstanceStatusEventListener { + private static final String PREFIX = ApiConstants.PREFIX + "/contract"; + @Resource private CrmContractService contractService; @@ -24,7 +33,8 @@ public class CrmContractStatusListener extends BpmProcessInstanceStatusEventList } @Override - protected void onEvent(BpmProcessInstanceStatusEvent event) { + @PostMapping(PREFIX + "/update-audit-status") // 目的:提供给 bpm-server rpc 调用 + protected void onEvent(@RequestBody BpmProcessInstanceStatusEvent event) { contractService.updateContractAuditStatus(Long.parseLong(event.getBusinessKey()), event.getStatus()); }