From d0ed00b27764d916a0ef8ee9731a4be9daa64e74 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期三, 08 二月 2023 10:34:36 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/CommonService.java | 140 ++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 120 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 2809921..da2d0cf 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -57,6 +57,8 @@ private SlaveProperties slaveProperties; @Autowired private MatService matService; + @Autowired + private LocRuleService locRuleService; /** * 鐢熸垚宸ヤ綔鍙� @@ -121,19 +123,19 @@ whsType = 1; start = 1; end = 14; - if (null != wrkMastService.selectPakoutOfStaNo(104)) { - start = 8; - theCrnNo = 2; - } +// if (null != wrkMastService.selectPakoutOfStaNo(104)) { +// start = 8; +// theCrnNo = 2; +// } break; case 203: whsType = 2; start = 8; end = 21; - if (null != wrkMastService.selectPakoutOfStaNo(204)) { - end = 14; - theCrnNo = 2; - } +// if (null != wrkMastService.selectPakoutOfStaNo(204)) { +// end = 14; +// theCrnNo = 2; +// } break; default: throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳"); @@ -176,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; + } } } } @@ -198,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; + } } } } @@ -209,7 +244,6 @@ } // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋� - int currentRow = 1; if (null == locMast) { Shelves shelves = new Shelves(rowCount, crn_qty); @@ -321,13 +355,55 @@ } } } - // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� todo:luxiaotao -// if (!locMastService.checkEmptyCount(locMast)) { -// locMast = null; -// } + + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (!locMastService.checkEmptyCount(locMast, 10)) { locMast = null; } } - // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣� + // 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")) { + success = false; break; + } + } + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (!locMastService.checkEmptyCount(loc, 10)) { + success = false; + } + if (success) { + locMast = loc; + break; + } + } + sign = getCurRow(sign); + } + } + + // 3.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣� if (Cools.isEmpty(locMast)) { // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊 if (times < rowCount) { @@ -369,4 +445,28 @@ } } + public int getCurRow(int curRow){ + switch (curRow){ + case 1: + case 2: + case 8: + case 9: + case 10: + case 15: + case 16: + case 17: + return curRow+1; + case 5: + case 6: + case 7: + case 13: + case 14: + case 20: + case 21: + return curRow-1; + default: + return 0; + } + } + } -- Gitblit v1.9.1