From 02df7ad658b0fbc73b3c4739719be691eec45a8b Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期三, 01 十一月 2023 11:33:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |  107 ++++++++++++++++++++++++++++++++++-
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   39 ++++++++++--
 2 files changed, 134 insertions(+), 12 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 3218390..8948c1f 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -478,21 +478,44 @@
         Date now = new Date();
         // 鍚堝苟鍚岀被椤�
         Set<String> locNos = new HashSet<>();
+        ArrayList<String> locNos2 = new ArrayList<String>();
         List<OutLocDto> dtos = new ArrayList<>();
         for (LocDetlDto locDetlDto : locDetlDtos) {
             String locNo = locDetlDto.getLocDetl().getLocNo();
-            if (locNos.contains(locNo)) {
-                for (OutLocDto dto : dtos) {
-                    if (dto.getLocNo().equals(locNo)) {
-                        dto.getLocDetlDtos().add(locDetlDto);
-                        break;
+            locNos2.add(locNo);
+            //if (locNos.contains(locNo)) {
+                //for (OutLocDto dto : dtos) {
+                //    if (dto.getLocNo().equals(locNo)) {
+                //        dto.getLocDetlDtos().add(locDetlDto);
+                //        break;
+                //    }
+                //}
+            //} else {
+                //locNos.add(locNo);
+
+                //dtos.add(new OutLocDto(locNo, locDetlDto));
+            //}
+        }
+        List<String> innermostSideLoc = Utils.getInnermostSideLoc(locNos2, true);
+        System.out.println(innermostSideLoc);
+        for (LocDetlDto locDetlDto : locDetlDtos) {
+            String locNo = locDetlDto.getLocDetl().getLocNo();
+            if(innermostSideLoc.contains(locNo)) {
+                if (locNos.contains(locNo)) {
+                    for (OutLocDto dto : dtos) {
+                        if (dto.getLocNo().equals(locNo)) {
+                            dto.getLocDetlDtos().add(locDetlDto);
+                            break;
+                        }
                     }
+                } else {
+                    locNos.add(locNo);
+                    dtos.add(new OutLocDto(locNo, locDetlDto));
                 }
-            } else {
-                locNos.add(locNo);
-                dtos.add(new OutLocDto(locNo, locDetlDto));
+                //dtos.add(new OutLocDto(locNo,locDetlDto));
             }
         }
+
         Integer ioType = null;
         List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList());
         // 鐢熸垚宸ヤ綔妗�
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 1eeb648..1705301 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -868,10 +868,10 @@
         return randomCrnNo;
     }
 
-    public static void main(String[] args) {
-        List<String> groupLoc = Utils.getGroupLoc("1300801");
-        System.out.println(groupLoc);
-    }
+    //public static void main(String[] args) {
+    //    List<String> groupLoc = Utils.getGroupLoc("1300801");
+    //    System.out.println(groupLoc);
+    //}
 
     public static Double getIoPri(String locNo){
         switch (Utils.getRow(locNo)){
@@ -997,4 +997,103 @@
         }
     }
 
+    public static void main(String[] args) {
+        ArrayList<String> locS = new ArrayList<String>();
+        locS.add("1902501");
+        locS.add("2102501");
+        locS.add("1802301");
+        locS.add("1800101");
+        locS.add("0300102");
+        locS.add("0100102");
+        List<String> innermostSideLoc = getInnermostSideLoc(locS, true);
+        System.out.println(innermostSideLoc);
+    }
+
+    public static List<String> getInnermostSideLoc(List<String> locS, boolean pakin){
+        ArrayList<String> listLoc = new ArrayList<>();
+        ArrayList<String> listLocRBL = new ArrayList<>();
+        for (String locNo : locS){
+            if (!listLocRBL.contains(Utils.getInnermostSideLocRBL(locNo, pakin))){
+                listLocRBL.add(Utils.getInnermostSideLocRBL(locNo, pakin));
+                listLoc.add(locNo);
+            }else {
+                for (String loc1 : listLoc){
+                    if (Utils.getInnermostSideLocRBL(locNo, pakin).equals(Utils.getInnermostSideLocRBL(loc1, pakin))){
+                        if (!pakin){
+                            if (Utils.getRow(loc1)>17 && Utils.getRow(locNo)>Utils.getRow(loc1) ){
+                                listLoc.remove(loc1);
+                                listLoc.add(locNo);
+                                break;
+                            }else if ( Utils.getRow(loc1)<18 && Utils.getRow(locNo)<Utils.getRow(loc1)){
+                                listLoc.remove(loc1);
+                                listLoc.add(locNo);
+                                break;
+                            }
+                        }else {
+                            if ( Utils.getRow(loc1)<4 && Utils.getRow(locNo)>Utils.getRow(loc1)){
+                                listLoc.remove(loc1);
+                                listLoc.add(locNo);
+                                break;
+                            } else if (Utils.getRow(loc1)>3 && Utils.getRow(loc1)<8 && Utils.getRow(locNo)<Utils.getRow(loc1) ){
+                                listLoc.remove(loc1);
+                                listLoc.add(locNo);
+                                break;
+                            } else if (Utils.getRow(loc1)>7 && Utils.getRow(loc1)<12 && Utils.getRow(locNo)>Utils.getRow(loc1) ){
+                                listLoc.remove(loc1);
+                                listLoc.add(locNo);
+                                break;
+                            } else if (Utils.getRow(loc1)>11 && Utils.getRow(loc1)<15 && Utils.getRow(locNo)<Utils.getRow(loc1) ){
+                                listLoc.remove(loc1);
+                                listLoc.add(locNo);
+                                break;
+                            } else if (Utils.getRow(loc1)>14 && Utils.getRow(loc1)<19 && Utils.getRow(locNo)>Utils.getRow(loc1) ){
+                                listLoc.remove(loc1);
+                                listLoc.add(locNo);
+                                break;
+                            } else if ( Utils.getRow(loc1)>18 && Utils.getRow(locNo)<Utils.getRow(loc1)){
+                                listLoc.remove(loc1);
+                                listLoc.add(locNo);
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return listLoc;
+    }
+
+    public static String getInnermostSideLocRBL(String locNo, boolean pakin){
+        int row = Utils.getRow(locNo);
+        if (row <= 3) {
+            row = 3;
+        } else if (row <= 7) {
+            row = 4;
+        } else if (row <= 11) {
+            row = 11;
+        } else if (row <= 14) {
+            row = 12;
+        } else if (row <= 18) {
+            row = 18;
+        } else {
+            row = 19;
+        }
+        return ""+row+Utils.getBay(locNo)+Utils.getLev(locNo);
+
+        //if (row <3){
+        //    return ""+33+Utils.getBay(locNo)+Utils.getLev(locNo);
+        //}else if (row>30){
+        //    return ""+31+Utils.getBay(locNo)+Utils.getLev(locNo);
+        //}
+        //if (row<18 && row>1){
+        //    row=1;
+        //}else if (row < 31 && row>17){
+        //    row=2;
+        //}
+        //if (pakin){
+        //    row=3-row;
+        //}
+        //return ""+row+Utils.getBay(locNo)+Utils.getLev(locNo);
+
+    }
 }

--
Gitblit v1.9.1