From f412b5b671a91d7e01dac12507cad9df3648c524 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 09 十一月 2026 10:09:39 +0800
Subject: [PATCH] feat: 完善客户跟进与考勤异常处理

---
 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