<?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.LocMastMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.zy.asrs.entity.LocMast">
|
<id column="loc_no" property="locNo" />
|
<result column="whs_type" property="whsType" />
|
<result column="plt_type" property="pltType" />
|
<result column="ctn_type" property="ctnType" />
|
<result column="loc_sts" property="locSts" />
|
<result column="sheet_no" property="sheetNo" />
|
<result column="crn_no" property="crnNo" />
|
<result column="row1" property="row1" />
|
<result column="bay1" property="bay1" />
|
<result column="lev1" property="lev1" />
|
<result column="full_plt" property="fullPlt" />
|
<result column="loc_type" property="locType" />
|
<result column="loc_type1" property="locType1" />
|
<result column="loc_type2" property="locType2" />
|
<result column="loc_type3" property="locType3" />
|
<result column="out_enable" property="outEnable" />
|
<result column="io_time" property="ioTime" />
|
<result column="first_time" property="firstTime" />
|
<result column="modi_user" property="modiUser" />
|
<result column="modi_time" property="modiTime" />
|
<result column="appe_user" property="appeUser" />
|
<result column="appe_time" property="appeTime" />
|
<result column="error_time" property="errorTime" />
|
<result column="error_memo" property="errorMemo" />
|
<result column="ctn_kind" property="ctnKind" />
|
<result column="sc_weight" property="scWeight" />
|
<result column="inv_wh" property="invWh" />
|
<result column="mk" property="mk" />
|
<result column="barcode" property="barcode" />
|
<result column="ctn_no" property="ctnNo" />
|
|
</resultMap>
|
<update id="updateLocSts">
|
UPDATE asr_loc_mast SET loc_sts = #{locSts} WHERE loc_no = #{locNo}
|
</update>
|
|
<select id="queryFreeLocMast" resultMap="BaseResultMap">
|
select
|
*
|
from asr_loc_mast
|
where 1=1
|
and row1 in
|
<foreach item="item" collection="rows" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
and ctn_no =
|
(
|
select
|
top 1
|
ctn_no
|
from (
|
select
|
ctn_no,
|
count(1) as count
|
from asr_loc_mast
|
where 1=1
|
and row1 in
|
<foreach item="item" collection="rows" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
and loc_sts = 'O'
|
<if test="locType1 != null">
|
and loc_type1 = #{locType1}
|
</if>
|
and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')
|
group by ctn_no
|
) a
|
where count = #{rowsLen}
|
order by right(ctn_no, 2) + 0 asc, left(ctn_no, 3) + 0 asc
|
)
|
</select>
|
|
<select id="queryFreeLocMast0" resultMap="BaseResultMap">
|
select
|
*
|
from asr_loc_mast
|
where 1=1
|
and row1 in
|
<foreach item="item" collection="rows" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
and ctn_no =
|
(
|
select
|
top 1
|
ctn_no
|
from (
|
select
|
ctn_no,
|
count(1) as count
|
from asr_loc_mast
|
where 1=1
|
and row1 in
|
<foreach item="item" collection="rows" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
and loc_sts = 'O'
|
<if test="locType1 != null">
|
and loc_type1 = #{locType1}
|
</if>
|
<choose>
|
<when test="inoutEveryday != null and inoutEveryday">
|
AND bay1 < 11 and lev1 in (3,4)
|
</when>
|
<otherwise>
|
AND (bay1 >= 11 or (bay1 < 11 and lev1 in (1,2)))
|
</otherwise>
|
</choose>
|
and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')
|
group by ctn_no
|
) a
|
where count = #{rowsLen}
|
order by right(ctn_no, 2) + 0 asc, left(ctn_no, 3) + 0 asc
|
)
|
</select>
|
|
<select id="queryFreeLocMast1" resultMap="BaseResultMap">
|
select
|
*
|
from asr_loc_mast
|
where 1=1
|
and row1 in
|
<foreach item="item" collection="rows" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
and ctn_no =
|
(
|
select
|
top 1
|
ctn_no
|
from (
|
select
|
ctn_no,
|
count(1) as count
|
from asr_loc_mast
|
where 1=1
|
and row1 in
|
<foreach item="item" collection="rows" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
and loc_sts = 'O'
|
|
<if test="rowBeg != null">
|
and row1 >= #{rowBeg}
|
</if>
|
<if test="rowEnd != null">
|
and row1 <= #{rowEnd}
|
</if>
|
<if test="bayBeg != null">
|
and bay1 >= #{bayBeg}
|
</if>
|
<if test="bayEnd != null">
|
and bay1 <= #{bayEnd}
|
</if>
|
<if test="levBeg != null">
|
and lev1 >= #{levBeg}
|
</if>
|
<if test="levEnd != null">
|
and lev1 <= #{levEnd}
|
</if>
|
|
<if test="locType1 != null">
|
and loc_type1 = #{locType1}
|
</if>
|
|
<choose>
|
<when test="inoutEveryday != null and inoutEveryday">
|
AND bay1 < 11 and lev1 in (3,4)
|
</when>
|
<otherwise>
|
AND (bay1 >= 11 or (bay1 < 11 and lev1 in (1,2)))
|
</otherwise>
|
</choose>
|
and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')
|
group by ctn_no
|
) a
|
where count = #{rowsLen}
|
order by right(ctn_no, 2) + 0 asc, left(ctn_no, 3) + 0 asc
|
)
|
</select>
|
|
<select id="queryFreeLocMastEnd" resultMap="BaseResultMap">
|
select *
|
from asr_loc_mast
|
where row1=#{row}
|
and loc_sts='O'
|
<if test="locType1 != null">
|
and loc_type1 = #{locType1}
|
</if>
|
and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')
|
order by loc_sts desc ,lev1 asc,bay1 asc
|
</select>
|
|
<select id="queryFreeLocMastEnd1" resultMap="BaseResultMap">
|
select *
|
from asr_loc_mast
|
where row1=#{row}
|
and loc_sts='O'
|
<if test="locType1 != null">
|
and loc_type1 = #{locType1}
|
</if>
|
<choose>
|
<when test="inoutEveryday != null and inoutEveryday">
|
AND bay1 < 11 </when>
|
<otherwise>
|
AND bay1 >= 11
|
</otherwise>
|
</choose>
|
and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')
|
order by loc_sts desc ,lev1 asc,bay1 asc
|
</select>
|
|
<select id="queryFreeLocMastEnd0" resultMap="BaseResultMap">
|
select *
|
from asr_loc_mast
|
where bay1=#{bay}
|
and lev1=#{lev}
|
-- and loc_sts='O'
|
<if test="locType1 != null">
|
and loc_type1 = #{locType1}
|
</if>
|
and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')
|
<if test="row1 >= 1 and row1 <= 3">
|
and row1 >= 1 and row1 <= 3
|
order by loc_sts desc ,row1 asc
|
</if>
|
<if test="row1 >= 4 and row1 <= 7">
|
and row1 >= 4 and row1 <= 7
|
order by loc_sts desc ,row1 desc
|
</if>
|
<if test="row1 >= 8 and row1 <= 11">
|
and row1 >= 8 and row1 <= 11
|
order by loc_sts desc ,row1 asc
|
</if>
|
<if test="row1 >= 12 and row1 <= 14">
|
and row1 >= 12 and row1 <= 14
|
order by loc_sts desc ,row1 desc
|
</if>
|
<if test="row1 >= 15 and row1 <= 18">
|
and row1 >= 15 and row1 <= 18
|
order by loc_sts desc ,row1 asc
|
</if>
|
<if test="row1 >= 19 and row1 <= 21">
|
and row1 >= 19 and row1 <= 21
|
order by loc_sts desc ,row1 desc
|
</if>
|
</select>
|
|
<select id="queryFreeLocMast2" resultMap="BaseResultMap">
|
select *
|
from asr_loc_mast
|
where 1=1
|
and loc_sts='O'
|
<if test="locType1 != null">
|
and loc_type1 = #{locType1}
|
</if>
|
|
<if test="rowBeg != null">
|
and row1 >= #{rowBeg}
|
</if>
|
<if test="rowEnd != null">
|
and row1 <= #{rowEnd}
|
</if>
|
<if test="bayBeg != null">
|
and bay1 >= #{bayBeg}
|
</if>
|
<if test="bayEnd != null">
|
and bay1 <= #{bayEnd}
|
</if>
|
<if test="levBeg != null">
|
and lev1 >= #{levBeg}
|
</if>
|
<if test="levEnd != null">
|
and lev1 <= #{levEnd}
|
</if>
|
and loc_no not in ('0100101', '0200101', '0300101', '1200701', '1300701', '1400701', '1900401', '2000401', '2100401')
|
order by loc_sts desc ,lev1 asc,bay1 asc
|
</select>
|
|
<select id="findOutMast" resultMap="BaseResultMap">
|
select * from asr_loc_mast
|
where loc_type1 = #{locType1}
|
and loc_type2 = 2
|
and crn_no in
|
<foreach item="item" collection="crnNos" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
and loc_sts = 'O'
|
order by bay1,lev1,row1
|
</select>
|
|
<select id="findInEmptyLocMast" resultMap="BaseResultMap">
|
select * from asr_loc_mast
|
where loc_type2 = 1
|
and loc_type1 = #{locType1}
|
and row1 in
|
<foreach item="item" collection="rows" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
and loc_sts = 'O'
|
and crn_no = #{crnNo}
|
order by bay1,lev1,row1
|
</select>
|
|
<select id="findEmptyLocMastByLocNos" resultMap="BaseResultMap">
|
select * from asr_loc_mast
|
where loc_type2 = 1
|
and loc_type1 = #{locType1}
|
and loc_no in
|
<foreach item="item" collection="locNos" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
and loc_sts = 'O'
|
<if test="crnNo != null and crnNo != ''">
|
and crn_no = #{crnNo}
|
</if>
|
order by bay1,lev1,row1
|
</select>
|
|
<select id="findEmptyLowFrequencyLocMast" resultMap="BaseResultMap">
|
select * from asr_loc_mast
|
where loc_type2 = 3
|
<if test="locType1 != 1">
|
and loc_type1 = #{locType1}
|
</if>
|
and loc_sts = 'O'
|
and crn_no = #{crnNo}
|
order by bay1,lev1,row1
|
</select>
|
|
<select id="findEmptyLocMast" resultMap="BaseResultMap">
|
select * from asr_loc_mast
|
where loc_type1 = #{locType1}
|
and loc_sts = 'O'
|
and crn_no = #{crnNo}
|
order by bay1,lev1,row1
|
</select>
|
|
<select id="selectLocByLev" resultMap="BaseResultMap">
|
SELECT * FROM asr_loc_mast WHERE lev1 = #{lev}
|
</select>
|
|
<select id="selectByLocNos" resultMap="BaseResultMap">
|
select * from asr_loc_mast
|
where loc_no in
|
<foreach item="item" collection="locNos" index="index" separator="," open="(" close=")">
|
#{item}
|
</foreach>
|
</select>
|
|
<select id="selectEmptyLocCount0" resultType="java.lang.Integer">
|
select count(1) from asr_loc_mast
|
where 1=1
|
and loc_sts = 'O'
|
and loc_type1 = #{locType1}
|
and loc_type2 = #{locType2}
|
and crn_no = #{crnNo}
|
<if test="crnNo == 1">
|
and row1 in (3,4)
|
</if>
|
<if test="crnNo == 2">
|
and row1 in (11,12)
|
</if>
|
<if test="crnNo == 3">
|
and row1 in (18,19)
|
</if>
|
</select>
|
</mapper>
|