From 44840942aba889088a86d2b3d93856530bb2dc25 Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期二, 25 八月 2026 16:51:29 +0800
Subject: [PATCH] Merge branch 'dev_business' into fix/hsy/20260811
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/listener/ErpPurchaseOrderStatusListener.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/listener/ErpPurchaseOrderStatusListener.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/listener/ErpPurchaseOrderStatusListener.java
new file mode 100644
index 0000000..62fdb1d
--- /dev/null
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/listener/ErpPurchaseOrderStatusListener.java
@@ -0,0 +1,54 @@
+package cn.iocoder.yudao.module.erp.service.purchase.listener;
+
+import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent;
+import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener;
+import cn.iocoder.yudao.module.erp.service.purchase.ErpPurchaseOrderService;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 閲囪喘璁㈠崟瀹℃壒鐘舵�佺洃鍚櫒
+ *
+ * 鐩戝惉 BPM 娴佺▼瀹炰緥鐘舵�佸彉鏇翠簨浠讹紝鏇存柊閲囪喘璁㈠崟鐨勫鎵圭姸鎬侊紙鍗忓悓鍔炲叕瀹℃壒鍚庡洖鍐欙級
+ *
+ * @author 瓒呯骇绠$悊鍛�
+ */
+@Component
+@Slf4j
+public class ErpPurchaseOrderStatusListener extends BpmProcessInstanceStatusEventListener {
+
+ /**
+ * 閲囪喘璁㈠崟瀹℃壒娴佺▼瀹氫箟 Key
+ */
+ private static final String PROCESS_DEFINITION_KEY = "purchase_order_approve";
+
+ @Resource
+ private ErpPurchaseOrderService purchaseOrderService;
+
+ @Override
+ protected String getProcessDefinitionKey() {
+ return PROCESS_DEFINITION_KEY;
+ }
+
+ @Override
+ protected void onEvent(BpmProcessInstanceStatusEvent event) {
+ Long orderId;
+ try {
+ orderId = Long.parseLong(event.getBusinessKey());
+ } catch (NumberFormatException e) {
+ log.warn("[onEvent] businessKey({}) 涓嶆槸鏈夋晥鐨勯噰璐鍗曠紪鍙�", event.getBusinessKey());
+ return;
+ }
+
+ log.info("[onEvent] 鏀跺埌BPM瀹℃壒浜嬩欢锛宱rderId={}, status={}", orderId, event.getStatus());
+
+ try {
+ purchaseOrderService.updatePurchaseOrderAuditStatus(orderId, event.getStatus());
+ log.info("[onEvent] 閲囪喘璁㈠崟({}) 瀹℃壒鐘舵�佹洿鏂板畬鎴�", orderId);
+ } catch (Exception e) {
+ log.error("[onEvent] 鏇存柊閲囪喘璁㈠崟瀹℃壒鐘舵�佸け璐ワ紝orderId={}", orderId, e);
+ }
+ }
+
+}
--
Gitblit v1.9.3