From 570986d8808721deead35f7359d13487aeb61997 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 10 十一月 2022 15:34:27 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    4 +-
 src/main/resources/mapper/LocMastMapper.xml                    |   60 +++++++++++++++--------------
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    2 
 src/main/java/com/zy/asrs/service/LocMastService.java          |    2 
 src/main/java/com/zy/common/service/CommonService.java         |   18 ++++++---
 5 files changed, 47 insertions(+), 39 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 5d6b3fb..e89c39f 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -14,7 +14,7 @@
 public interface LocMastMapper extends BaseMapper<LocMast> {
 
     List<LocMast> queryFreeLocMast(@Param("rows") List<Integer> rows, @Param("rowsLen") Integer rowsLen, @Param("locType1") Short locType1);
-    List<LocMast> queryFreeLocMast2(@Param("rows") List<Integer> rows, @Param("rowsLen") Integer rowsLen, @Param("locType1") Short locType1, @Param("inoutEveryday") Boolean inoutEveryday);
+    List<LocMast> queryFreeLocMast0(@Param("rows") List<Integer> rows, @Param("rowsLen") Integer rowsLen, @Param("locType1") Short locType1, @Param("inoutEveryday") Boolean inoutEveryday);
 
     @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
     List<String> queryGroupEmptyStock(Integer crnNo);
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 8983351..85a939a 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -12,7 +12,7 @@
      * 妫�绱㈠彲鐢ㄥ簱浣�
      */
     List<LocMast> queryFreeLocMast(List<Integer> rows, Integer rowsLen, Short locType1);
-    List<LocMast> queryFreeLocMast2(List<Integer> rows, Integer rowsLen, Short locType1,Boolean inoutEveryday);
+    List<LocMast> queryFreeLocMast0(List<Integer> rows, Integer rowsLen, Short locType1,Boolean inoutEveryday);
 
     /**
      * 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index 5ba6512..46dda57 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -31,8 +31,8 @@
         return this.baseMapper.queryFreeLocMast(rows, rowsLen, locType1);
     }
     @Override
-    public List<LocMast> queryFreeLocMast2(List<Integer> rows, Integer rowsLen, Short locType1,Boolean inoutEveryday) {
-        return this.baseMapper.queryFreeLocMast2(rows, rowsLen, locType1,inoutEveryday);
+    public List<LocMast> queryFreeLocMast0(List<Integer> rows, Integer rowsLen, Short locType1,Boolean inoutEveryday) {
+        return this.baseMapper.queryFreeLocMast0(rows, rowsLen, locType1,inoutEveryday);
     }
 
     @Override
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index f7cc365..00e4dbf 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -145,6 +145,17 @@
         // 鐩爣搴撲綅
         LocMast locMast = null;
 
+        boolean inoutEveryday = false;
+        if (!Cools.isEmpty(matNos)) {
+            for (String matNo : matNos) {
+                Mat mat = matService.selectByMatnr(matNo);
+                if (mat.getInoutEveryday() != null && mat.getInoutEveryday()) {
+                    inoutEveryday = true;
+                    break;
+                }
+            }
+        }
+
         // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂�
         if (!Cools.isEmpty(matNos) && matNos.size() == 1) {
             List<String> locNos = locDetlService.getSameDetl(matNos.get(0), start, end);
@@ -275,12 +286,7 @@
         // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺�
         if (locMast == null) {
             List<Integer> rows = Utils.getGroupLoc(curRow);
-
-            Mat mat = matService.selectByMatnr(matNos.get(0));
-            if (Cools.isEmpty(mat.getInoutEveryday())){
-                mat.setInoutEveryday(false);
-            }
-            List<LocMast> locMasts = locMastService.queryFreeLocMast(rows, rows.size(), locTypeDto.getLocType1());
+            List<LocMast> locMasts = locMastService.queryFreeLocMast0(rows, rows.size(), locTypeDto.getLocType1(), inoutEveryday);
             if (!Cools.isEmpty(locMasts)) {
                 Integer innermostRow = Utils.getInnermostRow(locMasts.get(0).getLocNo());
                 for (LocMast one : locMasts) {
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 1a5218e..c10b505 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -77,45 +77,47 @@
         )
     </select>
 
-    <select id="queryFreeLocMast2" resultMap="BaseResultMap">
+    <select id="queryFreeLocMast0" resultMap="BaseResultMap">
         select
         *
         from asr_loc_mast
         where 1=1
-        <if test="inoutEveryday == false ">
-            and bay1 > 10
-        </if>
-        <if test="inoutEveryday == true">
-            and bay1 &lt; 11
-        </if>
         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
+            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 row1 &lt; 11
+                    </when>
+                    <otherwise>
+                        AND row1 > 10
+                    </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>
 

--
Gitblit v1.9.1