From ecb8d4fceb450fcfc8d527cd448914f96a52bf97 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 16 十月 2024 15:11:32 +0800
Subject: [PATCH] #优化

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    1 
 src/main/java/com/zy/asrs/utils/Utils.java                     |   81 ++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/common/service/CommonService.java         |    5 ++
 3 files changed, 87 insertions(+), 0 deletions(-)

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 ec31817..cd9ca8b 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -76,6 +76,7 @@
 
     @Override
     public Boolean checkEmptyCount(LocMast locMast, int quaOfBlank) {
+        quaOfBlank = 0;
         if (locMast == null) {
             return false;
         }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 1705301..cd0417e 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -740,6 +740,68 @@
         }
     }
 
+    public static List<String> getGroupOutsideLoc(String locNo){
+        int row = getRow(locNo);
+        switch (row) {
+            case 1:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(2), 2) + locNo.substring(2));
+                }};
+            case 2:
+            case 3:
+            case 4:
+            case 5:
+                return new ArrayList<>();
+            case 6:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(5), 2) + locNo.substring(2));
+                }};
+            case 7:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(6), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(5), 2) + locNo.substring(2));
+                }};
+            case 8:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(9), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(10), 2) + locNo.substring(2));
+                }};
+            case 9:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(10), 2) + locNo.substring(2));
+                }};
+            case 10:
+            case 11:
+            case 12:
+            case 13:
+                return new ArrayList<>();
+            case 14:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(13), 2) + locNo.substring(2));
+                }};
+            case 15:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(16), 2) + locNo.substring(2));
+                    add(zerofill(String.valueOf(17), 2) + locNo.substring(2));
+                }};
+            case 16:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(17), 2) + locNo.substring(2));
+                }};
+            case 17:
+            case 18:
+            case 19:
+            case 20:
+                return new ArrayList<>();
+            case 21:
+                return new ArrayList<String>() {{
+                    add(zerofill(String.valueOf(20), 2) + locNo.substring(2));
+                }};
+            default:
+                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+        }
+    }
+
     public Map<Integer, List<Integer>> getRowSeqHasSortOfPakin(int start, int end) {
         Map<Integer, List<Integer>> result = new HashMap<>();
         for (int i = start ; i <= end; i++) {
@@ -802,6 +864,25 @@
     }
 
     /**
+     * 妫�娴嬪綋鍓嶅簱浣嶅渚у叾浠栧簱浣嶆槸鍚︿负O
+     * 杩斿洖true琛ㄧず澶栦晶搴撲綅鏄疧锛岃繑鍥瀎alse琛ㄧず鍐呬晶搴撲綅涓嶆槸O
+     */
+    public static boolean checkOutsideLocIsDFX(String locNo) {
+        LocMastService locMastService = SpringUtils.getBean(LocMastService.class);
+        List<String> insideLoc = Utils.getGroupOutsideLoc(locNo);
+        if (insideLoc.size() > 0) {
+            List<LocMast> insideLocMast = locMastService.selectByLocNos(insideLoc);
+            for (LocMast mast : insideLocMast) {
+                if (!mast.getLocSts().equals("O")) {
+                    //锛丱(涓嶈兘閫夊畾杩欎釜澶栦晶搴撲綅)
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    /**
      * 妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆銆丱
      * 杩斿洖true琛ㄧず鍐呬晶搴撲綅涓嶆槸DFX锛岃繑鍥瀎alse琛ㄧず鍐呬晶搴撲綅鏄疍FX
      */
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index d301e2e..003f292 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -378,6 +378,11 @@
                         //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣�
                         continue;
                     }
+                    //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆
+                    if (!Utils.checkOutsideLocIsDFX(locMast0.getLocNo())) {
+                        //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣�
+                        continue;
+                    }
 
                     // 娴呭簱浣嶇鍚堝昂瀵告娴�
                     if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) {

--
Gitblit v1.9.1