From 79a570ae5f497e30337e7dd002450072e1b21cc2 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 16 一月 2026 16:19:47 +0800
Subject: [PATCH] fix: 处理空值计算,确保待来票金额与未来票金额一致

---
 src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index 3fed962..c660e2c 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -17,16 +17,32 @@
         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,
+        COALESCE(SUM(pr.tickets_amount), 0) AS receipt_payment_amount,
+        pl.contract_amount - COALESCE(SUM(pr.tickets_amount), 0) AS unReceipt_payment_amount,
         pl.entry_date,
         pl.recorder_name,
         pl.payment_method
         from purchase_ledger pl
         left join product_record pr on pl.id = pr.purchase_ledger_id
         <where>
+            1 = 1
             <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
-                pl.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%')
+               and pl.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%')
+            </if>
+            <if test="c.supplierName != null and c.supplierName != ''">
+                and pl.supplier_name like concat('%',#{c.supplierName},'%')
+            </if>
+            <if test="c.salesContractNo != null and c.salesContractNo != ''">
+                and pl.sales_contract_no like concat('%',#{c.salesContractNo},'%')
+            </if>
+            <if test="c.projectName != null and c.projectName != ''">
+                and pl.project_name like concat('%',#{c.projectName},'%')
+            </if>
+            <if test="c.entryDateStart != null and c.entryDateStart != '' ">
+                AND pl.entry_date &gt;= DATE_FORMAT(#{c.entryDateStart},'%Y-%m-%d')
+            </if>
+            <if test="c.entryDateEnd != null and c.entryDateEnd != '' ">
+                AND  pl.entry_date &lt;= DATE_FORMAT(#{c.entryDateEnd},'%Y-%m-%d')
             </if>
         </where>
         group by pl.id, pl.purchase_contract_number, pl.sales_contract_no, pl.supplier_name,

--
Gitblit v1.9.3