From 0b37ca51f1d90aedaad7fa883e7248cd2ebe7b45 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期一, 06 七月 2026 11:51:21 +0800
Subject: [PATCH] fix(database): 修正客户和供应商应收应付金额计算逻辑 公式:应收/应付 = 合同金额 - 回款/付款金额 - 退货金额
---
src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml | 32 ++++++++++++++++++++++++++++----
1 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml b/src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml
index 842e94c..4121614 100644
--- a/src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml
+++ b/src/main/resources/mapper/account/sales/AccountInvoiceApplicationMapper.xml
@@ -25,6 +25,7 @@
AND A.apply_date BETWEEN #{req.startDate} AND #{req.endDate}
</if>
</where>
+ order by A.id desc
</select>
<select id="getOutboundBatchesByCustomer"
resultType="com.ruoyi.account.bean.vo.sales.SalesOutboundVo">
@@ -64,10 +65,33 @@
<select id="existsByStockOutRecordId" resultType="java.lang.Boolean">
SELECT COUNT(*) > 0
FROM account_invoice_application
- WHERE status!=2
- <foreach collection="stockOutRecordIds" item="id" open="(" separator=" OR " close=")">
- FIND_IN_SET(#{id}, stock_out_record_ids)
- </foreach>
+ WHERE status != 2
+ AND (
+ <foreach collection="stockOutRecordIds" item="id" separator=" OR ">
+ FIND_IN_SET(#{id}, stock_out_record_ids) > 0
+ </foreach>
+ )
+ </select>
+ <select id="selectAccountInvoiceApplicationList"
+ resultType="com.ruoyi.account.bean.vo.sales.AccountInvoiceApplicationVo">
+ select
+ *
+ from (
+ select aia.*,
+ asi.id AS sales_invoice_id,
+ asi.status AS sales_invoice_status,
+ c.customer_name,
+ GROUP_CONCAT(sour.outbound_batches SEPARATOR ',') AS outboundBatches
+ from account_invoice_application aia
+ left join customer c on aia.customer_id = c.id
+ left join stock_out_record sour on FIND_IN_SET(sour.id, aia.stock_out_record_ids) > 0
+ left join account_sales_invoice asi on aia.id = asi.account_invoice_application_id
+ GROUP BY aia.id
+ )A
+ WHERE A.customer_id = #{customerId}
+ AND (COALESCE(A.sales_invoice_id,'') = '' OR A.sales_invoice_status = 1)
+ AND A.status = 1
+ order by A.id desc
</select>
</mapper>
--
Gitblit v1.9.3