From b9ff70814c4f8fffb7646fb0ea72a2a60b4068b0 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期三, 14 十月 2026 14:11:09 +0800
Subject: [PATCH] fix: 更新出库金额计算逻辑,确保按销售明细的含税总额折算,避免因小数位数导致的应收差异
---
src/main/resources/mapper/basic/CustomerMapper.xml | 49 +++++++++++++++++++++++++++++++++----------------
1 files changed, 33 insertions(+), 16 deletions(-)
diff --git a/src/main/resources/mapper/basic/CustomerMapper.xml b/src/main/resources/mapper/basic/CustomerMapper.xml
index 404fdd9..86345e5 100644
--- a/src/main/resources/mapper/basic/CustomerMapper.xml
+++ b/src/main/resources/mapper/basic/CustomerMapper.xml
@@ -119,6 +119,15 @@
鍥犳鍗曟潯鍙拌处鐨勫簲鏀堕噾棰濇寜鍒嗚绠楋紝鍒嗕互涓嬬殑灏惧樊涓嶈鍏ャ��
娉ㄦ剰 蹇呴』鍏堟寜鍙拌处绠楀ソ搴旀敹銆佸啀鎸夊鎴锋眹鎬伙紙涓� customewTransactionsDetails 鍙e緞涓�鑷达級銆�
鑻ュ厛鎸夊鎴锋眹鎬诲啀鍙栨暣锛屽悇瀹跺彴璐︾殑灏惧樊浼氱疮鍔狅紝鍑虹幇銆屼富琛� 0.01銆佹槑缁嗗叏鏄� 0銆嶇殑瀵逛笉涓婇棶棰樸��
+ 娉ㄦ剰 鈽� 鍑哄簱閲戦鎸夈�岄攢鍞槑缁嗙殑鍚◣鎬婚銆嶆姌绠楋紝涓嶈兘鐩存帴鐢ㄣ�屽嚭搴撴暟閲� 脳 鍚◣鍗曚环銆嶏細
+ 鍑哄簱閲戦 = 危 ROUND( 璇ユ槑缁嗗惈绋庢�婚 脳 LEAST(1, 璇ユ槑缁嗗凡鍑哄簱閲� / 璇ユ槑缁嗛攢鍞暟閲�), 2 )
+ 鍘熷洜锛氶攢鍞暟閲忓彲鑳藉甫 3 浣嶅皬鏁帮紙濡� 47.328锛夛紝鑰屽嚭搴撴暟閲忔寜鎵嬪唽 搂5.6 鍙繚鐣� 2 浣嶏紙47.33锛夈��
+ 鐩存帴鐩镐箻寰� 47.33 脳 172 = 8140.76锛岃�屽紑绁ㄩ噾棰濇槸 47.328 脳 172 = 8140.42锛�
+ 鍑┖澶氬嚭 0.34 鐨勫簲鏀� 鈥斺�� 瀹炴祴榛戦緳姹熷寳鐩涘6鍏冲垎鍏徃 13370.02 宸插叏棰濆洖娆撅紝
+ 椤甸潰涓婂嵈浠嶆樉绀烘瑺 0.34銆�
+ 路 LEAST(1, ...) 鐢ㄦ潵灏侀《锛氬嚭搴撻噺 鈮� 閿�鍞暟閲忔椂鏈�澶氱畻鏁存潯鏄庣粏鐨勫紑绁ㄩ噾棰濓紝瓒呭彂涓嶅鍔犲簲鏀讹紱
+ 鍑哄簱閲� < 閿�鍞暟閲忥紙閮ㄥ垎鍙戣揣锛夋椂鎸夋瘮渚嬭銆�
+ 路 姣忔潯鏄庣粏鍗曠嫭 ROUND 鍒板垎锛岄伩鍏� 0.095 杩欑被鍒嗕互涓嬮浂澶寸疮绉垚搴旀敹銆�
娉ㄦ剰 鍑哄簱閲戦鎸夊彴璐� (sales_ledger.id) 鑱氬悎锛屽悓涓�鍙戣揣鍗曞鎵瑰彿鍑哄簱鏃朵笉浼氶噸澶嶈鏁般��
-->
<select id="customewTransactions" resultType="com.ruoyi.sales.vo.CustomerTransactionsVo">
@@ -158,14 +167,18 @@
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
+ sum(ROUND(slp.tax_inclusive_total_price
+ * LEAST(1, ship.out_qty / NULLIF(slp.quantity, 0)), 2)) as outboundAmount
+ FROM (
+ SELECT sor.record_id AS shipping_id, SUM(sor.stock_out_num) AS out_qty
+ FROM stock_out_record sor
+ WHERE sor.record_type='13' AND sor.approval_status=1
+ GROUP BY sor.record_id
+ ) ship
+ JOIN shipping_info s ON s.id = ship.shipping_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 slp.type = 1
group by sl.id
) T3 on T3.id = sl.id
left join (
@@ -227,14 +240,18 @@
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
+ sum(ROUND(slp.tax_inclusive_total_price
+ * LEAST(1, ship.out_qty / NULLIF(slp.quantity, 0)), 2)) as outboundAmount
+ FROM (
+ SELECT sor.record_id AS shipping_id, SUM(sor.stock_out_num) AS out_qty
+ FROM stock_out_record sor
+ WHERE sor.record_type='13' AND sor.approval_status=1
+ GROUP BY sor.record_id
+ ) ship
+ JOIN shipping_info s ON s.id = ship.shipping_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 slp.type = 1
group by sl.id
)T2 on T2.id = sl.id
left join (
--
Gitblit v1.9.3