From 3dbc72ed3bfed1a7f2d3d38b88f71953ed47a531 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期四, 18 八月 2022 10:26:41 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/mapper/LocDetlMapper.java | 6 + src/main/resources/mapper/LocDetlMapper.xml | 106 ++++++++++++++-------------------- src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java | 10 +++ src/main/java/com/zy/common/model/QueryStockPreDo.java | 17 +++++ 4 files changed, 74 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java index e4574dc..50b548b 100644 --- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.result.StockVo; +import com.zy.common.model.QueryStockPreDo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -11,7 +12,6 @@ import java.util.List; import java.util.Map; -import java.util.Set; @Mapper @Repository @@ -53,7 +53,9 @@ // ------------------------------------------------- - List<LocDetl> queryStock(@Param("matnr")String matnr, @Param("batch")String batch, @Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos); + List<QueryStockPreDo> queryStockPre(@Param("matnr")String matnr); + + List<LocDetl> queryStock(@Param("matnr")String matnr, @Param("no") Integer no, @Param("bay") Integer bay); Double queryStockAnfme(String matnr, String batch); diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java index ff27e08..213eaad 100644 --- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java @@ -6,8 +6,10 @@ import com.zy.asrs.entity.result.StockVo; import com.zy.asrs.mapper.LocDetlMapper; import com.zy.asrs.service.LocDetlService; +import com.zy.common.model.QueryStockPreDo; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -75,7 +77,13 @@ @Override public List<LocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos) { - return this.baseMapper.queryStock(matnr, batch, orderNo, locNos); + List<LocDetl> result = new ArrayList<>(); + List<QueryStockPreDo> preDos = this.baseMapper.queryStockPre(matnr); + for (QueryStockPreDo preDo : preDos) { + List<LocDetl> locDetls = this.baseMapper.queryStock(matnr, preDo.getNo(), preDo.getBay()); + result.addAll(locDetls); + } + return result; } @Override diff --git a/src/main/java/com/zy/common/model/QueryStockPreDo.java b/src/main/java/com/zy/common/model/QueryStockPreDo.java new file mode 100644 index 0000000..f959804 --- /dev/null +++ b/src/main/java/com/zy/common/model/QueryStockPreDo.java @@ -0,0 +1,17 @@ +package com.zy.common.model; + +import lombok.Data; + +/** + * Created by vincent on 2022/8/18 + */ +@Data +public class QueryStockPreDo { + + private Integer no; + + private Integer bay; + + private Double count; + +} diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml index d4ea587..4449adc 100644 --- a/src/main/resources/mapper/LocDetlMapper.xml +++ b/src/main/resources/mapper/LocDetlMapper.xml @@ -192,74 +192,56 @@ 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, + b.bay1 as bay, + count(1) 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 = 2, + b.bay1, + count(1) 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 count desc + </select> + <select id="queryStock" resultMap="BaseResultMap"> - select a.* + select + a.* from asr_loc_detl a left join asr_loc_mast b on a.loc_no = b.loc_no --- left join asr_bas_crnp c on b.crn_no = c.crn_no where 1=1 - and b.loc_sts = 'F' --- and c.out_enable = 'Y' - 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 test="no!=null and no == 1"> + and b.row1 >= 2 + and b.row1 <= 17 </if> - <if test="orderNo != null and orderNo != ''"> - and a.order_no = #{orderNo} + <if test="no!=null and no == 2"> + and b.row1 >= 18 + and b.row1 <= 30 </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, - a.loc_no, - case - 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 - else 0 - end - desc + and b.bay1 = #{bay} + order by b.row1 asc </select> <select id="queryStockAnfme" resultType="java.lang.Double"> -- Gitblit v1.9.1