自动化立体仓库 - WMS系统
zjj
2025-02-17 8aa26cdd7fd9c4ed2d9fc56be0f9c9c05f531b18
src/main/resources/mapper/ManLocDetlMapper.xml
@@ -33,11 +33,25 @@
    </resultMap>
    <sql id="batchSeq">
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </sql>
    <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 != ''">
@@ -48,6 +62,26 @@
        </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>
@@ -62,8 +96,8 @@
        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})
         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>
@@ -224,6 +258,101 @@
        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>
    <select id="selectItem" resultMap="BaseResultMap">
        select top 1 *
        from man_loc_detl
        where 1=1
        and loc_no = #{locNo}
        and matnr = #{matnr}
        <include refid="batchSeq"></include>
    </select>
    <select id="sum" resultType="java.lang.Double">
        SELECT SUM(anfme) FROM man_loc_detl
    </select>
    <select id="queryStock" resultMap="BaseResultMap">
        select a.*
        from man_loc_detl a
        where 1=1
        and b.loc_sts = 'F'
        and a.matnr = #{matnr}
        <if test="supp != null and supp != ''">
            and a.supp = #{supp}
        </if>
        <if test="temp1 != null and temp1 != ''">
            and a.temp1 = #{temp1}
        </if>
        <if test="temp2 != null and temp2 != ''">
            and a.temp2 = #{temp2}
        </if>
        <if test="batch != null and batch != ''">
            and a.batch = #{batch}
        </if>
        <if test="orderNo != null and orderNo != ''">
            and a.order_no = #{orderNo}
        </if>
        <if test="locNos != null and locNos.size > 0">
            and b.loc_no not in
            <foreach item="item" collection="locNos" index="index"  separator="," open="(" close=")">
                #{item}
            </foreach>
        </if>
        order by
        DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time), a.anfme
        desc
    </select>
    <update id="updateLocNo0">