From 5c5e89db4fd219d3d685b2473465f522204235b6 Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期二, 07 一月 2025 15:33:42 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |   36 ++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   38 ++++++++++++++++++-
 2 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 251c301..840b025 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -19,6 +19,7 @@
 import com.zy.asrs.utils.CodeDetectionUtil;
 import com.zy.asrs.utils.MatUtils;
 import com.zy.asrs.utils.PostMesDataUtils;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.model.DetlDto;
 import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.StartupDto;
@@ -1314,12 +1315,45 @@
         if (locDetlArrayList.size()<batchNum){
             throw new CoolException("搴撳瓨鏁伴噺:"+locDetlArrayList.size()+"锛涘皬浜庨渶姹傛暟閲�:"+param.getBatchNum());
         }
+        ArrayList<String> locS = new ArrayList<>();
+
+        ArrayList<LocDetl> locDetlArrayAnd = new ArrayList<>();
+        for (LocDetl locDetl : locDetlArrayList){
+            if (!locS.contains(locDetl.getLocNo())){
+                locDetlArrayAnd.add(locDetl);
+                locS.add(locDetl.getLocNo());
+                if (crnList.contains(1) || crnList.contains(2)){
+                    String singleLoc = Utils.singleLoc(locDetl.getLocNo());
+                    if (Cools.isEmpty(singleLoc)){
+                        log.error("寮傚父搴撲綅鍙凤細"+singleLoc+"锛涜緭鍏ュ簱浣嶅彿锛�"+locDetl.getLocNo());
+                        continue;
+                    }
+                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", singleLoc));
+                    if (locMast.getLocSts().equals("F")){
+                        LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", singleLoc));
+                        if (!locS.contains(locDetl1.getLocNo())){
+                            if (locDetl1.getMatnr().equals(locDetl.getMatnr())){
+                                locDetlArrayAnd.add(locDetl1);
+                                locS.add(locDetl1.getLocNo());
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        if (locDetlArrayAnd.isEmpty()){
+            throw new CoolException("鏈壘鍒扮鍚堟潯浠剁殑鐗╂枡鏄庣粏锛氬搧鍙�==銆媘atnr:"+param.getMatnr()+"锛涢噸閲�==銆媤right:"+param.getWeight());
+        }
+        if (locDetlArrayAnd.size()<batchNum){
+            throw new CoolException("搴撳瓨鏁伴噺:"+locDetlArrayAnd.size()+"锛涘皬浜庨渶姹傛暟閲�:"+param.getBatchNum());
+        }
 
         ArrayList<LocDetl> locDetlArraySou = new ArrayList<>();
 
-        for (LocDetl locDetl : locDetlArrayList){
+        for (LocDetl locDetl : locDetlArrayAnd){
             if (batchNum <= 0){
-                return;
+                break;
             }
             locDetlArraySou.add(locDetl);
             batchNum --;
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 08446f5..884f9e1 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -247,7 +247,43 @@
         boolean deepLocLeft = isDeepLocLeft(slaveProperties, shallowRow-1);//鍒ゆ柇鏄惁涓哄乏娴呭簱浣�
         return deepLocLeft? (shallowRow - 1) : (shallowRow + 1);
     }
+    /**
+     * 鑾峰彇 灏忔枡搴撲綅瀵瑰簲鐨勬繁鑾锋祬搴撲綅
+     */
+    public static String singleLoc(String locNo) {
+        int row = getRow(locNo);
+        int rowOther = 0;
+        switch (row){
+            case 1:
+                rowOther = 2;
+                break;
+            case 2:
+                rowOther = 1;
+                break;
+            case 3:
+                rowOther = 4;
+                break;
+            case 4:
+                rowOther = 3;
+                break;
+            case 5:
+                rowOther = 6;
+                break;
+            case 6:
+                rowOther = 5;
+                break;
+            case 7:
+                rowOther = 8;
+                break;
+            case 8:
+                rowOther = 7;
+                break;
+            default:
+                return null;
 
+        }
+        return zerofill(String.valueOf(rowOther), 2) + locNo.substring(2);
+    }
     /**
      * 閫氳繃搴撲綅鍙疯幏鍙� 鎺�
      */

--
Gitblit v1.9.1