From 499ee6d6eb0e0c38cdc23ebe3c320f46dd498d0a Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期一, 13 一月 2025 16:07:21 +0800
Subject: [PATCH] 添加isEmpty参数优化库位查找逻辑

---
 src/main/java/com/zy/common/service/AgvCommonService.java      |    4 ++--
 src/main/java/com/zy/asrs/utils/LocUtils.java                  |   14 +++++++++-----
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |    2 +-
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 8627132..4b4c04e 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -103,7 +103,7 @@
             List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("supp_code", agvBasDevp.getBarcode()));
 
             //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-            AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(), agvBasDevp.getFloor(), false, false);
+            AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(), agvBasDevp.getFloor(), false, false,null);
             //鐢熸垚宸ヤ綔妗�
             AgvWrkMast wrkMast = createWrkMast(1, 201L, agvBasDevp.getDevNo(), agvLocMast.getLocNo(), agvBasDevp.getBarcode(), now, userId, agvBasDevp.getLocType2(), agvLocMast.getPltType());
             //鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱
diff --git a/src/main/java/com/zy/asrs/utils/LocUtils.java b/src/main/java/com/zy/asrs/utils/LocUtils.java
index 53db48a..5471092 100644
--- a/src/main/java/com/zy/asrs/utils/LocUtils.java
+++ b/src/main/java/com/zy/asrs/utils/LocUtils.java
@@ -24,20 +24,24 @@
      * @param factory
      * @return
      */
-    public   AgvLocMast getLocNoRuleByFactory(int type, String factory) {
+    public   AgvLocMast getLocNoRuleByFactory(int type, boolean isEmpty, String factory) {
         if (Cools.isEmpty(factory)) {
             throw new CoolException("鎼滅储搴撲綅鏃讹紝璁㈠崟绫诲瀷閿欒");
         }
         try {
             EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
             wrapper.eq("loc_sts", "O").eq("loc_type1", type);
-            List<AgvLocMast> agvLocMasts = new ArrayList<>();
+
             if (factory.equalsIgnoreCase(AsrsConstants.ERCHANG)) {
-                wrapper.orderBy("lev1", false);
+                if (isEmpty) {
+                    wrapper.orderBy("lev1", true);
+                }else {
+                    wrapper.orderBy("lev1", false);
+                }
             } else if (factory.equalsIgnoreCase(AsrsConstants.SANCHANG)) {
                 wrapper.orderBy("lev1", true);
             }
-            agvLocMasts = agvLocMastService.selectList(wrapper);
+            List<AgvLocMast>   agvLocMasts = agvLocMastService.selectList(wrapper);
 
             for (AgvLocMast agvLocMast : agvLocMasts) {
                 AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));
@@ -57,7 +61,7 @@
      * @param floor
      * @return
      */
-    public AgvLocMast getLocNoRuleByFloor(int type, Integer floor, Integer lev1) {
+    public AgvLocMast getLocNoRuleByFloor(int type, Integer floor, boolean isEmpty, Integer lev1) {
         try {
             EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
             wrapper.eq("loc_sts", "O").eq("loc_type1", type).eq("floor", floor).eq("lev1", lev1);
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index 76a2b87..7af4f56 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -122,10 +122,10 @@
             // 绠卞3鍏ュ簱
             if (type == 3) {
                 //浼樺厛鍏ュ簱鍚稿1妤硷紝鍦�2妤�
-                locMast = locUtils.getLocNoRuleByFactory(type, factory);
+                locMast = locUtils.getLocNoRuleByFactory(type,isEmpty ,factory);
             } else if (type == 6) {
                 //鍗婃垚鍝佺澹冲叆搴擄紝鍏ュ埌鍚稿2妤肩殑370涓簱浣嶉噷
-                locMast = locUtils.getLocNoRuleByFloor(type, floor, 2);
+                locMast = locUtils.getLocNoRuleByFloor(type, floor, isEmpty,2);
             } else {
                 //涓嶅姩杩欎釜閫昏緫
                 locMast = getLocNoRule(type, floor, isEmpty, isCurrLev);

--
Gitblit v1.9.1