From befe7f238921f08091ba22f8a6c067e9aced28ba Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 04 十一月 2026 11:25:41 +0800
Subject: [PATCH] feat(库存): 库存列表与库存报表支持按采购订单号过滤

---
 src/main/resources/mapper/basic/CustomerMapper.xml |   52 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 31 insertions(+), 21 deletions(-)

diff --git a/src/main/resources/mapper/basic/CustomerMapper.xml b/src/main/resources/mapper/basic/CustomerMapper.xml
index ffaff4e..24082d2 100644
--- a/src/main/resources/mapper/basic/CustomerMapper.xml
+++ b/src/main/resources/mapper/basic/CustomerMapper.xml
@@ -9,9 +9,9 @@
     <select id="listPage" resultType="com.ruoyi.basic.vo.CustomerVo">
         select
         c.*,
-        u.user_name usage_user_name,
+        ifnull(u.nick_name, u.user_name) usage_user_name,
         (
-        select group_concat(u2.user_name separator ', ')
+        select group_concat(ifnull(u2.nick_name, u2.user_name) separator ', ')
         from customer_user cu
         left join sys_user u2 on cu.user_id = u2.user_id
         where cu.customer_id = c.id
@@ -45,8 +45,9 @@
             </if>
             <!-- 绉佹捣鏌ヨ锛歵ype = 0锛堢娴峰鎴凤級鎴栬�� type = 1锛堝叕娴峰鎴凤級涓斿凡琚垎閰嶏紝骞朵笖鏄嚜宸遍鐢ㄣ�佽嚜宸卞垱寤烘垨鑰呭叡浜粰鑷繁鐨勫鎴� -->
             <if test="c.type != null and c.type == 0">
-                and (
-                    (type = #{c.type} or (type = 1 and is_assigned = 1))
+                and (type = #{c.type} or (type = 1 and is_assigned = 1))
+                <!-- loginUserId 涓虹┖琛ㄧず瓒呯骇绠$悊鍛橈紝涓嶅彈棰嗙敤/鍏变韩鑼冨洿闄愬埗 -->
+                <if test="loginUserId != null">
                     and (
                         c.usage_user = #{loginUserId}
                         or c.create_user = #{loginUserId}
@@ -56,7 +57,7 @@
                             and cu.user_id = #{loginUserId}
                         )
                     )
-                )
+                </if>
             </if>
         </where>
         order by c.id desc
@@ -65,9 +66,9 @@
     <select id="list" resultType="com.ruoyi.basic.vo.CustomerVo">
         select
         c.*,
-        u.user_name usage_user_name,
+        ifnull(u.nick_name, u.user_name) usage_user_name,
         (
-        select group_concat(u2.user_name separator ', ')
+        select group_concat(ifnull(u2.nick_name, u2.user_name) separator ', ')
         from customer_user cu
         left join sys_user u2 on cu.user_id = u2.user_id
         where cu.customer_id = c.id
@@ -107,8 +108,9 @@
             </if>
             <!-- 绉佹捣鏌ヨ锛歵ype = 0锛堢娴峰鎴凤級鎴栬�� type = 1锛堝叕娴峰鎴凤級涓斿凡琚垎閰嶏紝骞朵笖鏄嚜宸遍鐢ㄣ�佽嚜宸卞垱寤烘垨鑰呭叡浜粰鑷繁鐨勫鎴� -->
             <if test="c.type != null and c.type == 0">
-                and (
-                    (type = #{c.type} or (type = 1 and is_assigned = 1))
+                and (type = #{c.type} or (type = 1 and is_assigned = 1))
+                <!-- loginUserId 涓虹┖琛ㄧず瓒呯骇绠$悊鍛橈紝涓嶅彈棰嗙敤/鍏变韩鑼冨洿闄愬埗 -->
+                <if test="loginUserId != null">
                     and (
                         c.usage_user = #{loginUserId}
                         or c.create_user = #{loginUserId}
@@ -118,7 +120,7 @@
                             and cu.user_id = #{loginUserId}
                         )
                     )
-                )
+                </if>
             </if>
         </where>
         order by c.id desc
@@ -142,7 +144,7 @@
             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
+        inner join customer c on T1.customer_id = c.id
         <where>
             <if test="customerName!=null and customerName!=''">
                 AND c.customer_name LIKE CONCAT('%', #{customerName}, '%')
@@ -161,16 +163,24 @@
                IFNULL(T3.returnAmount, 0) AS returnAmount
         from sales_ledger sl
         left join (
-            select
-                sl.id,
-                sum(ascc.collection_amount) as receiptPaymentAmount
-            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
-            LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
-            WHERE sor.record_type='13'
-              and sor.approval_status=1
-            group by  sl.id
+            -- 涓�绗旀敹娆惧彲鑳藉叧鑱斿寮犲嚭搴撳崟锛屽厛鎸夈�屾敹娆惧崟 + 閿�鍞彴璐︺�嶅幓閲嶅啀姹傚拰锛�
+            -- 鍚﹀垯 FIND_IN_SET 灞曞紑鍚庝細鎸夊嚭搴撳崟鏉℃暟鎶婂悓涓�绗旀敹娆鹃噸澶嶇疮鍔�
+            select x.id,
+                   sum(x.collection_amount) as receiptPaymentAmount
+            from (
+                select distinct
+                       ascc.id as collection_id,
+                       ascc.collection_amount,
+                       sl.id as 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
+                left join sales_ledger sl on s.sales_ledger_id = sl.id
+                WHERE sor.record_type='13'
+                  and sor.approval_status=1
+            ) x
+            where x.id is not null
+            group by x.id
         )T1 on T1.id = sl.id
         left join (
             select sl.id,

--
Gitblit v1.9.3