From 6199756c83c8217b377e4e90c2904c8a6a6fdfbe Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 25 五月 2023 15:50:19 +0800
Subject: [PATCH] 物料类型

---
 src/main/java/com/zy/common/service/CommonService.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 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..aaba5de 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;
                         }
                     }
@@ -403,6 +453,23 @@
             }
         }
 
+        //2023-4-13 ADD锛� 鎵惧埌鐨勫簱浣嶃�佷互鍙婂叾娴呭簱浣嶏紝濡傛灉鍦ㄥ伐浣滄。鏈夌Щ搴撲换鍔★紝鍒欒烦杩�
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+                .eq("io_type", 11));
+        for (WrkMast wrkMast : wrkMasts){
+            if (wrkMast.getSourceLocNo().equals(locMast.getLocNo())){
+                locMast = null;
+                break;
+            }
+            List<String> outerLocList = Utils.getGroupOuterLoc(locMast.getLocNo());
+            for (String outerLocNo : outerLocList) {
+                if (locMast.getLocNo().equals(outerLocNo)){
+                    locMast = null;
+                    break;
+                }
+            }
+        }
+
         // 3.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
         if (Cools.isEmpty(locMast)) {
             // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊

--
Gitblit v1.9.1