From 392aebed0af81c8369a3f07dfdc53cad1b59f6b4 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期四, 09 三月 2023 16:53:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/bfasrs' into bfasrs

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

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index da2d0cf..296bbbd 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -343,6 +343,7 @@
         // 寮�濮嬫煡鎵惧簱浣� ==============================>>
 
         // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺�
+        // 楂樹綆棰戠鎺с�佸簱浣嶇粍鍏ㄩ儴涓篛
         if (locMast == null) {
             List<Integer> rows = Utils.getGroupLoc(curRow);
             List<LocMast> locMasts = locMastService.queryFreeLocMast0(rows, rows.size(), locTypeDto.getLocType1(), inoutEveryday);
@@ -358,6 +359,52 @@
 
             // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
             if (!locMastService.checkEmptyCount(locMast, 10)) { locMast = null; }
+        }
+
+        // 2.1 楂樹綆棰戠鎺с�佸簱浣嶇粍鏃犻渶鍏ㄩ儴涓篛锛屾壘鍒板簱浣嶅搴旀繁搴撲綅涓嶈兘涓篜 R
+        if (Cools.isEmpty(locMast)) {
+            int sign = curRow;
+            while (sign != 0 && Cools.isEmpty(locMast)) {
+                List<LocMast> locMasts = locMastService.queryFreeLocMastEnd1(sign, locTypeDto.getLocType1(), inoutEveryday);
+                for (LocMast loc : locMasts) {
+                    // 鍚屽簱浣嶇粍瀵瑰簲鍏堕挶搴撲綅鏄惁涓� O.绌哄簱浣�
+                    boolean success = true;
+                    // 娴呭簱浣�
+                    List<String> outerLocList = Utils.getGroupOuterLoc(loc.getLocNo());
+                    for (String outerLocNo : outerLocList) {
+                        LocMast outerLoc = locMastService.selectById(outerLocNo);
+                        if (Cools.isEmpty(outerLoc)) {
+                            continue;
+                        }
+                        if (!outerLoc.getLocSts().equals("O")) {
+                            success = false; break;
+                        }
+                    }
+                    // 娣卞簱浣嶅垽鏂�
+                    List<String> insideLocList = Utils.getGroupInsideLoc(loc.getLocNo());
+                    for (String insideLocNo : insideLocList) {
+                        LocMast insideLoc = locMastService.selectById(insideLocNo);
+                        if (Cools.isEmpty(insideLoc)) {
+                            continue;
+                        }
+                        if (insideLoc.getLocSts().equals("R")
+                                || insideLoc.getLocSts().equals("P")
+                                || insideLoc.getLocSts().equals("Q")
+                                || insideLoc.getLocSts().equals("S")) {
+                            success = false; break;
+                        }
+                    }
+                    // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
+                    if (!locMastService.checkEmptyCount(loc, 10)) {
+                        success = false;
+                    }
+                    if (success) {
+                        locMast = loc;
+                        break;
+                    }
+                }
+                sign = getCurRow(sign);
+            }
         }
 
         // 2.鏃犲簱浣嶆椂锛屾棤瑙嗗尯鍩熼攣瀹氾紝閲嶆柊鏌ユ壘搴撲綅
@@ -386,7 +433,10 @@
                         if (Cools.isEmpty(insideLoc)) {
                             continue;
                         }
-                        if (insideLoc.getLocSts().equals("R") || insideLoc.getLocSts().equals("P")) {
+                        if (insideLoc.getLocSts().equals("R")
+                                || insideLoc.getLocSts().equals("P")
+                                || insideLoc.getLocSts().equals("Q")
+                                || insideLoc.getLocSts().equals("S")) {
                             success = false; break;
                         }
                     }

--
Gitblit v1.9.1