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 | 204 ++++++++++++++++++++++++++++++-------------------- 1 files changed, 123 insertions(+), 81 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 40b44a3..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,39 @@ 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; + } + } + } + } + } + } + } + + // 搴撳尯閿佸畾 + if (Cools.isEmpty(locMast)) { + LocRule locRule = locRuleService.find(Cools.isEmpty(matNos) ? null : matNos.get(0), null, start, end); + if (!Cools.isEmpty(locRule)) { + List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1() + , locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd()); + for (LocMast one : locMasts) { + List<String> groupLoc = Utils.getGroupLoc(one.getLocNo()); + LocMast locMast0 = locMastService.findOutMost(groupLoc); + if (null != locMast0) { + // 娴呭簱浣嶇鍚堝昂瀵告娴� + if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { + // 娴呭簱浣嶅搴斿爢鍨涙満蹇呴』鍙敤涓旀棤寮傚父 + if (basCrnpService.checkSiteError(locMast0.getCrnNo(), true)) { + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (locMastService.checkEmptyCount(locMast0, 10)) { + crnNo = locMast0.getCrnNo(); + locMast = locMast0; + break; + } } } } @@ -211,7 +244,6 @@ } // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋� - int currentRow = 1; if (null == locMast) { Shelves shelves = new Shelves(rowCount, crn_qty); @@ -311,63 +343,60 @@ // 寮�濮嬫煡鎵惧簱浣� ==============================>> // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺� + // 楂樹綆棰戠鎺с�佸簱浣嶇粍鍏ㄩ儴涓篛 if (locMast == null) { - - // 搴撳尯閿佸畾 - LocRule locRule = locRuleService.find(Cools.isEmpty(matNos) ? null : matNos.get(0), null, start, end); - if (!Cools.isEmpty(locRule)) { - List<Integer> rows = Utils.getGroupLoc(locRule.getRowBeg()); - List<LocMast> locMasts = locMastService.queryFreeLocMast1(rows, rows.size(), locTypeDto.getLocType1(), inoutEveryday - , locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd()); - if (!Cools.isEmpty(locMasts)) { - Integer innermostRow = Utils.getInnermostRow(locMasts.get(0).getLocNo()); - for (LocMast one : locMasts) { - if (one.getRow1().equals(innermostRow)) { - locMast = one; - break; - } + List<Integer> rows = Utils.getGroupLoc(curRow); + List<LocMast> locMasts = locMastService.queryFreeLocMast0(rows, rows.size(), locTypeDto.getLocType1(), inoutEveryday); + if (!Cools.isEmpty(locMasts)) { + Integer innermostRow = Utils.getInnermostRow(locMasts.get(0).getLocNo()); + for (LocMast one : locMasts) { + if (one.getRow1().equals(innermostRow)) { + locMast = one; + break; } } } - if (locMast == null) { - List<Integer> rows = Utils.getGroupLoc(curRow); - List<LocMast> locMasts = locMastService.queryFreeLocMast0(rows, rows.size(), locTypeDto.getLocType1(), inoutEveryday); - if (!Cools.isEmpty(locMasts)) { - Integer innermostRow = Utils.getInnermostRow(locMasts.get(0).getLocNo()); - for (LocMast one : locMasts) { - if (one.getRow1().equals(innermostRow)) { - locMast = one; - break; - } - } - } - } -// LocMast locMast0 = locMastService.findOutMost(locMasts.stream().map(LocMast::getLocNo).distinct().collect(Collectors.toList())); -// if (!Cools.isEmpty(locMast0)) { -// locMast = locMast0; -// } - // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� todo:luxiaotao -// if (!locMastService.checkEmptyCount(locMast)) { -// locMast = null; -// } + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (!locMastService.checkEmptyCount(locMast, 10)) { locMast = null; } } - // 2.鏃犲簱浣嶆椂锛屾棤瑙嗗尯鍩熼攣瀹氾紝閲嶆柊鏌ユ壘搴撲綅 - - + // 2.1 楂樹綆棰戠鎺с�佸簱浣嶇粍鏃犻渶鍏ㄩ儴涓篛锛屾壘鍒板簱浣嶅搴旀繁搴撲綅涓嶈兘涓篜 R if (Cools.isEmpty(locMast)) { int sign = curRow; while (sign != 0 && Cools.isEmpty(locMast)) { - List<LocMast> locMasts = locMastService.queryFreeLocMastEnd(sign, locTypeDto.getLocType1()); + List<LocMast> locMasts = locMastService.queryFreeLocMastEnd1(sign, locTypeDto.getLocType1(), inoutEveryday); for (LocMast loc : locMasts) { // 鍚屽簱浣嶇粍瀵瑰簲鍏堕挶搴撲綅鏄惁涓� O.绌哄簱浣� boolean success = true; - List<String> outerLoc = Utils.getGroupOuterLoc(loc.getLocNo()); - for (String outerLocNo : outerLoc) { - if (!locMastService.selectById(outerLocNo).getLocSts().equals("O")) { + // 娴呭簱浣� + 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; @@ -378,38 +407,51 @@ } } - -// 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; -// } -// } -// } + // 2.鏃犲簱浣嶆椂锛屾棤瑙嗗尯鍩熼攣瀹氾紝閲嶆柊鏌ユ壘搴撲綅 + if (Cools.isEmpty(locMast)) { + int sign = curRow; + while (sign != 0 && Cools.isEmpty(locMast)) { + List<LocMast> locMasts = locMastService.queryFreeLocMastEnd(sign, locTypeDto.getLocType1()); + 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); + } + } // 3.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣� if (Cools.isEmpty(locMast)) { -- Gitblit v1.9.1