From 274dd8b724dd4485658e1d2a3f825a007f625bd7 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 17 七月 2026 09:10:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_business' into dev_business

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/listener/ErpPurchaseRequestStatusListener.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/listener/ErpPurchaseRequestStatusListener.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/listener/ErpPurchaseRequestStatusListener.java
new file mode 100644
index 0000000..caf124d
--- /dev/null
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/listener/ErpPurchaseRequestStatusListener.java
@@ -0,0 +1,51 @@
+package cn.iocoder.yudao.module.erp.service.purchase.listener;
+
+import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent;
+import cn.iocoder.yudao.module.erp.service.purchase.ErpPurchaseRequestService;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 閲囪喘鐢宠瀹℃壒鐘舵�佺洃鍚櫒
+ *
+ * 鐩戝惉 BPM 娴佺▼瀹炰緥鐘舵�佸彉鏇翠簨浠讹紝鏇存柊閲囪喘鐢宠鐨勫鎵圭姸鎬�
+ */
+@Component
+@Slf4j
+public class ErpPurchaseRequestStatusListener extends cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener {
+
+    /**
+     * 閲囪喘鐢宠瀹℃壒娴佺▼瀹氫箟 Key
+     */
+    private static final String PROCESS_DEFINITION_KEY = "purchase_request_approve";
+
+    @Resource
+    private ErpPurchaseRequestService purchaseRequestService;
+
+    @Override
+    protected String getProcessDefinitionKey() {
+        return PROCESS_DEFINITION_KEY;
+    }
+
+    @Override
+    protected void onEvent(BpmProcessInstanceStatusEvent event) {
+        Long requestId;
+        try {
+            requestId = Long.parseLong(event.getBusinessKey());
+        } catch (NumberFormatException e) {
+            log.warn("[onEvent] businessKey({}) 涓嶆槸鏈夋晥鐨勯噰璐敵璇风紪鍙�", event.getBusinessKey());
+            return;
+        }
+
+        log.info("[onEvent] 鏀跺埌BPM瀹℃壒浜嬩欢锛宺equestId={}, status={}", requestId, event.getStatus());
+
+        try {
+            purchaseRequestService.updatePurchaseRequestAuditStatus(requestId, event.getStatus());
+            log.info("[onEvent] 閲囪喘鐢宠({}) 瀹℃壒鐘舵�佹洿鏂板畬鎴�", requestId);
+        } catch (Exception e) {
+            log.error("[onEvent] 鏇存柊閲囪喘鐢宠瀹℃壒鐘舵�佸け璐ワ紝requestId={}", requestId, e);
+        }
+    }
+
+}

--
Gitblit v1.9.3