From c4a98bdfe1ed9a54d103c5729d83b64bb53cc28f Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 25 八月 2026 09:08:07 +0800
Subject: [PATCH] feat(erp): 采购订单审批接入协同办公(BPM)

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/listener/ErpPurchaseOrderStatusListener.java |   35 +++++++++++++++++++++++++++++------
 1 files changed, 29 insertions(+), 6 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
index 21b8109..62fdb1d 100644
--- 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
@@ -3,29 +3,52 @@
 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 cn.iocoder.yudao.module.erp.service.purchase.ErpPurchaseOrderServiceImpl;
 import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 /**
- * 閲囪喘璁㈠崟瀹℃壒鐨勭粨鏋滅殑鐩戝惉鍣ㄥ疄鐜扮被
+ * 閲囪喘璁㈠崟瀹℃壒鐘舵�佺洃鍚櫒
  *
- * @author 鑺嬮亾婧愮爜
+ * 鐩戝惉 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
-    public String getProcessDefinitionKey() {
-        return ErpPurchaseOrderServiceImpl.BPM_PROCESS_DEFINITION_KEY;
+    protected String getProcessDefinitionKey() {
+        return PROCESS_DEFINITION_KEY;
     }
 
     @Override
     protected void onEvent(BpmProcessInstanceStatusEvent event) {
-        purchaseOrderService.updatePurchaseOrderAuditStatus(Long.parseLong(event.getBusinessKey()), event.getStatus());
+        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