From 8407e277e156a55fee38e7bb7b8930ec16a15f0e Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期五, 24 四月 2026 09:08:47 +0800
Subject: [PATCH] 库存上下限预警,物料高低频摆放

---
 src/main/resources/mapper/LocDetlMapper.xml |   76 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 1 deletions(-)

diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 958190a..98a357d 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -545,7 +545,7 @@
 
 
         <if test="locNos != null and locNos.size > 0">
-            and b.loc_no not in
+            and (b.loc_no + '_' + a.matnr + '_' + a.batch) not in
             <foreach item="item" collection="locNos" index="index"  separator="," open="(" close=")">
                 #{item}
             </foreach>
@@ -763,5 +763,79 @@
         group by a.matnr,a.batch
         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
     </select>
+    <select id="getStockList" resultType="com.zy.asrs.entity.LocDetl">
+        select
+        *
+        from
+        (
+        SELECT
+        ROW_NUMBER() over (
+        order by m.matnr desc) as row,
+        m.matnr,
+        m.maktx ,
+        m.store_min boxType1,
+        m.store_max boxType2,
+        ISNULL(SUM(d.anfme),
+        0) AS anfme
+        FROM
+        man_mat m
+        LEFT JOIN asr_loc_detl d
+        ON
+        m.matnr = d.matnr
+        WHERE
+        m.store_min IS NOT NULL
+        OR m.store_max IS NOT NULL
+        <if test="matnr!=null and matnr!='' ">
+            and m.matnr like '%' + #{matnr} + '%'
+        </if>
+        <if test="maktx!=null and maktx!='' ">
+            and m.maktx like '%' + #{maktx} + '%'
+        </if>
+        GROUP BY
+        m.matnr,
+        m.maktx ,
+        m.store_min,
+        m.store_max
+        HAVING
+        ISNULL(SUM(d.anfme),0) &lt; m.store_min OR ISNULL(SUM(d.anfme),0) > m.store_max
+        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+    </select>
+    <select id="getStockListCount" resultType="java.lang.Long">
+        select
+        count(*)
+        from
+        (
+        SELECT
+        ROW_NUMBER() over (
+        order by m.matnr desc) as row,
+        m.matnr,
+        m.maktx ,
+        m.store_min boxType1,
+        m.store_max boxType2,
+        ISNULL(SUM(d.anfme),
+        0) AS anfme
+        FROM
+        man_mat m
+        LEFT JOIN asr_loc_detl d
+        ON
+        m.matnr = d.matnr
+        WHERE
+        m.store_min IS NOT NULL
+        OR m.store_max IS NOT NULL
+        <if test="matnr!=null and matnr!='' ">
+            and m.matnr like '%' + #{matnr} + '%'
+        </if>
+        <if test="maktx!=null and maktx!='' ">
+            and m.maktx like '%' + #{maktx} + '%'
+        </if>
+        GROUP BY
+        m.matnr,
+        m.maktx ,
+        m.store_min,
+        m.store_max
+        HAVING
+        ISNULL(SUM(d.anfme),0) &lt; m.store_min OR ISNULL(SUM(d.anfme),0) > m.store_max
+        ) t
+    </select>
 
 </mapper>

--
Gitblit v1.9.1