<?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="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
|
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>-->
|
<if test="batch != null and batch != ''">
|
and a.batch = #{batch}
|
</if>
|
<if test="orderNo != null and orderNo != ''">
|
and a.orderNo = #{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}
|
<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>
|
|
|
</mapper>
|