From 1fcaf7919db7ec3350e9bf953c0d651d4d85fac2 Mon Sep 17 00:00:00 2001 From: liyong <18434998025@163.com> Date: 星期一, 23 六月 2025 11:45:48 +0800 Subject: [PATCH] 2025-06-23 回款登记导出+分页查询条件问题修复+【采购管理】-【来票登记】,合同金额列后面增加已开票金额、待开票金额两列 --- src/main/java/com/ruoyi/common/config/TomcatConfig.java | 20 ++++++ src/main/resources/mapper/sales/SalesLedgerMapper.xml | 4 src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java | 4 - src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java | 3 + src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 7 - src/main/resources/mapper/sales/ReceiptPaymentMapper.xml | 8 +- src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml | 25 ++++++++ src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java | 1 src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java | 21 +++++-- src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java | 3 src/main/java/com/ruoyi/sales/dto/ReceiptPaymentExeclDto.java | 57 +++++++++++++++++++ src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java | 7 +- src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java | 9 +++ 13 files changed, 144 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/ruoyi/common/config/TomcatConfig.java b/src/main/java/com/ruoyi/common/config/TomcatConfig.java new file mode 100644 index 0000000..7e7408a --- /dev/null +++ b/src/main/java/com/ruoyi/common/config/TomcatConfig.java @@ -0,0 +1,20 @@ +package com.ruoyi.common.config; + +import org.apache.catalina.connector.Connector; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +// 淇敼tomcat閰嶇疆锛屽get涓璠]鏀捐 +@Configuration +public class TomcatConfig { + @Bean + public TomcatServletWebServerFactory webServerFactory() { + TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); + factory.addConnectorCustomizers((Connector connector) -> { + connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}"); + connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}"); + }); + return factory; + } +} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java b/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java index dc2b362..62c128d 100644 --- a/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java +++ b/src/main/java/com/ruoyi/purchase/mapper/PurchaseLedgerMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.purchase.pojo.PurchaseLedger; import org.apache.ibatis.annotations.Param; @@ -16,4 +17,6 @@ public interface PurchaseLedgerMapper extends BaseMapper<PurchaseLedger> { int updateContractAmountById(@Param("id") Long id, @Param("totalTaxInclusiveAmount") BigDecimal totalTaxInclusiveAmount); + + IPage<PurchaseLedger> selectPurchaseLedgerListPage(IPage ipage, @Param("c") PurchaseLedger purchaseLedger); } diff --git a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java index a5e935b..5ee4125 100644 --- a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java +++ b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @@ -127,6 +128,14 @@ */ private String phoneNumber; + @TableField(exist = false) + @ApiModelProperty("鏉ョエ閲戦") + private String receiptPaymentAmount; + + @ApiModelProperty("鏈潵绁ㄩ噾棰�") + @TableField(exist = false) + private String unReceiptPaymentAmount; + } diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java index ffe7f4f..845b18d 100644 --- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java +++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java @@ -425,11 +425,8 @@ @Override public IPage<PurchaseLedger> selectPurchaseLedgerListPage(IPage ipage, PurchaseLedger purchaseLedger) { - LambdaQueryWrapper<PurchaseLedger> queryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.isNotBlank(purchaseLedger.getPurchaseContractNumber())) { - queryWrapper.like(PurchaseLedger::getPurchaseContractNumber, purchaseLedger.getPurchaseContractNumber()); - } - return purchaseLedgerMapper.selectPage(ipage, queryWrapper); + + return purchaseLedgerMapper.selectPurchaseLedgerListPage(ipage, purchaseLedger); } @Override diff --git a/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java b/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java index 104f3d0..ec9ce02 100644 --- a/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java +++ b/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java @@ -16,7 +16,9 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; @RestController @RequestMapping("/receiptPayment") @@ -102,14 +104,21 @@ @ApiModelProperty("瀵煎嚭鍥炴鐧昏") @PostMapping("/export") - public void export(HttpServletResponse response, ArrayList<Long> ids) { - //ids閫夋嫨灏辨槸鍏ㄥ鍑� -// if (ids == null || ids.size() == 0) { -// receiptPaymentService.exportPaymentList(response); -// } - receiptPaymentService.exportPaymentList(response, ids); + public void export(HttpServletResponse response, @RequestParam("ids") String idsStr) { + if (idsStr == null || idsStr.trim().isEmpty()) { + throw new RuntimeException("璇烽�夋嫨瑕佸鍑虹殑璁板綍"); + } + + ArrayList<Long> ids = (ArrayList<Long>) Arrays.stream(idsStr.split(",")) + .map(s -> s.replaceAll("[\\[\\]]", "").trim()) + .map(Long::valueOf) + .collect(Collectors.toList()); + + + receiptPaymentService.exportPaymentList(response, ids); } + /** * 寮�绁ㄥ彴璐﹁鎯� * @param id diff --git a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java index 92a5a1b..cc9b935 100644 --- a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java +++ b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentDto.java @@ -21,7 +21,6 @@ private String customerName; @ApiModelProperty(value = "鏌ヨ鏂囨湰") - @Excel(isExport = false) private String searchText; @ApiModelProperty(value = "閿�鍞彴璐ales_ledger") diff --git a/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentExeclDto.java b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentExeclDto.java new file mode 100644 index 0000000..2cda02b --- /dev/null +++ b/src/main/java/com/ruoyi/sales/dto/ReceiptPaymentExeclDto.java @@ -0,0 +1,57 @@ +package com.ruoyi.sales.dto; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.ruoyi.framework.aspectj.lang.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class ReceiptPaymentExeclDto { + + @ApiModelProperty(value = "閿�鍞悎鍚屽彿") + @Excel(name = "閿�鍞悎鍚屽彿",sort = 1) + private String salesContractNo; + + @ApiModelProperty(value = "瀹㈡埛鍚堝悓鍙�") + @Excel(name = "瀹㈡埛鍚堝悓鍙�",sort = 2) + + private String customerContractNo; + + @ApiModelProperty(value = "瀹㈡埛鍚嶇О") + @Excel(name = "瀹㈡埛鍚嶇О",sort = 3) + private String customerName; + + @ApiModelProperty(value = "浜у搧澶х被") + @Excel(name = "浜у搧澶х被",sort = 4) + private String productCategory; + + @ApiModelProperty(value = "椤圭洰鍚嶇О") + @Excel(name = "椤圭洰鍚嶇О",sort = 5) + private String projectName; + + @ApiModelProperty(value = "鍙戠エ鍙�") + @Excel(name = "鍙戠エ鍙�",sort = 6) + private String invoiceNo; + + @ApiModelProperty(value = "鍙戠エ閲戦") + @Excel(name = "鍙戠エ閲戦",sort = 7) + private BigDecimal invoiceTotal; + + @ApiModelProperty(value = "绋庣巼锛�%锛�") + @Excel(name = "绋庣巼锛�%锛�",sort = 8) + private BigDecimal taxRate; + + @ApiModelProperty(value = "鍥炴閲戦") + @Excel(name = "鍥炴閲戦",sort = 9) + private BigDecimal receiptPaymentAmountTotal; + + @ApiModelProperty(value = "寰呭洖娆鹃噾棰�") + @Excel(name = "寰呭洖娆鹃噾棰�",sort = 10) + private BigDecimal noReceiptAmount; + + + + +} diff --git a/src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java b/src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java index ac868fa..ac590cf 100644 --- a/src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java +++ b/src/main/java/com/ruoyi/sales/mapper/ReceiptPaymentMapper.java @@ -6,6 +6,7 @@ import com.ruoyi.sales.dto.CustomerInteractionDto; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.ReceiptPaymentDto; +import com.ruoyi.sales.dto.ReceiptPaymentExeclDto; import com.ruoyi.sales.pojo.ReceiptPayment; import org.apache.ibatis.annotations.Param; @@ -73,5 +74,5 @@ List<ReceiptPaymentDto> bindInvoiceNoRegListAll(); - List<ReceiptPaymentDto> bindInvoiceNoRegListByIds(ArrayList<Long> ids); + List<ReceiptPaymentExeclDto> bindInvoiceNoRegListByIds(List<Long> ids); } diff --git a/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java b/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java index 435a065..85a7a4c 100644 --- a/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java +++ b/src/main/java/com/ruoyi/sales/service/ReceiptPaymentService.java @@ -6,11 +6,9 @@ import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.ReceiptPaymentDto; import com.ruoyi.sales.pojo.ReceiptPayment; -import org.apache.ibatis.annotations.Param; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -101,5 +99,5 @@ /** * 閮ㄥ垎瀵煎嚭鍥炴鍒楄〃 */ - void exportPaymentList(HttpServletResponse response, ArrayList<Long> ids); + void exportPaymentList(HttpServletResponse response, List<Long> ids); } diff --git a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java index 01a72b8..8f04726 100644 --- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java +++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java @@ -8,6 +8,7 @@ import com.ruoyi.sales.dto.CustomerInteractionDto; import com.ruoyi.sales.dto.InvoiceLedgerDto; import com.ruoyi.sales.dto.ReceiptPaymentDto; +import com.ruoyi.sales.dto.ReceiptPaymentExeclDto; import com.ruoyi.sales.mapper.ReceiptPaymentMapper; import com.ruoyi.sales.mapper.SalesLedgerMapper; import com.ruoyi.sales.pojo.ReceiptPayment; @@ -264,9 +265,9 @@ } @Override - public void exportPaymentList(HttpServletResponse response, ArrayList<Long> ids) { - List<ReceiptPaymentDto> receiptPaymentDtoList = receiptPaymentMapper.bindInvoiceNoRegListByIds(ids); - ExcelUtil<ReceiptPaymentDto> util = new ExcelUtil<ReceiptPaymentDto>(ReceiptPaymentDto.class); + public void exportPaymentList(HttpServletResponse response, List<Long> ids) { + List<ReceiptPaymentExeclDto> receiptPaymentDtoList = receiptPaymentMapper.bindInvoiceNoRegListByIds(ids); + ExcelUtil<ReceiptPaymentExeclDto> util = new ExcelUtil<ReceiptPaymentExeclDto>(ReceiptPaymentExeclDto.class); util.exportExcel(response, receiptPaymentDtoList, "鍥炴鐧昏"); } } diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml index f007228..ddd0082 100644 --- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml +++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml @@ -9,4 +9,29 @@ SET contract_amount = #{totalTaxInclusiveAmount} WHERE id = #{id} </update> + <select id="selectPurchaseLedgerListPage" resultType="com.ruoyi.purchase.pojo.PurchaseLedger"> + select + pl.id, + pl.purchase_contract_number , + pl.sales_contract_no, + pl.supplier_name, + pl.project_name, + pl.contract_amount, + sum(pr.tickets_amount)as receipt_payment_amount, + pl.contract_amount-sum(pr.tickets_amount) AS unReceipt_payment_amount, + pl.entry_date, + pl.recorder_name + from purchase_ledger pl + left join product_record pr on pl.id = pr.purchase_ledger_id + <where> + <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''"> + pl.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%') + </if> + </where> + group by pl.id, pl.purchase_contract_number, pl.sales_contract_no, pl.supplier_name, + pl.project_name,pl.entry_date, + pl.recorder_name, + pl.contract_amount + + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml index 8c0fc74..0f2bc4c 100644 --- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml +++ b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml @@ -99,7 +99,7 @@ AND T3.customer_name LIKE CONCAT('%',#{c.customerName},'%') </if> <if test="c.customerContractNo != null and c.customerContractNo !=''"> - AND T1.customer_contract_no LIKE CONCAT('%',#{c.customerContractNo},'%') + AND T3.customer_contract_no LIKE CONCAT('%',#{c.customerContractNo},'%') </if> <if test="c.projectName != null and c.projectName !=''"> AND T3.project_name LIKE CONCAT('%',#{c.projectName},'%') @@ -210,10 +210,10 @@ AND T4.project_name LIKE CONCAT('%',#{params.projectName},'%') </if> <if test="params.customerContractNo != null and params.customerContractNo != '' "> - AND T1.customer_contract_no LIKE CONCAT('%',#{params.customerContractNo},'%') + AND T4.customer_contract_no LIKE CONCAT('%',#{params.customerContractNo},'%') </if> <if test="params.salesContractNo != null and params.salesContractNo != '' "> - AND T1.sales_contract_no LIKE CONCAT('%',#{params.salesContractNo},'%') + AND T4.sales_contract_no LIKE CONCAT('%',#{params.salesContractNo},'%') </if> </where> ORDER BY T1.receipt_payment_date DESC @@ -368,7 +368,7 @@ BY invoice_ledger_id ) T6 ON T1.id = T6.invoice_ledger_id </select> - <select id="bindInvoiceNoRegListByIds" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto"> + <select id="bindInvoiceNoRegListByIds" resultType="com.ruoyi.sales.dto.ReceiptPaymentExeclDto"> SELECT T1.id , T1.invoice_no , diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml index 96c297c..64d50b0 100644 --- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml +++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml @@ -67,8 +67,8 @@ <if test="salesLedgerDto.customerContractNo != null and salesLedgerDto.customerContractNo !='' "> T1.customer_contract_no LIKE CONCAT('%',#{salesLedgerDto.customerContractNo},'%') </if> - <if test="salesLedgerDto.sales_contract_no != null and salesLedgerDto.sales_contract_no != '' "> - T1.sales_contract_no LIKE CONCAT('%',#{salesLedgerDto.customerContractNo},'%') + <if test="salesLedgerDto.salesContractNo != null and salesLedgerDto.salesContractNo != '' "> + T1.sales_contract_no LIKE CONCAT('%',#{salesLedgerDto.salesContractNo},'%') </if> <if test="salesLedgerDto.projectName != null and salesLedgerDto.projectName != '' "> T1.project_name LIKE CONCAT('%',#{salesLedgerDto.projectName},'%') -- Gitblit v1.9.3