自动化立体仓库 - WMS系统
#
野心家
2025-04-28 4dffb4cbf5febb2e8f7436f28ca3470a35bee5d4
src/main/resources/mapper/LocDetlMapper.xml
@@ -97,6 +97,9 @@
        <if test="anfme!=null and anfme!='' ">
            and a.anfme like '%' + #{anfme} + '%'
        </if>
        <if test="batch!=null and batch!='' ">
            and a.batch like  '%' + #{batch} + '%'
        </if>
        <if test="startTime!=null and endTime!=null">
            and a.modi_time between #{startTime} and #{endTime}
        </if>
@@ -108,14 +111,14 @@
    <select id="getStockOutPage" resultMap="BaseResultMap">
        select * from
        (
            select
            ROW_NUMBER() over (order by a.appe_time,a.matnr,a.loc_no) as row,
            a.*
            from asr_loc_detl a
            left join asr_loc_mast b on a.loc_no = b.loc_no
            where 1=1
            and b.loc_sts = 'F'
            <include refid="stockOutCondition"></include>
        select
        ROW_NUMBER() over (order by a.appe_time,a.matnr,a.loc_no) as row,
        a.*
        from asr_loc_detl a
        left join asr_loc_mast b on a.loc_no = b.loc_no
        where 1=1
        and b.loc_sts = 'F'
        <include refid="stockOutCondition"></include>
        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
    </select>
@@ -132,19 +135,19 @@
    <select id="getStockStatis" resultType="com.zy.asrs.entity.LocDetl">
        select * from
        (
            select
            ROW_NUMBER() over (order by sum(a.anfme) desc) as row
            , a.matnr
            , sum(a.anfme) as anfme
            from asr_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
        ROW_NUMBER() over (order by sum(a.anfme) desc) as row
        , a.matnr
        , sum(a.anfme) as anfme
        from asr_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 count(1) as count from
        (
        select
        a.matnr
@@ -152,7 +155,7 @@
        where 1=1
        <include refid="stockOutCondition"></include>
        group by a.matnr
     ) b
        ) b
    </select>
    <select id="getStockStatisExcel" resultType="com.zy.asrs.entity.LocDetl">
@@ -202,14 +205,14 @@
        where 1=1
        and b.loc_sts = 'F'
        and a.matnr = #{matnr}
<!--        <choose>-->
<!--            <when test="batch != null and batch != ''">-->
<!--                and a.batch = #{batch}-->
<!--            </when>-->
<!--            <otherwise>-->
<!--                and (a.batch IS NULL OR a.batch = '')-->
<!--            </otherwise>-->
<!--        </choose>-->
        <!--        <choose>-->
        <!--            <when test="batch != null and batch != ''">-->
        <!--                and a.batch = #{batch}-->
        <!--            </when>-->
        <!--            <otherwise>-->
        <!--                and (a.batch IS NULL OR a.batch = '')-->
        <!--            </otherwise>-->
        <!--        </choose>-->
        <if test="batch != null and batch != ''">
            and a.batch = #{batch}
        </if>
@@ -282,84 +285,10 @@
        desc
    </select>
    <select id="queryStockOther" resultMap="BaseResultMap">
            select a.*
    from asr_loc_detl a
    left join asr_loc_mast b on a.loc_no = b.loc_no
    where 1=1
    and b.loc_sts = 'F'
    and a.matnr=  #{matnr}
    and a.loc_no !=  #{locNo}
    <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,
    NEWID(),
    case
    when (left(a.loc_no, 2) = '01') then 0
    when (left(a.loc_no, 2) = '02') then 1
    when (left(a.loc_no, 2) = '03') then 1
    when (left(a.loc_no, 2) = '04') then 0
    when (left(a.loc_no, 2) = '05') then 0
    when (left(a.loc_no, 2) = '06') then 1
    when (left(a.loc_no, 2) = '07') then 1
    when (left(a.loc_no, 2) = '08') then 0
    when (left(a.loc_no, 2) = '09') then 0
    when (left(a.loc_no, 2) = '10') then 1
    when (left(a.loc_no, 2) = '11') then 1
    when (left(a.loc_no, 2) = '12') then 0
    when (left(a.loc_no, 2) = '13') then 0
    when (left(a.loc_no, 2) = '14') then 1
    when (left(a.loc_no, 2) = '15') then 1
    when (left(a.loc_no, 2) = '16') then 0
    when (left(a.loc_no, 2) = '17') then 0
    when (left(a.loc_no, 2) = '18') then 1
    when (left(a.loc_no, 2) = '19') then 1
    when (left(a.loc_no, 2) = '20') then 0
    when (left(a.loc_no, 2) = '21') then 0
    when (left(a.loc_no, 2) = '22') then 1
    when (left(a.loc_no, 2) = '23') then 1
    when (left(a.loc_no, 2) = '24') then 0
    when (left(a.loc_no, 2) = '25') then 0
    when (left(a.loc_no, 2) = '26') then 1
    when (left(a.loc_no, 2) = '27') then 1
    when (left(a.loc_no, 2) = '28') then 0
    when (left(a.loc_no, 2) = '29') then 0
    when (left(a.loc_no, 2) = '30') then 1
    when (left(a.loc_no, 2) = '31') then 1
    when (left(a.loc_no, 2) = '32') then 0
    when (left(a.loc_no, 2) = '33') then 0
    when (left(a.loc_no, 2) = '34') then 1
    when (left(a.loc_no, 2) = '35') then 1
    when (left(a.loc_no, 2) = '36') then 0
    when (left(a.loc_no, 2) = '37') then 0
    when (left(a.loc_no, 2) = '38') then 1
    when (left(a.loc_no, 2) = '39') then 1
    when (left(a.loc_no, 2) = '40') then 0
    when (left(a.loc_no, 2) = '41') then 0
    when (left(a.loc_no, 2) = '42') then 1
    when (left(a.loc_no, 2) = '43') then 1
    when (left(a.loc_no, 2) = '44') then 0
    when (left(a.loc_no, 2) = '45') then 0
    when (left(a.loc_no, 2) = '46') then 1
    when (left(a.loc_no, 2) = '47') then 1
    when (left(a.loc_no, 2) = '48') then 0
    else 0
    end
    desc;
    </select>
    <select id="queryStockAnfme" resultType="java.lang.Double">
        select sum(anfme) as count from man_loc_detl
         where 1=1
         and matnr = #{matnr}
        where 1=1
        and matnr = #{matnr}
        <if test="batch != null and batch != ''">
            and batch = #{batch}
        </if>
@@ -393,5 +322,7 @@
        where loc_no=#{locNo}
    </select>
    <select id="selectByMatnr" resultType="com.zy.asrs.entity.LocDetl">
        select * from asr_loc_detl where matnr=#{matnr}
    </select>
</mapper>