From f02d0df2f1dfc7a8b775cf50d45375e57628a5ef Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 10 十一月 2026 11:26:22 +0800
Subject: [PATCH] feat(ncr): 完善NCR处置联动逻辑与关闭校验

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/listener/CrmReceivableStatusListener.java |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/listener/CrmReceivableStatusListener.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/listener/CrmReceivableStatusListener.java
new file mode 100644
index 0000000..a1361f7
--- /dev/null
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/receivable/listener/CrmReceivableStatusListener.java
@@ -0,0 +1,43 @@
+package cn.iocoder.yudao.module.crm.service.receivable.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.service.receivable.CrmReceivableService;
+import cn.iocoder.yudao.module.crm.service.receivable.CrmReceivableServiceImpl;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * 鍥炴瀹℃壒缁撴灉鐩戝惉鍣�
+ *
+ * 娴佺▼瀹℃壒閫氳繃锛氬洖娆剧姸鎬佹洿鏂颁负瀹℃牳閫氳繃锛屽苟鍥炲啓鍥炴璁″垝宸插洖娆鹃噾棰濓紱
+ * 娴佺▼椹冲洖/鍙栨秷锛氫粎鏇存柊鍥炴鐘舵�侊紝涓嶅洖鍐欓噾棰濄��
+ *
+ * @author 瓒呯骇绠$悊鍛�
+ */
+@Component
+@Slf4j
+public class CrmReceivableStatusListener extends BpmProcessInstanceStatusEventListener {
+
+    @Resource
+    private CrmReceivableService receivableService;
+
+    @Override
+    protected String getProcessDefinitionKey() {
+        return CrmReceivableServiceImpl.BPM_PROCESS_DEFINITION_KEY;
+    }
+
+    @Override
+    protected void onEvent(BpmProcessInstanceStatusEvent event) {
+        Long receivableId;
+        try {
+            receivableId = Long.parseLong(event.getBusinessKey());
+        } catch (NumberFormatException | NullPointerException ex) {
+            log.warn("[onEvent][鍥炴瀹℃壒浜嬩欢鐨� businessKey({}) 涓嶆槸鍥炴缂栧彿锛屽拷鐣", event.getBusinessKey());
+            return;
+        }
+        receivableService.updateReceivableAuditStatus(receivableId, event.getStatus());
+    }
+
+}

--
Gitblit v1.9.3