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