From 700059de6ffbe956e6546e74aac9a1f0cd6f2663 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 27 三月 2023 11:15:14 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java                     |  136 +++++++++++++++++++++++++++------
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java    |   34 --------
 src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java |    6 
 src/main/java/com/zy/common/service/CommonService.java         |   55 ++++++-------
 4 files changed, 141 insertions(+), 90 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 ebd138e..0ead33d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -540,39 +540,7 @@
             int row = getRow(locNoKong);
             int bay = getBay(locNoKong);
             int lev = getLev(locNoKong);
-            if (!(row==4 || row==5)){
-                if (row>5){
-                    locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5).le("row1", row)
-                            .eq("bay1",bay).eq("lev1",lev));
-                    for (LocMast locMast1:locMasts){
-                        if (locMast1.getRow1()<row){
-                            if (!locMast1.getLocSts().equals("O")){
-                                if (param.getLocNos().contains(locMast1.getLocNo())){
-                                    continue;
-                                }
-                                sign=true;
-                                th="搴撲綅鍙凤細"+locNoKong+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                                break;
-                            }
-                        }
-                    }
-                }else {
-                    locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4).ge("row1", row)
-                            .eq("bay1",bay).eq("lev1",lev));
-                    for (LocMast locMast1:locMasts){
-                        if (locMast1.getRow1()>row){
-                            if (!locMast1.getLocSts().equals("O")){
-                                if (param.getLocNos().contains(locMast1.getLocNo())){
-                                    continue;
-                                }
-                                sign=true;
-                                th="搴撲綅鍙凤細"+locNoKong+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                                break;
-                            }
-                        }
-                    }
-                }
-            }
+
         }
         if (sign){
             throw new CoolException("鍑哄簱澶辫触锛�"+th);
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
index 2f977a0..0fc3482 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -49,7 +49,7 @@
         if (ioType != 11) {
             // 鍏ュ簱
             if (ioType < 100) {
-                List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
+                List<String> groupOuterLoc = Utils.getGroupOuterLocIoPri(locNo);
                 if (!Cools.isEmpty(groupOuterLoc)) {
                     for (String outerLoc : groupOuterLoc) {
                         WrkMast wrkMast = this.baseMapper.selectByLocNoOfPakin(outerLoc);
@@ -71,7 +71,7 @@
                 }
             // 鍑哄簱
             } else {
-                List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
+                List<String> groupOuterLoc = Utils.getGroupInsideLoc(locNo);
                 if (!Cools.isEmpty(groupOuterLoc)) {
                     for (String outerLoc : groupOuterLoc) {
                         WrkMast wrkMast = this.baseMapper.selectBySourceLocNoOfPakout(outerLoc);
@@ -81,7 +81,7 @@
                         }
                     }
                 }
-                List<String> groupInsideLoc = Utils.getGroupInsideLoc(locNo);
+                List<String> groupInsideLoc = Utils.getGroupOuterLocIoPri(locNo);
                 if (!Cools.isEmpty(groupInsideLoc)) {
                     for (String insideLoc : groupInsideLoc) {
                         WrkMast wrkMast = this.baseMapper.selectBySourceLocNoOfPakout(insideLoc);
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 9fd11fb..bd97705 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -183,6 +183,20 @@
             }
             return result;
         }
+        if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) {
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.FIRST_GROUP_ROW_LIST_SHORT) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            return result;
+        }
+        if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
+            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;
+        }
         throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
     }
 
@@ -199,32 +213,15 @@
     }
 
 
-    public static Integer getInnermostRow(String locNo){
-        int row = getRow(locNo);
-        switch (row) {
-            case 1:
-            case 2:
-            case 3:
-            case 4:
-                return 1;
-            case 5:
-            case 6:
-            case 7:
-            case 8:
-            case 9:
-            case 10:
-            case 11:
-                return 11;
-            default:
-                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
-        }
-    }
-
     public static List<Integer> getGroupLoc(Integer row){
         if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
             return CommonService.FIRST_GROUP_ROW_LIST;
+        } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) {
+            return CommonService.FIRST_GROUP_ROW_LIST_SHORT;
         } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
             return CommonService.SECOND_GROUP_ROW_LIST;
+        } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
+            return CommonService.THIRD_GROUP_ROW_LIST;
         } else {
             throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
         }
@@ -279,6 +276,49 @@
         return result;
     }
 
+    // 澶栦晶鏂瑰悜鐨勮揣浣�  浼樺厛鍏ュ簱鏂瑰悜/浼樺厛鍑哄簱鏂瑰悜
+    public static List<String> getGroupOuterLocIoPri(String locNo){
+        int row = getRow(locNo);
+        List<String> result = new ArrayList<>();
+        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
+            for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST) {
+                if (integer < row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
+        } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)){
+            for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST_SHORT) {
+                if (integer < row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
+        } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)){
+            for (Integer integer : CommonService.SECOND_GROUP_ROW_LIST) {
+                if (integer < row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
+        } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)){
+            List<Integer> clone = Arrays.asList(new Integer[CommonService.THIRD_GROUP_ROW_LIST.size()]);
+            Collections.copy(clone, CommonService.THIRD_GROUP_ROW_LIST);
+            Collections.reverse(clone);
+            for (Integer integer : clone) {
+                if (integer > row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
+        }
+        return result;
+    }
+
     public static void main(String[] args) {
         System.out.println(JSON.toJSONString(getGroupOuterLoc("0200101")));
     }
@@ -287,7 +327,29 @@
     public static List<String> getGroupInsideLoc(String locNo){
         int row = getRow(locNo);
         List<String> result = new ArrayList<>();
-        if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
+        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
+            List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST.size()]);
+            Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST);
+            Collections.reverse(clone);
+            for (Integer integer : clone) {
+                if (integer > row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
+        } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) {
+            List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST_SHORT.size()]);
+            Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST_SHORT);
+            Collections.reverse(clone);
+            for (Integer integer : clone) {
+                if (integer > row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
+        } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
             List<Integer> clone = Arrays.asList(new Integer[CommonService.SECOND_GROUP_ROW_LIST.size()]);
             Collections.copy(clone, CommonService.SECOND_GROUP_ROW_LIST);
             Collections.reverse(clone);
@@ -298,8 +360,8 @@
                     break;
                 }
             }
-        } else if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
-            for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST) {
+        } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
+            for (Integer integer : CommonService.THIRD_GROUP_ROW_LIST) {
                 if (integer < row) {
                     result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                 } else {
@@ -319,8 +381,8 @@
     public static List<String> getGroupOutsideLoc(String locNo){
         int row = getRow(locNo);
         List<String> result = new ArrayList<>();
-        if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
-            for (Integer integer : CommonService.SECOND_GROUP_ROW_LIST) {
+        if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
+            for (Integer integer : CommonService.THIRD_GROUP_ROW_LIST) {
                 if (integer < row) {
                     result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
                 } else {
@@ -338,6 +400,28 @@
                     break;
                 }
             }
+        } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) {
+            List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST_SHORT.size()]);
+            Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST_SHORT);
+            Collections.reverse(clone);
+            for (Integer integer : clone) {
+                if (integer > row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
+        } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
+            List<Integer> clone = Arrays.asList(new Integer[CommonService.SECOND_GROUP_ROW_LIST.size()]);
+            Collections.copy(clone, CommonService.SECOND_GROUP_ROW_LIST);
+            Collections.reverse(clone);
+            for (Integer integer : clone) {
+                if (integer > row) {
+                    result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2));
+                } else {
+                    break;
+                }
+            }
         } else {
 //            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 c0d057e..3f4744f 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -151,17 +151,31 @@
 
         // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
         if (staDescId == 10) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                    .eq("loc_sts", "D"));
-            if (locMasts.size() > 0) {
-                for (LocMast loc : locMasts) {
-                    LocMast locMast0 = locMastService.findNearloc(loc.getLocNo());
-                    if (null != locMast0) {
-                        // 娴呭簱浣嶇鍚堝昂瀵告娴�
-                        if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
-                            locMast = locMast0;
-                            break;
+            //鍏堝垽鏂伐浣滄。锛屾煡鎵句富妗OType=1锛� wrkSts < 10鐨勫伐浣滄槑缁嗭紝鏂欏彿鐩稿悓鐨勬槑缁嗗簱浣�
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type",10));
+            for (WrkMast wrkMast : wrkMasts) {
+                LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo());
+                if (null != locMast0) {
+                    // 娴呭簱浣嶇鍚堝昂瀵告娴�
+                    if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
+                        locMast = locMast0;
+                        break;
+                    }
+                }
+            }
+            if (Cools.isEmpty(locMast)){
+                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                        .eq("loc_sts", "D"));
+                if (locMasts.size() > 0) {
+                    for (LocMast loc : locMasts) {
+                        LocMast locMast0 = locMastService.findNearloc(loc.getLocNo());
+                        if (null != locMast0) {
+                            // 娴呭簱浣嶇鍚堝昂瀵告娴�
+                            if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {
+                                locMast = locMast0;
+                                break;
 
+                            }
                         }
                     }
                 }
@@ -194,8 +208,7 @@
                 List<String> groupInsideLoc = Utils.getGroupInsideLoc(peakLoc.getLocNo());
                 if (!Cools.isEmpty(groupInsideLoc)){
                     if (!locMastService.checkAllLocEmpty(groupInsideLoc)) continue;
-                    locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                            .eq("loc_no", groupInsideLoc.get(0)));
+                    locMast = peakLoc;
                     break;
                 }else {
                     locMast=peakLoc;
@@ -206,22 +219,8 @@
 
         // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
         if (Cools.isEmpty(locMast)) {
-            List<LocMast> peakLocs = locMastService.selectAllPeakLoc();
-            for (LocMast peakLoc : peakLocs) {
-                List<String> groupOuterLoc = Utils.getGroupInsideLoc(peakLoc.getLocNo());
-                if (!Cools.isEmpty(groupOuterLoc)){
-                    if (!locMastService.checkAllLocEmpty(groupOuterLoc)) continue;
-                    locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                            .eq("loc_no", groupOuterLoc.get(0)));
-                }else {
-                    locMast = peakLoc;
-                }
-
-            }
-            if (Cools.isEmpty(locMast)) {
-                log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
-                throw new CoolException("娌℃湁绌哄簱浣�");
-            }
+            log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
+            throw new CoolException("娌℃湁绌哄簱浣�");
         }
         String locNo = locMast.getLocNo();
 

--
Gitblit v1.9.1