From 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 07 十一月 2026 08:50:53 +0800
Subject: [PATCH] feat: 完善质检、生产、销售、财务与人事模块并接入审批流程
---
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/quotation/listener/CrmSaleQuotationStatusListener.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/quotation/listener/CrmSaleQuotationStatusListener.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/quotation/listener/CrmSaleQuotationStatusListener.java
new file mode 100644
index 0000000..5688fb0
--- /dev/null
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/quotation/listener/CrmSaleQuotationStatusListener.java
@@ -0,0 +1,52 @@
+package cn.iocoder.yudao.module.crm.service.quotation.listener;
+
+import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent;
+import cn.iocoder.yudao.module.crm.dal.dataobject.quotation.CrmSaleQuotationDO;
+import cn.iocoder.yudao.module.crm.dal.mysql.quotation.CrmSaleQuotationMapper;
+import cn.iocoder.yudao.module.crm.enums.quotation.CrmSaleQuotationStatusEnum;
+import cn.iocoder.yudao.module.crm.service.quotation.CrmSaleQuotationService;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationListener;
+import org.springframework.stereotype.Component;
+
+/**
+ * 閿�鍞姤浠峰鎵圭殑缁撴灉鐩戝惉鍣�
+ *
+ * 閫氳繃 businessKey锛堟姤浠峰崟 ID锛夊尮閰嶏紝鑰屼笉鏄浐瀹氱殑娴佺▼瀹氫箟 Key锛�
+ * 杩欐牱鍙互鏀寔銆岄攢鍞姤浠峰鎵广�嶅垎绫讳笅浠绘剰 Key 鐨勬祦绋嬫ā鍨嬨��
+ */
+@Component
+@Slf4j
+public class CrmSaleQuotationStatusListener implements ApplicationListener<BpmProcessInstanceStatusEvent> {
+
+ @Resource
+ private CrmSaleQuotationService saleQuotationService;
+ @Resource
+ private CrmSaleQuotationMapper saleQuotationMapper;
+
+ @Override
+ public void onApplicationEvent(BpmProcessInstanceStatusEvent event) {
+ // 閫氳繃 businessKey 鏌ヨ鎶ヤ环鍗�
+ Long quotationId;
+ try {
+ quotationId = Long.parseLong(event.getBusinessKey());
+ } catch (NumberFormatException e) {
+ return; // businessKey 涓嶆槸鏁板瓧锛屽拷鐣�
+ }
+
+ CrmSaleQuotationDO quotation = saleQuotationMapper.selectById(quotationId);
+ if (quotation == null) {
+ return; // 涓嶆槸鎶ヤ环鍗曪紝蹇界暐
+ }
+ // 鍙湁瀹℃壒涓姸鎬佺殑鎶ヤ环鍗曟墠澶勭悊
+ if (!CrmSaleQuotationStatusEnum.PROCESS.getStatus().equals(quotation.getStatus())) {
+ log.warn("[onApplicationEvent] 鎶ヤ环鍗�({}) 涓嶅浜庡鎵逛腑鐘舵�侊紝褰撳墠鐘舵��: {}", quotationId, quotation.getStatus());
+ return;
+ }
+
+ log.info("[onApplicationEvent] 鎶ヤ环鍗�({}) 瀹℃壒鐘舵�佹洿鏂�: {}", quotationId, event.getStatus());
+ saleQuotationService.updateSaleQuotationAuditStatus(quotationId, event.getStatus());
+ }
+
+}
--
Gitblit v1.9.3