From e1e288f77300638359680e86802c48deb2114b6a Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期一, 04 十二月 2023 08:06:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/tzskasrs-1' into tzskasrs-1

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |   47 +++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   24 ++++++++++++
 src/main/java/com/zy/common/service/CommonService.java      |   26 ++++++++-----
 3 files changed, 86 insertions(+), 11 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瀽寮傚父");
     }
 
     /**
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index b7887ae..e322c8c 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -203,11 +203,14 @@
 
                 List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd());
                 for (LocMast locMast0 : locMasts) {
-                    LocMast locMast1 = locMastService.findInnerLoc(locMast0.getLocNo());//妫�娴嬪悓搴撲綅缁勬繁搴撲綅鏄惁鏈夌┖闂插簱浣�
-                    if (locMast1 != null) {
-                        //棰勭暀绌哄簱浣�
-                        if (locMastService.checkEmptyCount(locMast1, 10)) {
-                            return locMast1;
+                    List<String> locNos = locDetlService.getSameDetl(locMast0.getLocNo());
+                    for (String locNo : locNos) {
+                        LocMast locMast1 = locMastService.findInnerLoc(locNo);
+                        if (null != locMast1) {
+                            //棰勭暀绌哄簱浣�
+                            if (locMastService.checkEmptyCount(locMast1, 10)) {
+                                return locMast1;
+                            }
                         }
                     }
                 }
@@ -253,11 +256,14 @@
 
             List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd());
             for (LocMast locMast0 : locMasts) {
-                LocMast locMast1 = locMastService.findInnerLoc(locMast0.getLocNo());//妫�娴嬪悓搴撲綅缁勬繁搴撲綅鏄惁鏈夌┖闂插簱浣�
-                if (locMast1 != null) {
-                    //棰勭暀绌哄簱浣�
-                    if (locMastService.checkEmptyCount(locMast1, 10)) {
-                        return locMast1;
+                List<String> locNos = locDetlService.getSameDetl(locMast0.getLocNo());
+                for (String locNo : locNos) {
+                    LocMast locMast1 = locMastService.findInnerLoc(locNo);
+                    if (null != locMast1) {
+                        //棰勭暀绌哄簱浣�
+                        if (locMastService.checkEmptyCount(locMast1, 10)) {
+                            return locMast1;
+                        }
                     }
                 }
             }

--
Gitblit v1.9.1