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/ManLocDetlMapper.xml |  131 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 117 insertions(+), 14 deletions(-)

diff --git a/src/main/resources/mapper/ManLocDetlMapper.xml b/src/main/resources/mapper/ManLocDetlMapper.xml
index 985cd8b..84cdcf6 100644
--- a/src/main/resources/mapper/ManLocDetlMapper.xml
+++ b/src/main/resources/mapper/ManLocDetlMapper.xml
@@ -29,11 +29,29 @@
         <result column="create_time" property="createTime" />
         <result column="update_by" property="updateBy" />
         <result column="modi_time" property="modiTime" />
+        <result column="produce_time" property="produceTime" />
         <result column="memo" property="memo" />
         <result column="owner" property="owner" />
         <result column="payment" property="payment" />
         <result column="real_anfme" property="realAnfme" />
         <result column="order_no" property="orderNo" />
+        <result column="stock_freeze" property="stockFreeze" />
+    </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="locDetlCondition">
@@ -51,6 +69,9 @@
         </if>
         <if test="maktx != null and maktx != ''">
             and mld.maktx like concat('%',#{maktx},'%')
+        </if>
+        <if test="zpallet != null and zpallet != ''">
+            and mld.zpallet like concat('%',#{zpallet},'%')
         </if>
         <if test="startTime!=null and endTime!=null">
             and mld.update_time between #{startTime} and #{endTime}
@@ -77,7 +98,7 @@
         </if>
     </sql>
 
-    <select id="listByPage" resultMap="BaseResultMap">
+    <select id="listByPage" resultMap="BaseResultMap" parameterType="java.util.Map">
         select * from
         (
         SELECT
@@ -88,8 +109,7 @@
         LEFT JOIN man_mat mm ON mld.matnr = mm.matnr
         LEFT JOIN man_tag mt ON mm.tag_id = mt.id
         WHERE 1=1
-         AND (CHARINDEX(','+#{node_id}+',', ','+mn.path+',') > 0 OR mn.id = #{node_id})
-         AND (CHARINDEX(','+#{tag_id}+',', ','+mt.path+',') > 0 OR mt.id = #{tag_id})
+         AND (CHARINDEX(#{node_id}, mn.path) > 0 OR mn.id = #{node_id})
         <include refid="locDetlCondition"></include>
         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
     </select>
@@ -102,8 +122,7 @@
         LEFT JOIN man_mat mm ON mld.matnr = mm.matnr
         LEFT JOIN man_tag mt ON mm.tag_id = mt.id
         WHERE 1=1
-        AND (CHARINDEX(','+#{node_id}+',', ','+mn.path+',') > 0 OR mn.id = #{node_id})
-        AND (CHARINDEX(','+#{tag_id}+',', ','+mt.path+',') > 0 OR mt.id = #{tag_id})
+        AND (CHARINDEX(#{node_id}, mn.path) > 0 OR mn.id = #{node_id})
         <include refid="locDetlCondition"></include>
     </select>
 
@@ -331,15 +350,82 @@
         select top 1 * from man_loc_detl
         where loc_no=#{LocNo}
         and 1=1
-        and matnr=#{Matnr}
-        <choose>
-            <when test="batch != null and batch != ''">
-                and batch = #{batch}
-            </when>
-            <otherwise>
-                and (batch IS NULL OR batch = '')
-            </otherwise>
-        </choose>
+        and matnr=#{matnr}
+        <if test="batch != null and batch !='' ">
+          and  batch like '%' + #{batch} + '%'
+        </if>
+    </select>
+    <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
+        OR count_anfme > inventory_max
+        OR count_anfme &lt; inventory_min
+        ) t
+        WHERE
+        1 = 1
+        <include refid="selectAllWarningSql"></include>
+        ) a
+
+
+    </select>
+    <select id="queryStock"  resultMap="BaseResultMap">
+        select a.*
+        from asr_loc_detl_merge a
+        left join asr_loc_detl_F_view b on a.loc_no = b.loc_no
+        where 1=1
+        and b.loc_sts = 'F'
+        and a.matnr = #{matnr}
+        <if test="batch != null || batch != ''">
+            and a.batch = #{batch}
+        </if>
+
     </select>
     <delete id="deleteDatailed">
         delete from man_loc_detl
@@ -363,6 +449,9 @@
         where 1=1
         and loc_no = #{locNo}
         and matnr = #{matnr}
+        <if test="batch != null || batch != ''">
+            and batch = #{batch}
+        </if>
 <!--        <choose>-->
 <!--            <when test="batch != null and batch!=''  ">-->
 <!--                and batch = #{batch}-->
@@ -372,5 +461,19 @@
 <!--            </otherwise>-->
 <!--        </choose>-->
     </update>
+    <select id="selectByLocNo" resultMap="BaseResultMap">
+        select * from man_loc_detl
+        where 1=1
+          and loc_no = #{locNo}
+    </select>
+
+    <update id="updateStockFreeze">
+        update man_loc_detl
+        set stock_freeze = #{stockFreeze}
+          , modi_time = getdate()
+        where 1=1
+          and loc_no = #{locNo}
+          and matnr = #{matnr}
+    </update>
 
 </mapper>

--
Gitblit v1.9.1