From 569655a9a25e87e9b5ea985df2e7a214e61d25ad Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期四, 17 九月 2026 15:42:54 +0800
Subject: [PATCH] feat: 增加销售台账id到客户往来回款记录

---
 src/main/resources/mapper/basic/CustomerMapper.xml |   71 ++++-------------------------------
 1 files changed, 8 insertions(+), 63 deletions(-)

diff --git a/src/main/resources/mapper/basic/CustomerMapper.xml b/src/main/resources/mapper/basic/CustomerMapper.xml
index ea1fab5..afda2fb 100644
--- a/src/main/resources/mapper/basic/CustomerMapper.xml
+++ b/src/main/resources/mapper/basic/CustomerMapper.xml
@@ -114,32 +114,9 @@
                c.customer_name,
                T1.contractAmounts,
                IFNULL(T2.receiptPaymentAmount, 0) AS receiptPaymentAmount,
-               IFNULL(T3.outboundAmount, 0) - IFNULL(T4.returnAmount, 0) AS receiptableAmount
+               IFNULL(T1.contractAmounts, 0) - IFNULL(T2.receiptPaymentAmount, 0) AS receiptableAmount
         from (select customer_id, sum(contract_amount) as contractAmounts from sales_ledger group by customer_id) T1
         left join (select customer_id, sum(collection_amount) as receiptPaymentAmount from account_sales_collection group by customer_id) T2 on T1.customer_id = T2.customer_id
-        left join (
-            SELECT
-                sl.customer_id,
-                sum(sor.stock_out_num * slp.tax_inclusive_unit_price) as outboundAmount
-            FROM stock_out_record sor
-            LEFT join shipping_info s on sor.record_id = s.id
-            LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
-            LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id
-            WHERE sor.record_type='13'
-                and sor.approval_status=1
-                and slp.type = 1
-            group by sl.customer_id
-        ) T3 on T3.customer_id=T1.customer_id
-        left join (
-            select
-                sl.customer_id,
-                sum(rm.refund_amount) as returnAmount
-            from return_management rm
-            left join shipping_info si on rm.shipping_id = si.id
-            left join sales_ledger sl on si.sales_ledger_id = sl.id
-            where rm.status=1
-            group by sl.customer_id
-        ) T4 on T4.customer_id=T1.customer_id
         left join customer c on T1.customer_id = c.id
         <where>
             <if test="customerName!=null and customerName!=''">
@@ -155,48 +132,16 @@
                sl.execution_date,
                sl.contract_amount,
                IFNULL(T1.receiptPaymentAmount, 0) AS receiptPaymentAmount,
-               IFNULL(T2.outboundAmount, 0) - IFNULL(T3.returnAmount, 0) AS receiptableAmount
+               IFNULL(sl.contract_amount, 0) - IFNULL(T1.receiptPaymentAmount, 0) AS receiptableAmount
         from sales_ledger sl
         left join (
             select
-                sl.id,
-                sum(t.collection_amount) as receiptPaymentAmount
-            from (
-                select
-                    ascc.collection_amount,
-                    s.sales_ledger_id
-                from account_sales_collection ascc
-                left join stock_out_record sor on FIND_IN_SET(sor.id, ascc.stock_out_record_ids) > 0
-                left join shipping_info s on sor.record_id = s.id
-                where sor.record_type='13'
-                  and sor.approval_status=1
-                group by ascc.id, s.sales_ledger_id
-            ) t
-            left join sales_ledger sl on t.sales_ledger_id = sl.id
-            group by sl.id
-        )T1 on T1.id = sl.id
-        left join (
-            SELECT
-                sl.id,
-                sum(sor.stock_out_num * slp.tax_inclusive_unit_price) as outboundAmount
-            FROM stock_out_record sor
-                     left join shipping_info s on sor.record_id = s.id
-                     LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
-                     LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id
-            WHERE sor.record_type='13'
-              and sor.approval_status=1
-              and slp.type = 1
-            group by  sl.id
-        )T2 on T2.id = sl.id
-        left join (
-            select sl.id,
-                   sum(rm.refund_amount) as returnAmount
-            from return_management rm
-                     left join shipping_info si on rm.shipping_id = si.id
-                     left join sales_ledger sl on si.sales_ledger_id = sl.id
-            where rm.status=1
-            group by sl.id
-        )T3 on T3.id = sl.id
+                ascc.sales_ledger_id,
+                sum(ascc.collection_amount) as receiptPaymentAmount
+            from account_sales_collection ascc
+            where ascc.sales_ledger_id is not null
+            group by ascc.sales_ledger_id
+        )T1 on T1.sales_ledger_id = sl.id
         where sl.customer_id = #{customerId}
         order by sl.id desc
     </select>

--
Gitblit v1.9.3