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