From 9f3689ea26fd2158ffafd31a7932b1e685b0252b Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 11 二月 2026 11:59:46 +0800
Subject: [PATCH] fix: 一个合同中多个产品时,来票登记已来票金额、待来票金额统计有误
---
src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml | 50 +++++++++++++++++++++++++-------------------------
1 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
index 98c2675..f501849 100644
--- a/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -9,17 +9,18 @@
SET contract_amount = #{totalTaxInclusiveAmount}
WHERE id = #{id}
</update>
+
<select id="selectPurchaseLedgerListPage" resultType="com.ruoyi.purchase.dto.PurchaseLedgerDto">
- select
+ SELECT
pl.id,
- pl.purchase_contract_number ,
+ pl.purchase_contract_number,
pl.sales_contract_no,
pl.supplier_id,
pl.supplier_name,
pl.project_name,
pl.contract_amount,
- IFNULL(sum(tr.invoice_amount),0) as receipt_payment_amount,
- pl.contract_amount-IFNULL(sum(tr.invoice_amount),0) AS unReceipt_payment_amount,
+ IFNULL(tr_sum.total_invoice_amount, 0) AS receipt_payment_amount,
+ pl.contract_amount - IFNULL(tr_sum.total_invoice_amount, 0) AS unReceipt_payment_amount,
pl.entry_date,
pl.execution_date,
pl.recorder_id,
@@ -30,42 +31,41 @@
pl.approval_status,
pl.payment_method,
pl.remarks
- from purchase_ledger pl
- left join sales_ledger_product slp on slp.sales_ledger_id = pl.id and slp.type=2
- left join product_record pr on pl.id = pr.purchase_ledger_id
- left join ticket_registration tr on tr.id = pr.ticket_registration_id
- left join supplier_manage sm on pl.supplier_id = sm.id
+ FROM purchase_ledger pl
+ LEFT JOIN (
+ SELECT
+ purchase_ledger_id,
+ SUM(invoice_amount) AS total_invoice_amount
+ FROM ticket_registration
+ GROUP BY purchase_ledger_id
+ ) tr_sum ON pl.id = tr_sum.purchase_ledger_id
+ LEFT JOIN supplier_manage sm ON pl.supplier_id = sm.id
<where>
- 1 = 1
<if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''">
- and pl.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%')
+ AND pl.purchase_contract_number LIKE CONCAT('%', #{c.purchaseContractNumber}, '%')
</if>
<if test="c.approvalStatus != null and c.approvalStatus != ''">
- and pl.approval_status = #{c.approvalStatus}
+ AND pl.approval_status = #{c.approvalStatus}
</if>
<if test="c.supplierName != null and c.supplierName != ''">
- and pl.supplier_name like concat('%',#{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},'%')
+ 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},'%')
+ AND pl.project_name LIKE CONCAT('%', #{c.projectName}, '%')
</if>
- <if test="c.entryDateStart != null and c.entryDateStart != '' ">
- AND pl.entry_date >= DATE_FORMAT(#{c.entryDateStart},'%Y-%m-%d')
+ <if test="c.entryDateStart != null and c.entryDateStart != ''">
+ AND pl.entry_date >= #{c.entryDateStart}
</if>
- <if test="c.entryDateEnd != null and c.entryDateEnd != '' ">
- AND pl.entry_date <= DATE_FORMAT(#{c.entryDateEnd},'%Y-%m-%d')
+ <if test="c.entryDateEnd != null and c.entryDateEnd != ''">
+ AND pl.entry_date <= #{c.entryDateEnd}
</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
- order by pl.entry_date desc
-
+ ORDER BY pl.entry_date DESC
</select>
+
<select id="getPaymentRegistrationDtoById" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
SELECT
T1.id,
--
Gitblit v1.9.3