From d39e4f7d839167c16425086dfa2f8747bccfdff9 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 05 十一月 2026 17:39:01 +0800
Subject: [PATCH] feat: 打通销售采购财务闭环并完成累计业务优化
---
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java | 39 +++++++++++++++++++++++++++++++++++++++
1 files changed, 39 insertions(+), 0 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 303678d..b6d1038 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
@@ -34,6 +34,27 @@
return selectOne(CrmInvoiceDO::getNo, no);
}
+ /**
+ * 娓呯┖鍙戠エ褰曞叆浜恒�佸綍鍏ユ椂闂达紙updateById 榛樿蹇界暐 null 瀛楁锛屾竻绌洪渶鏄惧紡 update锛�
+ */
+ default void clearEntryInfo(Long id) {
+ update(null, new com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper<CrmInvoiceDO>()
+ .eq(CrmInvoiceDO::getId, id)
+ .set(CrmInvoiceDO::getEntryStatus, 0)
+ .set(CrmInvoiceDO::getEntryUserId, null)
+ .set(CrmInvoiceDO::getEntryTime, null));
+ }
+
+ /**
+ * 鎸夊彂绁ㄥ彿鐮佹煡璇㈡湭琚垹闄ょ殑寮�绁紙鍙戠エ鍙风爜鍏佽鍚屼竴寮犲彂绁ㄥ娆″紑绁ㄦ椂锛岃繑鍥炵涓�鏉★級
+ */
+ default CrmInvoiceDO selectByInvoiceNo(String invoiceNo) {
+ return selectOne(new LambdaQueryWrapperX<CrmInvoiceDO>()
+ .eq(CrmInvoiceDO::getInvoiceNo, invoiceNo)
+ .orderByAsc(CrmInvoiceDO::getId)
+ .last("LIMIT 1"));
+ }
+
default PageResult<CrmInvoiceDO> selectPageByCustomerId(CrmInvoicePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CrmInvoiceDO>()
.eq(CrmInvoiceDO::getCustomerId, reqVO.getCustomerId()) // 蹇呴』浼犻��
@@ -94,6 +115,24 @@
}
/**
+ * 鏌ヨ鎸囧畾閿�鍞鍗曚笅銆佹寚瀹氬鎵圭姸鎬佺殑寮�绁�
+ */
+ default List<CrmInvoiceDO> selectListBySaleOrderIdAndStatus(Long saleOrderId, Collection<Integer> auditStatuses) {
+ return selectList(new LambdaQueryWrapperX<CrmInvoiceDO>()
+ .eq(CrmInvoiceDO::getSaleOrderId, saleOrderId)
+ .in(CrmInvoiceDO::getAuditStatus, auditStatuses));
+ }
+
+ /**
+ * 鏌ヨ鎸囧畾閿�鍞嚭搴撳崟涓嬨�佹寚瀹氬鎵圭姸鎬佺殑寮�绁�
+ */
+ default List<CrmInvoiceDO> selectListBySaleOutIdAndStatus(Long saleOutId, Collection<Integer> auditStatuses) {
+ return selectList(new LambdaQueryWrapperX<CrmInvoiceDO>()
+ .eq(CrmInvoiceDO::getSaleOutId, saleOutId)
+ .in(CrmInvoiceDO::getAuditStatus, auditStatuses));
+ }
+
+ /**
* 鏌ヨ鍚堝悓涓嬬殑鍏ㄩ儴寮�绁紙瀵煎叆鍘婚噸鐢級
*/
default List<CrmInvoiceDO> selectListByContractId(Long contractId) {
--
Gitblit v1.9.3