#
luxiaotao1123
2021-04-07 746bc3009489b5fe644666cbed138582726f498a
src/main/resources/mapper/LocDetlMapper.xml
@@ -54,8 +54,11 @@
            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(','+#{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>
@@ -65,8 +68,11 @@
        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(','+#{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>
@@ -117,7 +123,7 @@
        select
        mld.*
        from man_loc_detl mld
        left join man_prior mp on mld.node_id = mp.node_id
        left join man_prior mp on mld.node_id = mp.node_id and mld.matnr = mp.matnr
        where 1=1
        <if test="nodeId != null and nodeId != ''">
            and mld.node_id = #{nodeId}
@@ -130,4 +136,73 @@
        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.status = 1
        order by mld.create_time
    </select>
    <select id="getStockStatis" resultMap="BaseResultMap">
        select * from
        (
            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
            <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="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 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>
</mapper>