From 1aae6f4bd840a202ee9db3efa3f6776cd10b81f9 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期二, 29 八月 2023 09:09:45 +0800
Subject: [PATCH] #bug修复

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |   98 ++++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   29 ++++++---
 2 files changed, 116 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 9380c83..1e42f78 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -167,17 +167,25 @@
         for(StockOutParam.LocDetl one : param.getLocDetls()){
             locs.add(one.getLocNo());
         }
-        boolean sign = true;
-        for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
-            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
-            //鑾峰彇鍚屼竴搴撲綅缁勭殑澶栦晶搴撲綅鍙�
-            List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo());
-            if (locMast.getLocType2().equals((short)3)){
-                groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locDetl.getLocNo());
-            }
 
+        List<StockOutParam.LocDetl> stockOutParamLocDetlSort = Utils.getStockOutParamLocDetlSort(param.getLocDetls());
+        boolean sign = true;
+        List<String> locNoWeighting = new ArrayList<>();
+        for (StockOutParam.LocDetl locDetl : stockOutParamLocDetlSort) {
+            if (Cools.isEmpty(locNoWeighting)){
+                locNoWeighting.add(locDetl.getLocNo());
+            }else {
+                if (!Utils.getLocNoWeighting(locNoWeighting,locDetl.getLocNo())){
+                    locNoWeighting.add(locDetl.getLocNo());
+                    sign = true;
+                }
+            }
             if (sign){
-                if (locMast.getLocType2().equals((short)3)) {
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                //鑾峰彇鍚屼竴搴撲綅缁勭殑澶栦晶搴撲綅鍙�
+                List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo());
+                if (locMast.getLocType2().equals((short)3)){
+                    groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locDetl.getLocNo());
                     sign = false;
                 }
                 for (String locNo : groupOuterSingleLoc) {
@@ -1729,8 +1737,7 @@
         if (!wrkMastRes || !locMastRes) {
             throw new CoolException("淇濆瓨鏁版嵁澶辫触");
         }
-        WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
-        waitPakinService.delete(new EntityWrapper<>(waitPakin));
+        waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
     }
 
     @Override
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 566c0d4..1149736 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -5,7 +5,9 @@
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.service.BasCrnpService;
 import com.zy.asrs.service.LocMastService;
 import com.zy.common.properties.SlaveProperties;
@@ -899,4 +901,100 @@
         }
     }
 
+    public static List<String> getLocNosSort(List<String> locNos){
+        List<String> locSort = new ArrayList<>();
+        for (String loc : locNos){
+            if (getIoPri(loc).equals(15.0)){
+                locSort.add(loc);
+            }
+        }
+        for (String loc : locNos){
+            if (getIoPri(loc).equals(17.0)){
+                locSort.add(loc);
+            }
+        }
+        for (String loc : locNos){
+            if (getIoPri(loc).equals(19.0)){
+                locSort.add(loc);
+            }
+        }
+        for (String loc : locNos){
+            if (getIoPri(loc).equals(21.0)){
+                locSort.add(loc);
+            }
+        }
+        return locSort;
+    }
+
+    public static List<StockOutParam.LocDetl> getStockOutParamLocDetlSort(List<StockOutParam.LocDetl> locNos){
+        List<StockOutParam.LocDetl> locSort = new ArrayList<>();
+        for (StockOutParam.LocDetl loc : locNos){
+            if (getIoPri(loc.getLocNo()).equals(15.0)){
+                locSort.add(loc);
+            }
+        }
+        for (StockOutParam.LocDetl loc : locNos){
+            if (getIoPri(loc.getLocNo()).equals(17.0)){
+                locSort.add(loc);
+            }
+        }
+        for (StockOutParam.LocDetl loc : locNos){
+            if (getIoPri(loc.getLocNo()).equals(19.0)){
+                locSort.add(loc);
+            }
+        }
+        for (StockOutParam.LocDetl loc : locNos){
+            if (getIoPri(loc.getLocNo()).equals(21.0)){
+                locSort.add(loc);
+            }
+        }
+        return locSort;
+    }
+
+    public static boolean getLocNoWeighting(List<String> locNos,String locNo){
+        boolean sign=false;
+        for (String loc : locNos){
+            if (getBay(loc)==getBay(locNo) && getLev(loc)==getLev(locNo) && getRowWeighting(loc)==getRowWeighting(locNo)){
+                sign = true;
+                break;
+            }
+        }
+        return sign;
+    }
+
+
+    public static int getRowWeighting(String locNo){
+        switch (Utils.getRow(locNo)){
+            case 1:
+            case 2:
+            case 3:
+                return 123;
+            case 4:
+            case 5:
+            case 6:
+            case 7:
+                return 456;
+            case 8:
+            case 9:
+            case 10:
+            case 11:
+                return 891011;
+            case 12:
+            case 13:
+            case 14:
+                return 121314;
+            case 15:
+            case 16:
+            case 17:
+            case 18:
+                return 15161718;
+            case 19:
+            case 20:
+            case 21:
+            case 22:
+            default:
+                return 19202122;
+        }
+    }
+
 }

--
Gitblit v1.9.1