From 2f8dcd296b25a93b6dd2e5f98d1455883db1f57c Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期四, 16 十月 2025 09:27:01 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/service/CommonService.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 46 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index fa5eb7c..27f3b06 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -171,10 +171,14 @@
         List<String> locNos = locDetlService.getSameDetlList(findLocNoAttributeVo.getMatnr());
         for (String locNo : locNos) {
             //鑾峰彇閫氶亾缁�
-            List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+            List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
             for (Integer row : locRowGroupDesc) {
                 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")) {
@@ -194,6 +198,9 @@
             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")
@@ -202,12 +209,16 @@
                 for (LocMast locMast : locMasts) {
                     String locNo = locMast.getLocNo();
                     //鑾峰彇閫氶亾缁�
-                    List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+                    List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, 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 == null) {
+                            continue;
+                        }
+
                         if (!deepLoc.getLocSts().equals("O")) {
                             flag = false;
                             break;
@@ -215,10 +226,16 @@
                     }
 
                     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;
+                        for (Integer row : locRowGroupDesc) {
+                            String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+                            LocMast deepLoc = locMastService.selectById(deepLocNo);
+                            if (deepLoc == null) {
+                                continue;
+                            }
+
+                            targetLocMast = deepLoc;
+                            break;
+                        }
                         break;
                     }
                 }
@@ -241,10 +258,14 @@
         for (LocMast locMast : locMastsD) {
             String locNo = locMast.getLocNo();
             //鑾峰彇閫氶亾缁�
-            List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+            List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, locNo);
             for (Integer row : locRowGroupDesc) {
                 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")) {
@@ -263,6 +284,9 @@
             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>()
@@ -272,12 +296,16 @@
                 for (LocMast locMast : locMasts) {
                     String locNo = locMast.getLocNo();
                     //鑾峰彇閫氶亾缁�
-                    List<Integer> locRowGroupDesc = Utils.getLocRowGroupDesc(slaveProperties, Utils.getRow(locNo));
+                    List<Integer> locRowGroupDesc = Utils.getLocGroupDesc(slaveProperties, 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 == null) {
+                            continue;
+                        }
+
                         if (!deepLoc.getLocSts().equals("O")) {
                             flag = false;
                             break;
@@ -285,7 +313,16 @@
                     }
 
                     if (flag) {
-                        targetLocMast = locMast;
+                        for (Integer row : locRowGroupDesc) {
+                            String deepLocNo = Utils.getLocNo(row, Utils.getBay(locNo), Utils.getLev(locNo));
+                            LocMast deepLoc = locMastService.selectById(deepLocNo);
+                            if (deepLoc == null) {
+                                continue;
+                            }
+
+                            targetLocMast = deepLoc;
+                            break;
+                        }
                         break;
                     }
                 }

--
Gitblit v1.9.1