From 401bdd0cfb4d7ce7344e34b3897ff14e303188fb Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 15 十月 2026 14:02:52 +0800
Subject: [PATCH] feat(crm): 新增合同Word文档下载功能

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java
index a5a814f..303678d 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java
@@ -38,6 +38,7 @@
         return selectPage(reqVO, new LambdaQueryWrapperX<CrmInvoiceDO>()
                 .eq(CrmInvoiceDO::getCustomerId, reqVO.getCustomerId()) // 蹇呴』浼犻��
                 .eqIfPresent(CrmInvoiceDO::getNo, reqVO.getNo())
+                .likeIfPresent(CrmInvoiceDO::getInvoiceNo, reqVO.getInvoiceNo())
                 .eqIfPresent(CrmInvoiceDO::getContractId, reqVO.getContractId())
                 .orderByDesc(CrmInvoiceDO::getId));
     }
@@ -50,6 +51,7 @@
         // 鎷兼帴鑷韩鐨勬煡璇㈡潯浠�
         query.selectAll(CrmInvoiceDO.class)
                 .eqIfPresent(CrmInvoiceDO::getNo, pageReqVO.getNo())
+                .likeIfPresent(CrmInvoiceDO::getInvoiceNo, pageReqVO.getInvoiceNo())
                 .eqIfPresent(CrmInvoiceDO::getContractId, pageReqVO.getContractId())
                 .eqIfPresent(CrmInvoiceDO::getAuditStatus, pageReqVO.getAuditStatus())
                 .orderByDesc(CrmInvoiceDO::getId);
@@ -76,10 +78,11 @@
         if (CollUtil.isEmpty(contractIds)) {
             return Collections.emptyMap();
         }
-        // SQL sum 鏌ヨ
+        // SQL sum 鏌ヨ锛堝鎵归�氳繃 + 瀹℃壒涓紝涓庡紑绁ㄩ槻瓒呮牎楠屽彛寰勪竴鑷达級
         List<Map<String, Object>> result = selectMaps(new QueryWrapper<CrmInvoiceDO>()
                 .select("contract_id, SUM(price) AS total_price")
-                .eq("audit_status", CrmAuditStatusEnum.APPROVE.getStatus())
+                .in("audit_status", CrmAuditStatusEnum.APPROVE.getStatus(),
+                        CrmAuditStatusEnum.PROCESS.getStatus())
                 .groupBy("contract_id")
                 .in("contract_id", contractIds));
         // 鑾峰緱閲戦
@@ -90,4 +93,13 @@
         return selectCount(CrmInvoiceDO::getContractId, contractId);
     }
 
+    /**
+     * 鏌ヨ鍚堝悓涓嬬殑鍏ㄩ儴寮�绁紙瀵煎叆鍘婚噸鐢級
+     */
+    default List<CrmInvoiceDO> selectListByContractId(Long contractId) {
+        return selectList(new LambdaQueryWrapperX<CrmInvoiceDO>()
+                .eq(CrmInvoiceDO::getContractId, contractId)
+                .orderByAsc(CrmInvoiceDO::getId));
+    }
+
 }

--
Gitblit v1.9.3