From fe1845ba21d8e9908077ab0bb5a9a8137942a50b Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期二, 13 五月 2025 16:53:15 +0800
Subject: [PATCH] 开票台账前后端联调

---
 src/main/java/com/ruoyi/sales/excel/InvoiceLedgerExcelDto.java           |   13 +++-
 src/main/java/com/ruoyi/sales/pojo/InvoiceLedger.java                    |    1 
 src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java                  |    3 +
 src/main/resources/mapper/sales/InvoiceLedgerMapper.xml                  |   49 +++++++++++-----
 src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java |   29 +++++++--
 src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java    |   23 ++++++-
 src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java          |   10 +++
 7 files changed, 97 insertions(+), 31 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java b/src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java
index a42414b..0b101b9 100644
--- a/src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/InvoiceLedgerController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.sales.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.SupplierManageDto;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.sales.dto.InvoiceLedgerDto;
 import com.ruoyi.sales.service.InvoiceLedgerService;
@@ -76,14 +77,14 @@
     }
 
     /**
-     * 闄勪欢涓嬭浇
+     * 寮�绁ㄥ彴璐﹀鍑�
      * @param response
      * @param invoiceLedgerDto
      * @return
      */
-    @GetMapping("/downloadFile")
-    public void invoiceLedgerDownloadFile(HttpServletResponse response, InvoiceLedgerDto invoiceLedgerDto) {
-        invoiceLedgerService.invoiceLedgerDownload(response, invoiceLedgerDto);
+    @PostMapping("/export")
+    public void invoiceLedgerExport(HttpServletResponse response, InvoiceLedgerDto invoiceLedgerDto) {
+        invoiceLedgerService.invoiceLedgerExport(response, invoiceLedgerDto);
     }
 
     /**
@@ -96,4 +97,18 @@
         return AjaxResult.success(invoiceLedgerService.invoiceLedgerDetail(id));
     }
 
+    /**
+     * 鏂囦欢鎻愪氦
+     * @param invoiceLedgerDto
+     * @return
+     */
+    @PostMapping("/commitFile")
+    public AjaxResult invoiceLedgerCommitFile(@RequestBody InvoiceLedgerDto invoiceLedgerDto) {
+        try {
+            invoiceLedgerService.invoiceLedgerCommitFile(invoiceLedgerDto);
+            return AjaxResult.success();
+        }catch (Exception e) {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
 }
diff --git a/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
index 247085c..b8d9318 100644
--- a/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/InvoiceLedgerDto.java
@@ -22,4 +22,7 @@
 
     @ApiModelProperty(value = "涓氬姟鍛�")
     private String salesman;
+
+    @ApiModelProperty(value = "鍙戠エ鏂囦欢鍚�")
+    private String invoiceFileName;
 }
diff --git a/src/main/java/com/ruoyi/sales/excel/InvoiceLedgerExcelDto.java b/src/main/java/com/ruoyi/sales/excel/InvoiceLedgerExcelDto.java
index a960b28..aee8370 100644
--- a/src/main/java/com/ruoyi/sales/excel/InvoiceLedgerExcelDto.java
+++ b/src/main/java/com/ruoyi/sales/excel/InvoiceLedgerExcelDto.java
@@ -11,6 +11,7 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -19,6 +20,9 @@
 
     @Excel(name = "閿�鍞悎鍚屽彿")
     private String salesContractNo;
+
+    @Excel(name = "")
+    private String customerContractNo;
 
     @Excel(name = "瀹㈡埛鍚嶇О")
     private String customerName;
@@ -36,7 +40,10 @@
     private String invoicePerson;
 
     @Excel(name =  "寮�绁ㄦ椂闂�")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime invoiceDate;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate invoiceDate;
+
+    @Excel(name =  "鍙戠エ")
+    private String invoiceFileName;
 }
diff --git a/src/main/java/com/ruoyi/sales/pojo/InvoiceLedger.java b/src/main/java/com/ruoyi/sales/pojo/InvoiceLedger.java
index 20faaab..9f4c0d8 100644
--- a/src/main/java/com/ruoyi/sales/pojo/InvoiceLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/InvoiceLedger.java
@@ -10,7 +10,6 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
-import java.text.Format;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 
diff --git a/src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java b/src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java
index 802900a..079138e 100644
--- a/src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java
+++ b/src/main/java/com/ruoyi/sales/service/InvoiceLedgerService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.SupplierManageDto;
 import com.ruoyi.common.vo.FileVo;
 import com.ruoyi.sales.dto.InvoiceLedgerDto;
 import com.ruoyi.sales.pojo.InvoiceLedgerFile;
@@ -54,7 +55,7 @@
      * @param invoiceLedgerDto
      * @return
      */
-    void invoiceLedgerDownload(HttpServletResponse response ,InvoiceLedgerDto invoiceLedgerDto);
+    void invoiceLedgerExport(HttpServletResponse response ,InvoiceLedgerDto invoiceLedgerDto);
 
     /**
      * 寮�绁ㄥ彴璐﹁鎯�
@@ -62,4 +63,11 @@
      * @return
      */
     InvoiceLedgerDto invoiceLedgerDetail(Integer id);
+
+    /**
+     * 闄勪欢鎻愪氦
+     * @param invoiceLedgerDto
+     * @return
+     */
+    void invoiceLedgerCommitFile(InvoiceLedgerDto invoiceLedgerDto);
 }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
index 6582757..248902d 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java
@@ -6,10 +6,6 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.dto.SupplierManageDto;
-import com.ruoyi.basic.excel.SupplierManageExcelDto;
-import com.ruoyi.common.constant.Constants;
-import com.ruoyi.common.utils.file.FileUploadUtils;
-import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.vo.FileVo;
 import com.ruoyi.sales.dto.InvoiceLedgerDto;
@@ -30,7 +26,6 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
 import java.util.stream.Collectors;
@@ -147,7 +142,7 @@
      * @return
      */
     @Override
-    public void invoiceLedgerDownload(HttpServletResponse response, InvoiceLedgerDto invoiceLedgerDto) {
+    public void invoiceLedgerExport(HttpServletResponse response, InvoiceLedgerDto invoiceLedgerDto) {
         List<InvoiceLedgerDto> invoiceLedgerDtoList = invoiceLedgerMapper.invoiceLedgerList(invoiceLedgerDto);
         List<InvoiceLedgerExcelDto> invoiceLedgerExcelDtoList = invoiceLedgerDtoList.stream().map(item -> {
             InvoiceLedgerExcelDto invoiceLedgerExcelDto = new InvoiceLedgerExcelDto();
@@ -182,4 +177,26 @@
         return invoiceLedgerDto;
     }
 
+    /**
+     * 闄勪欢鎻愪氦
+     * @param invoiceLedgerDto
+     * @return
+     */
+    @Override
+    public void invoiceLedgerCommitFile(InvoiceLedgerDto invoiceLedgerDto) {
+        if(null == invoiceLedgerDto.getId()){
+            throw new RuntimeException("缂哄皯鍙戠エ鍙拌处涓婚敭");
+        }
+        if(CollectionUtils.isEmpty(invoiceLedgerDto.getFileList())){
+            throw new RuntimeException("缂哄皯鏂囦欢淇℃伅");
+        }
+        List<FileVo> fileList = invoiceLedgerDto.getFileList();
+        fileList.forEach(fileVo -> {
+            InvoiceLedgerFile invoiceLedgerFile = new InvoiceLedgerFile();
+            BeanUtils.copyProperties(fileVo, invoiceLedgerFile);
+            invoiceLedgerFile.setInvoiceLedgerId(invoiceLedgerDto.getId());
+            invoiceLedgerFileMapper.insert(invoiceLedgerFile);
+        });
+    }
+
 }
diff --git a/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml b/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
index 093b5c4..6d38405 100644
--- a/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
@@ -21,10 +21,17 @@
             T1.tenant_id         ,
             T2.customer_name,
             T3.customer_contract_no,
-            T3.salesman
+            T3.salesman,
+            T4.invoiceFileName
         FROM invoice_ledger T1
         LEFT JOIN customer T2 ON T1.customer_id = T2.id
         LEFT JOIN sales_ledger T3 ON T1.sales_ledger_id = T3.id
+        LEFT JOIN (
+        	SELECT
+        	    invoice_ledger_id,
+        	    GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
+        	FROM invoice_ledger_file GROUP BY invoice_ledger_id
+        ) T4 ON T4.invoice_ledger_id = T1.id
         <where>
             <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != ''">
                 AND (
@@ -40,23 +47,33 @@
 
     <select id="invoiceLedgerList" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
         SELECT
-        T1.id                ,
-        T1.sales_ledger_id   ,
-        T1.sales_contract_no ,
-        T1.customer_id       ,
-        T1.invoice_no        ,
-        T1.invoice_amount    ,
-        T1.tax_rate          ,
-        T1.invoice_person    ,
-        T1.invoice_date      ,
-        T1.create_time       ,
-        T1.create_user       ,
-        T1.update_time       ,
-        T1.update_user       ,
-        T1.tenant_id         ,
-        T2.customer_name
+            T1.id                ,
+            T1.sales_ledger_id   ,
+            T1.sales_contract_no ,
+            T1.customer_id       ,
+            T1.invoice_no        ,
+            T1.invoice_amount    ,
+            T1.tax_rate          ,
+            T1.invoice_person    ,
+            T1.invoice_date      ,
+            T1.create_time       ,
+            T1.create_user       ,
+            T1.update_time       ,
+            T1.update_user       ,
+            T1.tenant_id         ,
+            T2.customer_name,
+            T3.salesman,
+            T3.customer_contract_no,
+            T4.invoiceFileName
         FROM invoice_ledger T1
         LEFT JOIN customer T2 ON T1.customer_id = T2.id
+        LEFT JOIN sales_ledger T3 ON T1.sales_ledger_id = T3.id
+        LEFT JOIN (
+        SELECT
+        invoice_ledger_id,
+        GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
+        FROM invoice_ledger_file GROUP BY invoice_ledger_id
+        ) T4 ON T4.invoice_ledger_id = T1.id
         <where>
             <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != ''">
                 AND (

--
Gitblit v1.9.3