From f8ee1bea8543296792f23489d142e8b3231cd66c Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期二, 16 十二月 2025 13:52:18 +0800
Subject: [PATCH] #1

---
 src/main/java/com/zy/asrs/utils/Utils.java             |   34 ++++++++++++++++
 src/main/java/com/zy/common/web/WcsController.java     |    4 +
 src/main/java/com/zy/common/service/CommonService.java |   75 +++++++++++++++++++++++++++++++++++++
 3 files changed, 110 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 97487ca..66e36d1 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.service.RowLastnoService;
 import com.zy.common.CodeBuilder;
 import com.zy.common.model.LocDetlDto;
+import com.zy.common.model.LocGroupOrder;
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 import com.zy.system.service.UserService;
@@ -642,6 +643,37 @@
     }
 
     public static List<Integer> getLocGroupAsc(SlaveProperties slaveProperties, String locNo) {
-        return new ArrayList<>();
+        LocGroupOrder checkOrder = findLocGroupOrder(slaveProperties, locNo);
+        List<Integer> rowList = checkOrder.getRowList();
+        return new ArrayList<>(rowList);
+    }
+
+    public static LocGroupOrder findLocGroupOrder(SlaveProperties slaveProperties, String locNo) {
+        int row1 = Utils.getRow(locNo);
+        int bay1 = Utils.getBay(locNo);
+        List<LocGroupOrder> locGroupAscOrder = slaveProperties.getLocGroupAscOrder();
+
+        LocGroupOrder checkOrder = null;
+        for (LocGroupOrder order : locGroupAscOrder) {
+            if (!order.getRowList().contains(row1)){
+                continue;
+            }
+
+            if (bay1 < order.getMinBay()){
+                continue;
+            }
+
+            if (bay1 > order.getMaxBay()){
+                continue;
+            }
+
+            checkOrder = order;
+        }
+
+        if (checkOrder == null){
+            throw new RuntimeException(locNo + "搴撲綅鍙�,鏈畾涔夊簱浣嶇粍瑙勫垯");
+        }
+
+        return checkOrder;
     }
 }
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index d7a29de..bd943cc 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -265,7 +265,80 @@
 
     //鎼滅储绌烘墭鐩樺簱浣�
     public LocMast searchEmptyPallet(LocTypeDto locTypeDto){
-        return new LocMast();
+        LocMast targetLocMast = null;
+        List<LocMast> locMastsD = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D"));
+        for (LocMast locMast : locMastsD) {
+            String locNo = locMast.getLocNo();
+            //鑾峰彇閫氶亾缁�
+            List<Integer> locGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
+            for (Integer row : locGroupDesc) {
+                String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+                LocMast deepLoc = locMastService.selectById(deepLocNo);
+                if (deepLoc == null){
+                    continue;
+                }
+
+                if (deepLoc.getLocSts().equals("F")){
+                    continue;
+                }else if (deepLoc.getLocSts().equals("O")){
+                    targetLocMast = deepLoc;
+                    break;
+                }else {
+                    break;
+                }
+            }
+        }
+
+        if (targetLocMast == null){
+            //鑾峰彇璁惧妤煎眰
+            List<Integer> levList = basCrnpService.getLevList();
+            Collections.shuffle(levList);
+
+            List<Integer> locLevList = locMastService.getLevList();
+            levList.addAll(locLevList);
+
+            for (Integer lev : levList) {
+                //鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
+                List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("lev1", lev).orderBy("bay1", true));
+                for (LocMast locMast : locMasts) {
+                    String locNo = locMast.getLocNo();
+                    //鑾峰彇閫氶亾缁�
+                    List<Integer> locGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
+
+                    boolean flag = true;
+                    for (Integer row : locGroupDesc) {
+                        String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+                        LocMast deepLoc = locMastService.selectById(deepLocNo);
+                        if (deepLoc == null){
+                            continue;
+                        }
+
+                        if (!deepLoc.getLocSts().equals("O")){
+                            flag = false;
+                            break;
+                        }
+                    }
+
+                    if (flag){
+                        for (Integer row : locGroupDesc) {
+                            String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+                            LocMast deepLoc = locMastService.selectById(deepLocNo);
+                            if (deepLoc == null){
+                                continue;
+                            }
+
+                            targetLocMast = deepLoc;
+                            break;
+                        }
+                        break;
+                    }
+                }
+                if (targetLocMast != null){
+                    break;
+                }
+            }
+        }
+        return targetLocMast;
     }
 
     /**
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 953753a..e449f34 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.EmptyPlateOutParam;
 import com.zy.asrs.entity.param.StatusParam;
+import com.zy.asrs.entity.result.FindLocNoAttributeVo;
 import com.zy.asrs.mapper.WrkMastMapper;
 import com.zy.asrs.service.*;
 import com.zy.common.CodeRes;
@@ -174,7 +175,8 @@
 
         StartupDto dto = null;
 
-        dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto);
+//        dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto);
+        dto = startupFullPutStore(Integer.valueOf(param.getFromPort()), null, locTypeDto, null);
         log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto);
         return Re.ok();
     }

--
Gitblit v1.9.1