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/service/invoice/CrmInvoiceService.java |   41 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 40 insertions(+), 1 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceService.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceService.java
index 490be7c..efaab4b 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceService.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceService.java
@@ -1,9 +1,14 @@
 package cn.iocoder.yudao.module.crm.service.invoice;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.crm.controller.admin.invoice.vo.invoice.CrmInvoiceEntryReqVO;
+import cn.iocoder.yudao.module.crm.controller.admin.invoice.vo.invoice.CrmInvoiceImportExcelVO;
+import cn.iocoder.yudao.module.crm.controller.admin.invoice.vo.invoice.CrmInvoiceImportRespVO;
 import cn.iocoder.yudao.module.crm.controller.admin.invoice.vo.invoice.CrmInvoicePageReqVO;
+import cn.iocoder.yudao.module.crm.controller.admin.invoice.vo.invoice.CrmInvoiceSaleOutRespVO;
 import cn.iocoder.yudao.module.crm.controller.admin.invoice.vo.invoice.CrmInvoiceSaveReqVO;
 import cn.iocoder.yudao.module.crm.dal.dataobject.invoice.CrmInvoiceDO;
+import cn.iocoder.yudao.module.crm.dal.dataobject.receivable.CrmReceivablePlanDO;
 import jakarta.validation.Valid;
 
 import java.math.BigDecimal;
@@ -29,11 +34,45 @@
     Long createInvoice(@Valid CrmInvoiceSaveReqVO createReqVO);
 
     /**
+     * 瀵煎叆寮�绁�
+     *
+     * @param importList 瀵煎叆鐨勫紑绁ㄥ垪琛�
+     * @return 瀵煎叆缁撴灉
+     */
+    CrmInvoiceImportRespVO importInvoiceList(List<CrmInvoiceImportExcelVO> importList);
+
+    /**
      * 鏇存柊寮�绁�
      *
      * @param updateReqVO 鏇存柊淇℃伅
      */
     void updateInvoice(@Valid CrmInvoiceSaveReqVO updateReqVO);
+
+    /**
+     * 寮�绁ㄧ敵璇峰綍鍏ュ彂绁�
+     *
+     * 浠呭鎵归�氳繃鐨勫紑绁ㄧ敵璇峰彲褰曞叆锛涘綍鍏ュ悗寮�绁ㄨ繘鍏ャ�屽凡褰曞叆銆嶇姸鎬侊紝鍙鍥炴鍗曞叧鑱斻��
+     *
+     * @param reqVO 褰曞叆淇℃伅
+     */
+    void entryInvoice(@Valid CrmInvoiceEntryReqVO reqVO);
+
+    /**
+     * 鑾峰緱寮�绁ㄥ彲閫夌殑閿�鍞嚭搴撳崟
+     *
+     * @param saleOrderId      閿�鍞鍗曠紪鍙�
+     * @param excludeInvoiceId 闇�鎺掗櫎鐨勫紑绁ㄧ紪鍙凤紝鍙负绌�
+     * @return 鍑哄簱鍗曞垪琛紙鍚凡寮�绁ㄣ�佸墿浣欏彲寮�绁ㄩ噾棰濓級
+     */
+    List<CrmInvoiceSaleOutRespVO> getSaleOutListForInvoice(Long saleOrderId, Long excludeInvoiceId);
+
+    /**
+     * 鑾峰緱寮�绁ㄥ崟瀵瑰簲鐨勬敹娆捐妭鐐�
+     *
+     * @param invoiceId 寮�绁ㄧ紪鍙�
+     * @return 鏀舵鑺傜偣鍒楄〃
+     */
+    List<CrmReceivablePlanDO> getPaymentNodeListByInvoiceId(Long invoiceId);
 
     /**
      * 鏇存柊寮�绁ㄦ祦绋嬪鎵圭粨鏋�
@@ -121,7 +160,7 @@
     List<CrmInvoiceDO> getInvoiceListByContractIdAndStatus(Long contractId, Collection<Integer> auditStatuses);
 
     /**
-     * 鑾峰緱鍚堝悓宸插紑绁ㄩ噾棰� Map锛堜粎瀹℃壒閫氳繃锛�
+     * 鑾峰緱鍚堝悓宸插紑绁ㄩ噾棰� Map锛堝鎵归�氳繃 + 瀹℃壒涓紝涓庡紑绁ㄩ槻瓒呮牎楠屽彛寰勪竴鑷达級
      *
      * @param contractIds 鍚堝悓缂栧彿
      * @return 寮�绁ㄩ噾棰� Map

--
Gitblit v1.9.3