| <?xml version="1.0" encoding="UTF-8"?> | 
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | 
| <mapper namespace="com.zy.asrs.mapper.ManLocDetlMapper"> | 
|   | 
|     <!-- 通用查询映射结果 --> | 
|     <resultMap id="BaseResultMap" type="com.zy.asrs.entity.ManLocDetl"> | 
|         <result column="host_id" property="hostId" /> | 
|         <result column="loc_no" property="locNo" /> | 
|         <result column="node_id" property="nodeId" /> | 
|         <result column="zpallet" property="zpallet" /> | 
|         <result column="anfme" property="anfme" /> | 
|         <result column="matnr" property="matnr" /> | 
|         <result column="maktx" property="maktx" /> | 
|         <result column="name" property="name" /> | 
|         <result column="specs" property="specs" /> | 
|         <result column="model" property="model" /> | 
|         <result column="batch" property="batch" /> | 
|         <result column="unit" property="unit" /> | 
|         <result column="barcode" property="barcode" /> | 
|         <result column="doc_id" property="docId" /> | 
|         <result column="doc_num" property="docNum" /> | 
|         <result column="cust_name" property="custName" /> | 
|         <result column="item_num" property="itemNum" /> | 
|         <result column="count" property="count" /> | 
|         <result column="price" property="price" /> | 
|         <result column="weight" property="weight" /> | 
|         <result column="status" property="status" /> | 
|         <result column="create_by" property="createBy" /> | 
|         <result column="create_time" property="createTime" /> | 
|         <result column="update_by" property="updateBy" /> | 
|         <result column="update_time" property="modiTime" /> | 
|         <result column="memo" property="memo" /> | 
|   | 
|     </resultMap> | 
|   | 
|     <sql id="locDetlCondition"> | 
|         <if test="host_id != null and host_id != ''"> | 
|             and mld.host_id = #{host_id} | 
|         </if> | 
|         <if test="loc_no != null and loc_no != ''"> | 
|             and mld.loc_no like concat('%',#{loc_no},'%') | 
|         </if> | 
|         <if test="locNo != null and locNo != ''"> | 
|             and mld.loc_no like concat('%',#{loc_no},'%') | 
|         </if> | 
|         <if test="matnr != null and matnr != ''"> | 
|             and mld.matnr like concat('%',#{matnr},'%') | 
|         </if> | 
|         <if test="maktx != null and maktx != ''"> | 
|             and mld.maktx like concat('%',#{maktx},'%') | 
|         </if> | 
|         <if test="startTime!=null and endTime!=null"> | 
|             and mld.update_time between #{startTime} and #{endTime} | 
|         </if> | 
|     </sql> | 
|     <sql id="locDetlCondition2"> | 
|         <if test="host_id != null and host_id != ''"> | 
|             and v.host_id = #{host_id} | 
|         </if> | 
|         <if test="loc_no != null and loc_no != ''"> | 
|             and v.loc_no like concat('%',#{loc_no},'%') | 
|         </if> | 
|         <if test="locNo != null and locNo != ''"> | 
|             and v.loc_no like concat('%',#{loc_no},'%') | 
|         </if> | 
|         <if test="matnr != null and matnr != ''"> | 
|             and v.matnr like concat('%',#{matnr},'%') | 
|         </if> | 
|         <if test="maktx != null and maktx != ''"> | 
|             and v.maktx like concat('%',#{maktx},'%') | 
|         </if> | 
|         <if test="startTime!=null and endTime!=null"> | 
|             and v.update_time between #{startTime} and #{endTime} | 
|         </if> | 
|     </sql> | 
|   | 
|     <select id="listByPage" resultMap="BaseResultMap"> | 
|         select * from | 
|         ( | 
|         SELECT | 
|         ROW_NUMBER() over (order by mld.create_time desc) as row, | 
|         mld.* | 
|         FROM man_loc_detl mld | 
|         LEFT JOIN man_node mn ON mld.node_id = mn.id | 
|         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}) | 
|         <include refid="locDetlCondition"></include> | 
|         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) | 
|     </select> | 
|   | 
|     <select id="listByPageCount" parameterType="java.util.Map" resultType="java.lang.Integer"> | 
|         select | 
|         count(1) | 
|         FROM man_loc_detl mld | 
|         LEFT JOIN man_node mn ON mld.node_id = mn.id | 
|         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}) | 
|         <include refid="locDetlCondition"></include> | 
|     </select> | 
|   | 
|     <select id="selectByLocNoAndMatnr" resultMap="BaseResultMap"> | 
|         select top 1 * | 
|         from man_loc_detl | 
|         where 1=1 | 
|         and anfme > 0 | 
|         <if test="nodeId != null and nodeId != ''"> | 
|             and node_id = #{nodeId} | 
|         </if> | 
|         <if test="matnr != null and matnr != ''"> | 
|             and matnr = #{matnr} | 
|         </if> | 
|         order by create_time asc | 
|     </select> | 
|   | 
|     <select id="selectCountByMatnr" resultType="java.lang.Double"> | 
|        select sum(anfme) as count from man_loc_detl where 1=1 and matnr = #{matnr} and host_id = #{hostId} | 
|     </select> | 
|   | 
|     <update id="reduceStock"> | 
|         update man_loc_detl | 
|         set anfme = anfme - #{anfme} | 
|         , update_time = getdate() | 
|         where 1=1 | 
|         and node_id = #{nodeId} | 
|         and matnr = #{matnr} | 
|     </update> | 
|   | 
|     <update id="incrementStock"> | 
|         update man_loc_detl | 
|         set anfme = anfme + #{anfme} | 
|         , update_time = getdate() | 
|         where 1=1 | 
|         and node_id = #{nodeId} | 
|         and matnr = #{matnr} | 
|     </update> | 
|   | 
|     <update id="removeStock"> | 
|         delete from man_loc_detl | 
|         where 1=1 | 
|         and node_id = #{nodeId} | 
|         and matnr = #{matnr} | 
|     </update> | 
|   | 
|     <select id="selectByPrior" resultMap="BaseResultMap"> | 
|         select | 
|         mld.* | 
|         from man_loc_detl mld | 
|         left join man_prior mp on mld.node_id = mp.node_id and mld.matnr = mp.matnr | 
|         where 1=1 | 
|         <if test="hostId != null and hostId != ''"> | 
|             and mld.host_id = #{hostId} | 
|         </if> | 
|         <if test="nodeId != null and nodeId != ''"> | 
|             and mld.node_id = #{nodeId} | 
|         </if> | 
|         <if test="matnr != null and matnr != ''"> | 
|             and mld.matnr = #{matnr} | 
|         </if> | 
|         and mld.anfme > 0 | 
|         and mp.status = 1 | 
|         order by mp.prio desc, mld.create_time asc | 
|     </select> | 
|   | 
|     <select id="getLocDetlStatis" resultMap="BaseResultMap"> | 
|         select | 
|         ROW_NUMBER() over (order by sum(a.anfme) desc) as row | 
|         , a.matnr | 
|         , sum(a.anfme) as anfme | 
|         from man_loc_detl a | 
|         where 1=1 | 
|         group by a.matnr | 
|     </select> | 
|   | 
|     <select id="selectByNodeUuid" resultMap="BaseResultMap"> | 
|         select * from man_loc_detl mld left join man_node mn on mld.node_id = mn.id | 
|         where 1=1 | 
|         and mn.uuid = #{uuid} | 
|         and mld.hostId = #{hostId} | 
|         and mld.status = 1 | 
|         order by mld.create_time | 
|     </select> | 
|   | 
|     <select id="getStockStatis" resultMap="BaseResultMap"> | 
|         select * from | 
|         ( | 
|         select | 
|         ROW_NUMBER() over (order by a.matnr, sum(a.anfme) desc) as row | 
|         , a.matnr | 
|         , sum(a.anfme) as anfme | 
|         from man_loc_detl a | 
|         where 1=1 | 
|         <include refid="stockOutCondition"></include> | 
|         group by a.matnr | 
|         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) | 
|     </select> | 
|   | 
|     <select id="getStockStatisCount" parameterType="java.util.Map" resultType="java.lang.Integer"> | 
|         select count(1) as count from | 
|         ( | 
|         select | 
|         a.matnr | 
|         from man_loc_detl a | 
|         where 1=1 | 
|         <include refid="stockOutCondition"></include> | 
|         group by a.matnr | 
|         ) b | 
|     </select> | 
|   | 
|     <sql id="stockOutCondition"> | 
|         <if test="host_id!=null and host_id!='' "> | 
|             and a.host_id = #{host_id} | 
|         </if> | 
|         <if test="node_id!=null and node_id!='' "> | 
|             and a.node_id like '%' + #{node_id} + '%' | 
|         </if> | 
|         <if test="loc_no!=null and loc_no!='' "> | 
|             and a.loc_no like '%' + #{loc_no} + '%' | 
|         </if> | 
|         <if test="matnr!=null and matnr!='' "> | 
|             and a.matnr like '%' + #{matnr} + '%' | 
|         </if> | 
|         <if test="maktx!=null and maktx!='' "> | 
|             and a.maktx like '%' + #{maktx} + '%' | 
|         </if> | 
|     </sql> | 
|   | 
|     <select id="getStockStatisExcel" resultMap="BaseResultMap"> | 
|         select | 
|         ROW_NUMBER() over (order by a.matnr, sum(a.anfme) desc) as row | 
|         , a.matnr | 
|         , sum(a.anfme) as anfme | 
|         from man_loc_detl a | 
|         where 1=1 | 
|         and a.host_id = #{hostId} | 
|         group by a.matnr | 
|     </select> | 
|     <select id="selectLocDetlSumQty" resultType="java.lang.Double"></select> | 
|   | 
|     <select id="selectLocNo0" resultMap="BaseResultMap"> | 
|         select * from man_loc_detl | 
|         where loc_no = #{locNo} | 
|         and matnr = #{matnr} | 
|     </select> | 
|     <select id="selectItem0" resultType="com.zy.asrs.entity.ManLocDetl"> | 
|         select top 1 * from man_loc_detl | 
|         where loc_no = #{locNo} | 
|         and matnr = #{matnr} | 
|     </select> | 
|   | 
|     <select id="listByOutPage" resultMap="BaseResultMap"> | 
|         select * from | 
|         ( | 
|         SELECT | 
|         ROW_NUMBER() over (order by mld.create_time desc) as row, | 
|         mld.* | 
|         FROM man_loc_detl mld | 
|         LEFT JOIN man_node mn ON mld.node_id = mn.id | 
|         LEFT JOIN man_mat mm ON mld.matnr = mm.matnr | 
|         LEFT JOIN man_tag mt ON mm.tag_id = mt.id | 
|         WHERE 1=1 | 
|         <include refid="locDetlCondition"></include> | 
|         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) | 
|     </select> | 
|     <select id="listByOutPageCount" resultType="java.lang.Long"> | 
|         select | 
|         count(1) | 
|         FROM man_loc_detl mld | 
|         LEFT JOIN man_node mn ON mld.node_id = mn.id | 
|         LEFT JOIN man_mat mm ON mld.matnr = mm.matnr | 
|         LEFT JOIN man_tag mt ON mm.tag_id = mt.id | 
|         WHERE 1=1 | 
|         <include refid="locDetlCondition"></include> | 
|     </select> | 
|     <select id="selectAllPage" resultMap="BaseResultMap"> | 
|         select * from | 
|         ( | 
|         SELECT | 
|         ROW_NUMBER() over (order by v.loc_no desc) as row, | 
|             v.* | 
|         FROM [dbo].[man_view_asrs_saas] v | 
|         WHERE 1=1 | 
|         <include refid="locDetlCondition2"></include> | 
|         ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) | 
|     </select> | 
|     <select id="selectAllPageSize" resultType="java.lang.Long"> | 
|         select | 
|         count(1) | 
|         FROM [dbo].[man_view_asrs_saas] v | 
|         WHERE 1=1 | 
|         <include refid="locDetlCondition2"></include> | 
|     </select> | 
|   | 
|   | 
|     <update id="updateLocNo0"> | 
|         update man_loc_detl set loc_no = #{locNo} | 
|         where node_id = #{nodeId} | 
|     </update> | 
|   | 
|     <delete id="deleteLocNo0"> | 
|         delete from man_loc_detl | 
|         where loc_no = #{locNo} | 
|         and matnr = #{matnr} | 
|     </delete> | 
|   | 
|     <update id="updateAnfme0"> | 
|         update man_loc_detl set anfme = #{anfme} | 
|         where node_id = #{nodeId} ; | 
|     </update> | 
|   | 
| </mapper> |