<?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.LocDetlMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.zy.asrs.entity.LocDetl">
|
<result column="loc_no" property="locNo" />
|
<result column="zpallet" property="zpallet" />
|
<result column="anfme" property="anfme" />
|
<result column="matnr" property="matnr" />
|
<result column="maktx" property="maktx" />
|
<result column="batch" property="batch" />
|
<result column="order_no" property="orderNo" />
|
|
<result column="specs" property="specs" />
|
<result column="model" property="model" />
|
<result column="color" property="color" />
|
<result column="brand" property="brand" />
|
<result column="unit" property="unit" />
|
<result column="price" property="price" />
|
<result column="sku" property="sku" />
|
<result column="units" property="units" />
|
<result column="barcode" property="barcode" />
|
<result column="origin" property="origin" />
|
<result column="manu" property="manu" />
|
<result column="manu_date" property="manuDate" />
|
<result column="item_num" property="itemNum" />
|
<result column="safe_qty" property="safeQty" />
|
<result column="weight" property="weight" />
|
<result column="length" property="length" />
|
<result column="volume" property="volume" />
|
<result column="three_code" property="threeCode" />
|
<result column="supp" property="supp" />
|
<result column="supp_code" property="suppCode" />
|
<result column="be_batch" property="beBatch" />
|
<result column="dead_time" property="deadTime" />
|
<result column="dead_warn" property="deadWarn" />
|
<result column="source" property="source" />
|
<result column="inspect" property="inspect" />
|
<result column="danger" property="danger" />
|
|
<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="memo" property="memo" />
|
</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>
|
|
<select id="selectItem" resultMap="BaseResultMap">
|
select top 1 *
|
from asr_loc_detl
|
where 1=1
|
and loc_no = #{locNo}
|
and matnr = #{matnr}
|
<include refid="batchSeq"></include>
|
</select>
|
|
<delete id="deleteItem">
|
delete from asr_loc_detl
|
where 1=1
|
and loc_no = #{locNo}
|
and matnr = #{matnr}
|
<include refid="batchSeq"></include>
|
</delete>
|
|
<update id="updateAnfme">
|
update asr_loc_detl
|
set anfme = #{anfme}
|
, modi_time = getdate()
|
where 1=1
|
and loc_no = #{locNo}
|
and matnr = #{matnr}
|
<include refid="batchSeq"></include>
|
</update>
|
|
<sql id="stockOutCondition">
|
<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="anfme!=null and anfme!='' ">
|
and a.anfme like '%' + #{anfme} + '%'
|
</if>
|
<if test="startTime!=null and endTime!=null">
|
and a.modi_time between #{startTime} and #{endTime}
|
</if>
|
</sql>
|
|
<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>
|
) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
|
</select>
|
|
<select id="getStockOutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
|
select
|
count(1)
|
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>
|
|
<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>
|
|
<select id="getStockStatisCount" parameterType="java.util.Map" resultType="java.lang.Integer">
|
select count(1) as count from
|
(
|
select
|
a.matnr
|
from asr_loc_detl a
|
where 1=1
|
<include refid="stockOutCondition"></include>
|
group by a.matnr
|
) b
|
</select>
|
|
<select id="getStockStatisExcel" resultType="com.zy.asrs.entity.LocDetl">
|
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
|
group by a.matnr
|
</select>
|
|
<select id="selectPakoutByRule" 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}
|
order by
|
DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time)
|
desc,
|
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
|
else 0
|
end
|
desc
|
</select>
|
|
<select id="getAsrsLocDetl" resultMap="BaseResultMap">
|
select a.* from asr_loc_detl a left join asr_loc_mast b on a.loc_no = b.loc_no where a.matnr = #{matnr} and b.loc_sts = 'F'
|
</select>
|
|
<select id="countLocNoNum" resultType="integer">
|
select count(*) from asr_loc_detl where loc_no = #{loc_no}
|
</select>
|
|
<select id="queryStockPre" resultType="com.zy.common.model.QueryStockPreDo">
|
select
|
*
|
from
|
(
|
select
|
no = 1,
|
orderBy = 'true',
|
b.bay1 as bay,
|
sum(anfme) as count
|
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 b.row1 >= 31
|
and b.row1 <= 32
|
group by b.bay1
|
union
|
select
|
no = 2,
|
orderBy = 'true',
|
b.bay1 as bay,
|
sum(anfme) as count
|
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 b.row1 >= 2
|
and b.row1 <= 17
|
group by b.bay1
|
union
|
select
|
no = 3,
|
orderBy = 'false',
|
b.bay1 as bay,
|
sum(anfme) as count
|
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 b.row1 >= 18
|
and b.row1 <= 30
|
group by b.bay1
|
) a
|
order by no, count desc
|
</select>
|
|
<select id="queryStock" 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
|
<if test="no!=null and no == 1">
|
and b.row1 >= 31
|
and b.row1 <= 32
|
</if>
|
<if test="no!=null and no == 2">
|
and b.row1 >= 2
|
and b.row1 <= 17
|
</if>
|
<if test="no!=null and no == 3">
|
and b.row1 >= 18
|
and b.row1 <= 30
|
</if>
|
and a.matnr = #{matnr}
|
and b.bay1 = #{bay}
|
and b.loc_sts = 'F'
|
order by b.row1
|
<if test="orderBy != null and orderBy != '' and orderBy == 'false'">
|
desc
|
</if>
|
</select>
|
|
<select id="queryStockAnfme" resultType="java.lang.Double">
|
select sum(anfme) as count from man_loc_detl
|
where 1=1
|
and matnr = #{matnr}
|
<if test="batch != null and batch != ''">
|
and batch = #{batch}
|
</if>
|
</select>
|
|
<select id="queryStockTotal" resultType="com.zy.asrs.entity.result.StockVo">
|
select
|
matnr,
|
batch,
|
count(anfme) as count
|
from asr_loc_detl
|
where 1=1
|
group by matnr,batch
|
</select>
|
<select id="sum" resultType="java.lang.Integer">
|
SELECT SUM(anfme) FROM asr_loc_detl
|
</select>
|
<select id="unreason" resultMap="BaseResultMap">
|
SELECT
|
*
|
FROM
|
[dbo].[asr_loc_detl]
|
WHERE
|
DATALENGTH( batch ) != 11 or
|
batch LIKE '%[a-z]%'
|
</select>
|
|
<select id="selectSameDetl" resultType="java.lang.String">
|
SELECT
|
ld.loc_no
|
FROM asr_loc_detl ld
|
LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no
|
LEFT JOIN (
|
select
|
loc_no,
|
count(1) as count
|
from asr_loc_detl
|
where 1=1
|
group by loc_no
|
) dual on dual.loc_no = lm.loc_no
|
WHERE 1 = 1
|
AND ld.maktx = #{matnr}
|
AND (lm.row1 >= #{start} AND lm.row1 <= #{end})
|
AND (lm.loc_sts = 'F')
|
AND dual.count = 1
|
ORDER BY lm.modi_time ASC
|
</select>
|
|
|
</mapper>
|