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