From 383d8a472a03b4fdcc89ae32195cc4b1426b7a82 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 01 十二月 2023 14:43:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |   47 +++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   24 ++++++++++++
 2 files changed, 70 insertions(+), 1 deletions(-)

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 aa31c12..1dca808 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -311,6 +311,23 @@
             throw new CoolException("鍑哄簱澶辫触锛�"+th);
         }
 
+        //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
+        HashMap<String, Object> tmpMap = new HashMap<>();
+        if (staNo.getDevNo() == 325 || staNo.getDevNo() == 331 || staNo.getDevNo() == 333 || staNo.getDevNo() == 339) {
+            int[] data = {325,331,333,339};
+            for (String locNo : locNos) {
+                List<String> groupOuterLoc = Utils.getGroupDeepLoc(locNo);
+                if (groupOuterLoc.isEmpty()) {
+                    continue;
+                }
+                int index = 0;
+                for (String loc : groupOuterLoc) {
+                    tmpMap.put(loc, data[index++]);
+                }
+            }
+        }
+        //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
+
         Integer ioType = null;
         List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList());
         // 鐢熸垚宸ヤ綔妗�
@@ -344,6 +361,13 @@
             if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) {
                 stnNo = staDesc.getCrnStn();
                 sourceStaNo = staDesc.getStnNo();
+
+                //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
+                Object autoStnNo = tmpMap.get(dto.getLocNo());//鑾峰彇绯荤粺鑷姩鍒嗛厤绔欑偣
+                if (autoStnNo != null) {
+                    stnNo = Integer.parseInt(autoStnNo.toString());
+                }
+                //**************325銆�331銆�333銆�339绔欑偣棰濆閫昏緫浠g爜**************
             }
 
             int lev = Utils.getLev(dto.getLocNo());
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index f4ca8db..2050e35 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -256,7 +256,52 @@
     }
 
     public static void main(String[] args) {
-        System.out.println(JSON.toJSONString(getGroupLoc("1305908")));
+        System.out.println(JSON.toJSONString(getGroupDeepLoc("1505908")));
+    }
+
+    /**
+     * 鑾峰彇娣辨祬搴撲綅缁�
+     * @param locNo 搴撲綅鍙�
+     * @return
+     */
+    public static List<String> getGroupDeepLoc(String locNo){
+        int row = getRow(locNo);
+        int bay = getBay(locNo);
+
+        //(1,3,4,10,11)娌℃湁澶栦晶鏂瑰悜搴撲綅缁�,(13,14,16)59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {//1鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {//3-4鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {//6-7鎺�
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            return result;
+        }
+        if (CommonService.FOURTH_GROUP_ROW_LIST.contains(row)) {//8鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16鎺�59-61鍒楀渚ф柟鍚戝簱浣嶇粍
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.SIXTH_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            return result;
+        }
+        if (CommonService.SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        if (CommonService.EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
     }
 
     /**

--
Gitblit v1.9.1