From c46f9c28f8d40d2a4efcc7ef6e528661d97a4be0 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 14 二月 2023 13:48:18 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/CommonService.java | 116 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 73 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 423aee2..296bbbd 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -178,9 +178,12 @@ if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父 if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) { - crnNo = locMast0.getCrnNo(); - locMast = locMast0; - break; + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (locMastService.checkEmptyCount(locMast0, 10)) { + crnNo = locMast0.getCrnNo(); + locMast = locMast0; + break; + } } } } @@ -200,9 +203,12 @@ if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父 if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) { - crnNo = locMast0.getCrnNo(); - locMast = locMast0; - break; + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (locMastService.checkEmptyCount(locMast0, 10)) { + crnNo = locMast0.getCrnNo(); + locMast = locMast0; + break; + } } } } @@ -224,9 +230,12 @@ if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父 if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) { - crnNo = locMast0.getCrnNo(); - locMast = locMast0; - break; + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (locMastService.checkEmptyCount(locMast0, 10)) { + crnNo = locMast0.getCrnNo(); + locMast = locMast0; + break; + } } } } @@ -334,6 +343,7 @@ // 寮�濮嬫煡鎵惧簱浣� ==============================>> // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺� + // 楂樹綆棰戠鎺с�佸簱浣嶇粍鍏ㄩ儴涓篛 if (locMast == null) { List<Integer> rows = Utils.getGroupLoc(curRow); List<LocMast> locMasts = locMastService.queryFreeLocMast0(rows, rows.size(), locTypeDto.getLocType1(), inoutEveryday); @@ -349,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.鏃犲簱浣嶆椂锛屾棤瑙嗗尯鍩熼攣瀹氾紝閲嶆柊鏌ユ壘搴撲綅 @@ -377,9 +433,16 @@ 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; } + } + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (!locMastService.checkEmptyCount(loc, 10)) { + success = false; } if (success) { locMast = loc; @@ -389,39 +452,6 @@ sign = getCurRow(sign); } } - - -// if (Cools.isEmpty(locMast)){ -// List<LocMast> locMasts = locMastService.queryFreeLocMastEnd(curRow, locTypeDto.getLocType1()); -// int sign=curRow; -// while (true){ -// if (locMasts.size()==0){ -// sign = getCurRow(sign); -// if (sign != 0){ -// locMasts = locMastService.queryFreeLocMastEnd(sign, locTypeDto.getLocType1()); -// }else { -// break; -// } -// }else { -// break; -// } -// } -// for (LocMast locMast1 : locMasts){ -// List<LocMast> locMasts1 = locMastService.queryFreeLocMastEnd0(locMast1.getBay1(), locMast1.getLev1(),locMast1.getRow1(), locTypeDto.getLocType1()); -// Integer innermostRow = Utils.getInnermostRow(locMasts1.get(0).getLocNo()); -// for (LocMast locMast2:locMasts1){ -// if (locMast2.getLocSts().equals("O")){ -// locMast = locMast2; -// break; -// }else if (!locMast2.getLocSts().equals("F")){ -// break; -// } -// } -// if (!Cools.isEmpty(locMast)){ -// break; -// } -// } -// } // 3.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣� if (Cools.isEmpty(locMast)) { -- Gitblit v1.9.1