From dc9228656b202a8f1ec7720d78eb0421a94a28c9 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 23 十月 2025 16:20:14 +0800
Subject: [PATCH] 聚乳酸明细增加丙交酯含量,%指标

---
 src/main/resources/mapper/LocDetlMapper.xml |  228 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 208 insertions(+), 20 deletions(-)

diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 82b0450..58f259c 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -49,6 +49,22 @@
 
     </resultMap>
 
+    <resultMap id="WarningResultMap" type="com.zy.asrs.entity.LocDetlWarningDTO">
+        <result column="loc_no" property="locNo" />
+        <result column="matnr" property="matnr" />
+        <result column="maktx" property="maktx" />
+        <result column="create_time" property="createTime" />
+        <result column="specs" property="specs" />
+        <result column="inventory_max" property="inventoryMax" />
+        <result column="inventory_min" property="inventoryMin" />
+        <result column="inventory_age_max" property="inventoryAgeMax" />
+        <result column="count_anfme" property="countAnfme" />
+        <result column="diff_time" property="diffTime" />
+        <result column="pageNumber" property="pageNumber" />
+        <result column="pageSize" property="pageSize" />
+        <result column="row" property="row" />
+    </resultMap>
+
     <sql id="batchSeq">
         <choose>
             <when test="batch != null">
@@ -105,6 +121,9 @@
         </if>
         <if test="crnNo!=null and crnNo!='' ">
             and b.crn_no=#{crnNo}
+        </if>
+        <if test="owner!=null and owner!='' ">
+            and a.owner=#{owner}
         </if>
     </sql>
 
@@ -219,7 +238,7 @@
         ROW_NUMBER() over (order by sum(a.anfme) desc) as row
         , a.matnr
         , sum(a.anfme) as anfme
-        from asr_loc_detl a
+        from asr_loc_detl_all a
         where 1=1
         group by a.matnr
     </select>
@@ -397,7 +416,7 @@
 
     <select id="searchByLike" resultMap="BaseResultMap">
         select *
-        from asr_loc_detl
+        from asr_loc_detl_merge
         where
         1 = 1
         <if test="orderNo != null and orderNo != ''">
@@ -423,7 +442,6 @@
         where 1=1
         and b.loc_sts = 'F'
         and a.matnr = #{matnr}
-        and a.payment = 1
         <!--        <choose>-->
         <!--            <when test="batch != null and batch != ''">-->
         <!--                and a.batch = #{batch}-->
@@ -433,14 +451,14 @@
         <!--            </otherwise>-->
         <!--        </choose>-->
 
-        <choose>
-            <when test="owner != null and owner !=0">
-                and a.owner = #{owner}
-            </when>
-            <otherwise>
-                and 1!=1
-            </otherwise>
-        </choose>
+<!--        <choose>-->
+<!--            <when test="owner != null and owner !=0">-->
+<!--                and a.owner = #{owner}-->
+<!--            </when>-->
+<!--            <otherwise>-->
+<!--                and 1!=1-->
+<!--            </otherwise>-->
+<!--        </choose>-->
 
         order by
         a.manu,DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time), a.anfme
@@ -506,12 +524,6 @@
         <if test="matnr != null and matnr !='' ">
             and t.matnr like '%' + #{matnr} + '%'
         </if>
-        <if test="owner != null and owner !='' ">
-            and t.owner like '%' + #{owner} + '%'
-        </if>
-        <if test="payment != null and payment !='' ">
-            and t.payment = #{payment}
-        </if>
 
     </sql>
     <select id="selectAllOwner" resultType="com.zy.asrs.entity.result.LocDetlAll" parameterType="com.zy.asrs.entity.result.LocDetlDTO">
@@ -564,10 +576,11 @@
         ROW_NUMBER() over (order by sum(a.anfme) desc) as row
         , a.matnr
         , sum(a.anfme) as anfme
+        , a.owner
         from asr_loc_detl_all a
         where 1=1
         <include refid="stockOutCondition"></include>
-        group by a.matnr
+        group by a.matnr, a.owner
         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
     </select>
 
@@ -575,17 +588,192 @@
         select count(1) as count from
         (
         select
-        a.matnr
+        a.matnr, a.owner
+        from asr_loc_detl_all a
+        where 1=1
+        <include refid="stockOutCondition"></include>
+        group by a.matnr, a.owner
+        ) b
+    </select>
+
+<!--    鏁伴噺棰勮-->
+    <select id="getWarningNumList" resultType="com.zy.asrs.entity.result.LocDetlAll">
+        select * from
+        (
+        select
+        ROW_NUMBER() over (order by sum(a.anfme) desc) as row
+        , a.matnr
+        , sum(a.anfme) as anfme
         from asr_loc_detl_all a
         where 1=1
         <include refid="stockOutCondition"></include>
         group by a.matnr
-        ) b
+        ) t
+        LEFT JOIN man_mat m ON t.matnr = m.matnr
+        WHERE t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+        and t.anfme > m.inventory_max or t.anfme &lt; m.inventory_min
+
+
+<!--        select * from-->
+<!--        (-->
+<!--        select-->
+<!--        ROW_NUMBER() over (order by sum(a.anfme) desc) as row-->
+<!--        , a.matnr-->
+<!--        , sum(a.anfme) as anfme-->
+<!--        ,m.inventory_max-->
+<!--        ,m.inventory_min-->
+<!--        from asr_loc_detl_all a-->
+<!--        LEFT JOIN man_mat m on a.matnr = m.matnr-->
+<!--        where 1=1-->
+<!--        <include refid="stockOutCondition"></include>-->
+<!--        group by a.matnr,m.inventory_max,m.inventory_min-->
+<!--        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})-->
+<!--        and t.anfme>t.inventory_max or t.anfme &lt; t.inventory_min-->
     </select>
+
+    <select id="getWarningNumListCount" parameterType="java.util.Map" resultType="java.lang.Integer">
+<!--        select count(1) from-->
+<!--        (-->
+<!--        select-->
+<!--        ROW_NUMBER() over (order by sum(a.anfme) desc) as row-->
+<!--        , a.matnr-->
+<!--        , sum(a.anfme) as anfme-->
+<!--        ,m.inventory_max-->
+<!--        ,m.inventory_min-->
+<!--        from asr_loc_detl_all a-->
+<!--        LEFT JOIN man_mat m on a.matnr = m.matnr-->
+<!--        where 1=1-->
+<!--        <include refid="stockOutCondition"></include>-->
+<!--        group by a.matnr,m.inventory_max,m.inventory_min-->
+<!--        ) t-->
+
+        select count(1) from
+        (
+        select
+        ROW_NUMBER() over (order by sum(a.anfme) desc) as row
+        , a.matnr
+        , sum(a.anfme) as anfme
+        from asr_loc_detl_all a
+        where 1=1
+        <include refid="stockOutCondition"></include>
+        group by a.matnr
+        ) t
+        LEFT JOIN man_mat m ON t.matnr = m.matnr
+    </select>
+
+
+
 
     <select id="sumAll" resultType="java.lang.Double">
         SELECT SUM(anfme) FROM asr_loc_detl_all
     </select>
+    <!-- mapper涓嶆敮鎸乻ql璇彞宓屽鏃讹紝閲囩敤sql鐗囨鍖呭惈鏂瑰紡锛岃В鍐硏ml鏍囩闂 -->
+    <sql id="selectAllWarningSql">
+        <if test="locNo!=null and locNo!='' ">
+            and t.loc_no like '%' + #{locNo} + '%'
+        </if>
+        <if test="matnr != null and matnr !='' ">
+            and t.matnr like '%' + #{matnr} + '%'
+        </if>
+
+    </sql>
+
+    <select id="selectAllWarning" resultMap="WarningResultMap" parameterType="com.zy.asrs.entity.LocDetlWarningDTO">
+        SELECT
+        *
+        FROM
+        (
+        SELECT
+        ROW_NUMBER ( ) OVER ( ORDER BY matnr ) AS row,*
+        FROM
+        (
+        SELECT
+        DISTINCT loc_no,
+        locd.matnr,
+        locd.maktx,
+        locd.owner,
+        locd.batch,
+        produce_time as create_time,
+        produce_time,
+        locd.specs,
+        locd.unit,
+        inventory_max,
+        inventory_min,
+        inventory_age_max,
+        DATEDIFF( DAY, produce_time, GETDATE( ) ) AS [diff_time]
+        FROM
+        man_loc_detl locd
+        LEFT JOIN (
+        SELECT
+        man_mat.matnr,
+        maktx,
+        specs,
+        unit,
+        inventory_max,
+        inventory_min,
+        inventory_age_max,
+        count_anfme
+        FROM
+        man_mat
+        RIGHT JOIN ( SELECT matnr,batch,owner, SUM ( anfme ) AS count_anfme FROM man_loc_detl loc GROUP BY matnr,batch,owner ) aa ON aa.matnr = man_mat.matnr
+        ) warn ON locd.matnr = warn.matnr
+        WHERE
+        DATEDIFF( DAY, produce_time, GETDATE( ) ) > inventory_age_max
+        ) t
+        WHERE
+        1 = 1
+        <include refid="selectAllWarningSql"></include>
+        ) a
+        WHERE a.row BETWEEN ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+
+    </select>
+    <select id="getAllWarningCount" resultType="java.lang.Integer">
+        SELECT
+        COUNT(1)
+        FROM
+        (
+        SELECT
+        ROW_NUMBER ( ) OVER ( ORDER BY matnr ) AS row,*
+        FROM
+        (
+        SELECT
+        DISTINCT loc_no,
+        locd.matnr,
+        locd.maktx,
+        locd.owner,
+        locd.batch,
+        produce_time as create_time,
+        produce_time,
+        locd.specs,
+        locd.unit,
+        inventory_max,
+        inventory_min,
+        inventory_age_max,
+        DATEDIFF( DAY, produce_time, GETDATE( ) ) AS [diff_time]
+        FROM
+        man_loc_detl locd
+        LEFT JOIN (
+        SELECT
+        man_mat.matnr,
+        maktx,
+        specs,
+        unit,
+        inventory_max,
+        inventory_min,
+        inventory_age_max,
+        count_anfme
+        FROM
+        man_mat
+        RIGHT JOIN ( SELECT matnr,batch,owner, SUM ( anfme ) AS count_anfme FROM man_loc_detl loc GROUP BY matnr,batch,owner ) aa ON aa.matnr = man_mat.matnr
+        ) warn ON locd.matnr = warn.matnr
+        WHERE
+        DATEDIFF( DAY, produce_time, GETDATE( ) ) > inventory_age_max
+        ) t
+        WHERE
+        1 = 1
+        <include refid="selectAllWarningSql"></include>
+        ) a
+    </select>
 
 
 </mapper>

--
Gitblit v1.9.1