From 040c966720e66bfa400181bb26d46ca59ac44e6c Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 16 八月 2022 16:07:18 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    4 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java    |   92 +-----------------------------
 src/main/resources/mapper/LocMastMapper.xml                    |   17 +----
 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         |   30 ++++++++-
 6 files changed, 38 insertions(+), 109 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 19d14b3..d448c40 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -13,7 +13,7 @@
 @Repository
 public interface LocMastMapper extends BaseMapper<LocMast> {
 
-    LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1);
+    LocMast queryFreeLocMast(@Param("row") Integer row, @Param("rows")  List<Integer> rows, @Param("locType1") Short locType1);
 
     @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 868a7e8..e5fb670 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -11,7 +11,7 @@
     /**
      * 妫�绱㈠彲鐢ㄥ簱浣�
      */
-    LocMast queryFreeLocMast(Integer row, Short locType1);
+    LocMast queryFreeLocMast(Integer row, List<Integer> rows, Short locType1);
 
     /**
      * 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅
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 f286926..1245184 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -23,8 +23,8 @@
     private RowLastnoService rowLastnoService;
 
     @Override
-    public LocMast queryFreeLocMast(Integer row, Short locType1) {
-        return this.baseMapper.queryFreeLocMast(row, locType1);
+    public LocMast queryFreeLocMast(Integer row, List<Integer> rows, Short locType1) {
+        return this.baseMapper.queryFreeLocMast(row, rows, locType1);
     }
 
     @Override
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index a874c50..8291afb 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -907,96 +907,10 @@
     @Override
     @Transactional
     public String dealPreHaveStart(Integer wrkNo, Long userId) {
-        WrkMast wrkMast = wrkMastService.selectById(wrkNo);
-        if (wrkMast == null) {
-            throw new CoolException("浠诲姟宸插け鏁�");
+        if (true) {
+            throw new CoolException("鍔熻兘鍋滅敤");
         }
-        String locNo = wrkMast.getLocNo();
-        LocMast locMast = locMastService.selectById(locNo);
-        assert locMast != null;
-        RowLastno rowLastno = rowLastnoService.findBySection(locMast.getRow1());
-        assert rowLastno != null;
-
-        // 鐩爣搴撲綅
-        LocMast targetLoc = null;
-
-        for (int curRow = rowLastno.getsRow(); curRow<=rowLastno.geteRow(); curRow++) {
-
-            if (Utils.isShallowLoc(slaveProperties, curRow)) {
-                Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
-                targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1());
-                // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
-                if (!locMastService.checkEmptyCount(targetLoc)) {
-                    continue;
-                }
-            }
-            if (Cools.isEmpty(targetLoc)) {
-                targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1());
-                // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
-                if (!locMastService.checkEmptyCount(targetLoc)) {
-                    continue;
-                }
-                // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X
-                if (null != targetLoc && Utils.isShallowLoc(slaveProperties, targetLoc.getLocNo())) {
-                    LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, targetLoc.getLocNo()));
-                    if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) {
-                        continue;
-                    }
-                }
-                // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O
-                if (null != targetLoc && Utils.isDeepLoc(slaveProperties, targetLoc.getLocNo())) {
-                    LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, targetLoc.getLocNo()));
-                    if (!shallowLoc.getLocSts().equals("O")) {
-                        continue;
-                    }
-                }
-            }
-
-            if (!Cools.isEmpty(targetLoc)) {
-                break;
-            }
-
-        }
-
-        if (targetLoc == null) {
-            throw new CoolException("鎿嶄綔澶辫触锛屽綋鍓嶄粨搴撴壘涓嶅埌绌哄簱浣�");
-        }
-
-        Date now = new Date();
-        // 淇敼宸ヤ綔妗�
-        StaDesc staDesc = staDescService.queryCrnStn(targetLoc.getCrnNo());
-        if (Cools.isEmpty(staDesc)) {
-            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
-        }
-        wrkMast.setWrkSts(2L);
-        wrkMast.setLocNo(targetLoc.getLocNo());
-        wrkMast.setStaNo(staDesc.getCrnStn());
-        wrkMast.setCrnNo(targetLoc.getCrnNo());
-        wrkMast.setModiTime(now);
-        wrkMast.setModiUser(userId);
-        wrkMast.setPreHave("N");
-        if (!wrkMastService.updateById(wrkMast)) {
-            throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
-        }
-        // 淇敼搴撲綅鐘舵�� O ===>>> S
-        if (targetLoc.getLocSts().equals("O")){
-            targetLoc.setLocSts("S"); // S.鍏ュ簱棰勭害
-            targetLoc.setModiUser(userId);
-            targetLoc.setModiTime(now);
-            if (!locMastService.updateById(targetLoc)){
-                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
-            }
-        } else {
-            throw new CoolException(targetLoc.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
-        }
-        // 绂佺敤寮傚父搴撲綅
-//        locMast.setLocSts("X"); // X.绂佺敤
-//        locMast.setModiUser(userId);
-//        locMast.setModiTime(now);
-//        if (!locMastService.updateById(locMast)){
-//            throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
-//        }
-        return targetLoc.getLocNo();
+        return "";
     }
 
 }
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 13522d1..0989bf9 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -17,6 +17,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -26,6 +27,15 @@
 @Slf4j
 @Service
 public class CommonService {
+
+    public static final List<Integer> FIRST_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(2);add(3);add(4);add(5);add(6);add(7);add(8);add(9);add(10);
+        add(11);add(12);add(13);add(14);add(15);add(16);add(17);
+    }};
+    public static final List<Integer> SECOND_GROUP_ROW_LIST = new ArrayList<Integer>() {{
+        add(18);add(19);add(20);
+        add(21);add(22);add(23);add(24);add(25);add(26);add(27);add(28);add(29);add(30);
+    }};
 
     @Autowired
     private WrkMastService wrkMastService;
@@ -204,11 +214,23 @@
 
         // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺�
         if (locMast == null) {
-            locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
-            // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
-            if (!locMastService.checkEmptyCount(locMast)) {
-                locMast = null;
+            List<Integer> rows;
+            switch (curRow) {
+                case 1:
+                    rows = FIRST_GROUP_ROW_LIST;
+                    break;
+                case 2:
+                    rows = SECOND_GROUP_ROW_LIST;
+                    break;
+                default:
+                    throw new CoolException("鍏ュ簱閫昏緫鏁呴殰銆�" + curRow + "銆�");
             }
+
+            locMast = locMastService.queryFreeLocMast(curRow, rows, locTypeDto.getLocType1());
+            // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
+//            if (!locMastService.checkEmptyCount(locMast)) {
+//                locMast = null;
+//            }
         }
 
         // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 2fe2065..a1cdb4b 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -42,17 +42,10 @@
         select top 1 *
         from asr_loc_mast
         where
-        row1 =
-        (
-        case
-        when #{row}=3 then 1
-        when #{row}=4 then 7
-        when #{row}=11 then 8
-        when #{row}=12 then 14
-        when #{row}=18 then 15
-        when #{row}=19 then 21
-        end
-        )
+        row1 in
+        <foreach item="item" collection="rows" index="index"  separator="," open="(" close=")">
+            #{item}
+        </foreach>
         <if test="locType1 != null">
             and loc_type1 = #{locType1}
         </if>
@@ -63,7 +56,7 @@
             and loc_type3 = #{locType3}
         </if>
         and loc_sts='O'
-        order by loc_sts desc ,lev1 asc,bay1 asc
+        order by loc_sts desc,row1 asc, lev1 asc, bay1 asc
     </select>
 
 </mapper>

--
Gitblit v1.9.1