<?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> 
 | 
        <if test="model!=null and model!='' "> 
 | 
            and a.model like '%' + #{model} + '%' 
 | 
        </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> 
 |