From dbfbc8f19dc5751b6dec442aff24463f1084a3d9 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期日, 21 九月 2025 15:54:02 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/service/CommonService.java |   96 +++++++++++++++++++++++++++++------------------
 1 files changed, 59 insertions(+), 37 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index c3ccb4a..fa5eb7c 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -16,6 +16,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -188,30 +189,41 @@
 
         if(targetLocMast == null) {
             //鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                    .eq("loc_sts", "O")
-                    .orderBy("lev1", true)
-                    .orderBy("bay1", true));
-            for (LocMast locMast : locMasts) {
-                String locNo = locMast.getLocNo();
-                //鑾峰彇閫氶亾缁�
-                List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
 
-                boolean flag = true;
-                for (Integer row : locRowGroupDesc) {
-                    String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
-                    LocMast deepLoc = locMastService.selectById(deepLocNo);
-                    if (!deepLoc.getLocSts().equals("O")) {
-                        flag = false;
+            //鑾峰彇璁惧妤煎眰
+            List<Integer> levList = basCrnpService.getLevList();
+            Collections.shuffle(levList);
+
+            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> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+
+                    boolean flag = true;
+                    for (Integer row : locRowGroupDesc) {
+                        String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+                        LocMast deepLoc = locMastService.selectById(deepLocNo);
+                        if (!deepLoc.getLocSts().equals("O")) {
+                            flag = false;
+                            break;
+                        }
+                    }
+
+                    if (flag) {
+                        Integer firstRow = locRowGroupDesc.get(0);
+                        String deepLocNo = Utils.getLocNo(firstRow, Utils.getBay(locNo), Utils.getLev(locNo));
+                        LocMast deepLoc = locMastService.selectById(deepLocNo);
+                        targetLocMast = deepLoc;
                         break;
                     }
                 }
 
-                if (flag) {
-                    Integer firstRow = locRowGroupDesc.get(0);
-                    String deepLocNo = Utils.getLocNo(firstRow, Utils.getBay(locNo), Utils.getLev(locNo));
-                    LocMast deepLoc = locMastService.selectById(deepLocNo);
-                    targetLocMast = deepLoc;
+                if (targetLocMast != null) {
                     break;
                 }
             }
@@ -246,32 +258,42 @@
         }
 
         if(targetLocMast == null) {
-            //鐩歌繎鐗╂枡鍖归厤澶辫触锛屾悳绱㈠彲鐢ㄧ┖搴撲綅缁�
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                    .eq("loc_sts", "O")
-                    .orderBy("lev1", true)
-                    .orderBy("bay1", true));
-            for (LocMast locMast : locMasts) {
-                String locNo = locMast.getLocNo();
-                //鑾峰彇閫氶亾缁�
-                List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
 
-                boolean flag = true;
-                for (Integer row : locRowGroupDesc) {
-                    String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
-                    LocMast deepLoc = locMastService.selectById(deepLocNo);
-                    if (!deepLoc.getLocSts().equals("O")) {
-                        flag = false;
+            //鑾峰彇璁惧妤煎眰
+            List<Integer> levList = basCrnpService.getLevList();
+            Collections.shuffle(levList);
+
+            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> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+
+                    boolean flag = true;
+                    for (Integer row : locRowGroupDesc) {
+                        String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+                        LocMast deepLoc = locMastService.selectById(deepLocNo);
+                        if (!deepLoc.getLocSts().equals("O")) {
+                            flag = false;
+                            break;
+                        }
+                    }
+
+                    if (flag) {
+                        targetLocMast = locMast;
                         break;
                     }
                 }
 
-                if (flag) {
-                    targetLocMast = locMast;
+                if (targetLocMast != null) {
                     break;
                 }
             }
-
         }
         return targetLocMast;
     }

--
Gitblit v1.9.1