| <?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.common.wms.mapper.LocDetlMapper"> | 
|   | 
|     <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="stockOutCondition"> | 
|         <if test="map.loc_no!=null and map.loc_no!='' "> | 
|             and a.loc_no like '%' + #{map.loc_no} + '%' | 
|         </if> | 
|         <if test="map.matnr!=null and map.matnr!='' "> | 
|             and a.matnr like '%' + #{map.matnr} + '%' | 
|         </if> | 
|         <if test="map.maktx!=null and map.maktx!='' "> | 
|             and a.maktx like '%' + #{map.maktx} + '%' | 
|         </if> | 
|         <if test="map.zpallet!=null and map.zpallet!='' "> | 
|             and a.zpallet like '%' + #{map.zpallet} + '%' | 
|         </if> | 
|         <if test="map.batch!=null and map.batch!='' "> | 
|             and a.batch like '%' + #{map.batch} + '%' | 
|         </if> | 
|         <if test="map.anfme!=null and map.anfme!='' "> | 
|             and a.anfme like '%' + #{map.anfme} + '%' | 
|         </if> | 
|         <if test="map.owner!=null and map.owner!='' "> | 
|             and a.owner like '%' + #{map.owner} + '%' | 
|         </if> | 
|         <if test="map.startTime!=null and map.endTime!=null"> | 
|             and a.modi_time between #{map.startTime} and #{map.endTime} | 
|         </if> | 
|         <if test="map.memo!=null and map.memo!='' and map.memo!='all'"> | 
|             and a.memo like '%' + #{map.memo} + '%' | 
|         </if> | 
|         <if test="map.memo!=null and map.memo!='' and map.memo=='all'"> | 
|             and a.memo is not null | 
|             and a.memo !='' | 
|         </if> | 
|     </sql> | 
|   | 
|     <select id="getStockStatis" resultType="com.zy.asrs.common.wms.entity.LocDetl"> | 
|         select | 
|         a.matnr | 
|         , sum(a.anfme) as anfme | 
|         from wms_loc_detl a | 
|         where 1=1 | 
|         <include refid="stockOutCondition"></include> | 
|         group by a.matnr | 
|     </select> | 
|   | 
|     <select id="sum" resultType="java.lang.Integer"> | 
|         SELECT SUM(anfme) FROM wms_loc_detl | 
|     </select> | 
|   | 
|     <select id="queryStock" resultType="com.zy.asrs.common.wms.entity.LocDetl"> | 
|         select | 
|         a.* | 
|         from wms_loc_detl a | 
|         left join common_loc_mast b on a.loc_no = b.loc_no and a.host_id = b.host_id | 
|         where 1=1 | 
|         and a.matnr = #{matnr} | 
|         <if test="batch!=null and batch!=''"> | 
|             and a.batch = #{batch} | 
|         </if> | 
|         and b.host_id = #{hostId} | 
|         and b.loc_sts = 'F' | 
|         and b.row1 in (1,2,3,4) | 
|         order by b.row1 | 
|     </select> | 
|   | 
|     <select id="selectItem" resultType="com.zy.asrs.common.wms.entity.LocDetl"> | 
|         select top 1 * | 
|         from wms_loc_detl | 
|         where 1=1 | 
|         and loc_no = #{locNo} | 
|         and matnr = #{matnr} | 
|         and host_id = #{hostId} | 
|         <include refid="batchSeq"></include> | 
|     </select> | 
|   | 
|     <delete id="deleteItem"> | 
|         delete from wms_loc_detl | 
|         where 1=1 | 
|         and loc_no = #{locNo} | 
|         and matnr = #{matnr} | 
|         and host_id = #{hostId} | 
|         <include refid="batchSeq"></include> | 
|     </delete> | 
|   | 
|     <update id="updateAnfme"> | 
|         update wms_loc_detl | 
|         set anfme = #{anfme} | 
|         , modi_time = getdate() | 
|         where 1=1 | 
|         and loc_no = #{locNo} | 
|         and matnr = #{matnr} | 
|         and host_id = #{hostId} | 
|         <include refid="batchSeq"></include> | 
|     </update> | 
|   | 
|     <select id="getStockOutPage" resultType="com.zy.asrs.common.wms.entity.LocDetl"> | 
|         select | 
|         a.* | 
|         from wms_loc_detl a | 
|         left join common_loc_mast b on a.loc_no = b.loc_no and a.host_id = b.host_id | 
|         where 1=1 | 
|         and b.loc_sts = 'F' | 
|         and b.host_id = #{map.hostId} | 
|         and b.row1 in (1,2,3,4) | 
|         <include refid="stockOutCondition"></include> | 
|     </select> | 
|   | 
|     <select id="getReportStockDto" resultType="com.zy.asrs.common.domain.dto.ReportStockDto"> | 
|         select matnr,batch,sum(anfme) anfme from wms_loc_detl | 
|         where host_id = #{hostId} | 
|         group by matnr,batch | 
|     </select> | 
|   | 
|     <select id="selectSameDetl" resultType="java.lang.String"> | 
|         SELECT | 
|             ld.loc_no | 
|         FROM wms_loc_detl ld | 
|                  LEFT JOIN common_loc_mast lm ON ld.loc_no = lm.loc_no and ld.host_id = lm.host_id | 
|                  LEFT JOIN ( | 
|             select | 
|                 loc_no, | 
|                 count(1) as count | 
|             from wms_loc_detl | 
|             where 1=1 | 
|             and host_id = #{hostId} | 
|             group by loc_no | 
|         ) dual on dual.loc_no = lm.loc_no | 
|         WHERE 1 = 1 | 
|           AND ld.matnr = #{matnr} | 
|           <if test="batch"> | 
|               AND ld.batch = #{batch} | 
|           </if> | 
|           AND (lm.loc_sts = 'F') | 
|           AND dual.count = 1 | 
|           AND lm.host_id = #{hostId} | 
|         ORDER BY lm.modi_time ASC | 
|     </select> | 
|   | 
|     <select id="getStockStatisExcel" resultType="com.zy.asrs.common.wms.entity.LocDetl"> | 
|         select | 
|             ROW_NUMBER() over (order by sum(a.anfme) desc) as row | 
|         , a.matnr | 
|              , sum(a.anfme) as anfme | 
|         from wms_loc_detl a | 
|         where 1=1 | 
|         group by a.matnr | 
|     </select> | 
|   | 
| </mapper> |