From 317c0053ddb123512f997ef5ada5e30dec60830a Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 03 八月 2026 14:21:54 +0800
Subject: [PATCH] 删除合同的时候同步更新报价的状态

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
index 6518016..88705a1 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
@@ -19,6 +19,8 @@
 import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractConfigDO;
 import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO;
 import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractProductDO;
+import cn.iocoder.yudao.module.crm.dal.dataobject.quotation.CrmSaleQuotationDO;
+import cn.iocoder.yudao.module.crm.dal.dataobject.quotation.CrmSaleQuotationProductDO;
 import cn.iocoder.yudao.module.crm.dal.mysql.contract.CrmContractMapper;
 import cn.iocoder.yudao.module.crm.dal.mysql.contract.CrmContractProductMapper;
 import cn.iocoder.yudao.module.crm.dal.redis.no.CrmNoRedisDAO;
@@ -28,10 +30,12 @@
 import cn.iocoder.yudao.module.crm.framework.permission.core.annotations.CrmPermission;
 import cn.iocoder.yudao.module.crm.service.business.CrmBusinessService;
 import cn.iocoder.yudao.module.crm.service.contact.CrmContactService;
+import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi;
 import cn.iocoder.yudao.module.crm.service.customer.CrmCustomerService;
 import cn.iocoder.yudao.module.crm.service.permission.CrmPermissionService;
 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionCreateReqBO;
 import cn.iocoder.yudao.module.crm.service.permission.bo.CrmPermissionTransferReqBO;
+import cn.iocoder.yudao.module.crm.service.quotation.CrmSaleQuotationService;
 import cn.iocoder.yudao.module.crm.service.receivable.CrmReceivableService;
 import cn.iocoder.yudao.module.erp.api.sale.ErpSaleOrderApi;
 import cn.iocoder.yudao.module.erp.api.sale.dto.ErpSaleOrderCreateReqDTO;
@@ -100,6 +104,8 @@
     @Resource
     private CrmCustomerService customerService;
     @Resource
+    private CrmCustomerApi customerApi;
+    @Resource
     private CrmBusinessService businessService;
     @Resource
     private CrmContactService contactService;
@@ -120,6 +126,9 @@
     private ErpSaleOrderApi saleOrderApi;
     @Resource
     private MdmItemApi mdmItemApi;
+    @Resource
+    @Lazy // 寤惰繜鍔犺浇锛岄伩鍏嶅惊鐜緷璧栵紙quotation 鍐呴儴寮曠敤浜� contractService锛�
+    private CrmSaleQuotationService crmSaleQuotationService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -271,6 +280,11 @@
 
         // 2.1 鍒犻櫎鍚堝悓
         contractMapper.deleteById(id);
+        // 2.2 鍒犻櫎鍚堝悓鏃讹紝瑙i櫎鍏宠仈鐨勬姤浠峰崟寮曠敤
+        CrmSaleQuotationDO quotation = crmSaleQuotationService.getByContractId(id);
+        if (quotation != null) {
+            crmSaleQuotationService.clearContractReference(quotation.getId());
+        }
         // 2.2 鍒犻櫎鏁版嵁鏉冮檺
         crmPermissionService.deletePermission(CrmBizTypeEnum.CRM_CONTRACT.getType(), id);
 
@@ -468,8 +482,10 @@
                 return PageResult.empty();
             }
         }
-        // 2. 鏌ヨ鍒嗛〉
-        return contractMapper.selectPage(pageReqVO, userId, config);
+        // 2. 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃
+        List<Long> permittedCustomerIds = customerApi.getPermittedCustomerIds();
+        // 3. 鏌ヨ鍒嗛〉
+        return contractMapper.selectPage(pageReqVO, userId, config, permittedCustomerIds);
     }
 
     @Override

--
Gitblit v1.9.3