From cb7cb55b59f8dc51e06f2af5fe3ccaa117e9b615 Mon Sep 17 00:00:00 2001 From: TQS <56479841@qq.com> Date: 星期四, 02 二月 2023 18:35:44 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/CommonService.java | 97 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 88 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 74c5e4b..eae98cf 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; /** * 鐢熸垚宸ヤ綔鍙� @@ -310,14 +312,34 @@ // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺� 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; + + // 搴撳尯閿佸畾 + 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; + } + } + } + } + + 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; + } } } } @@ -331,7 +353,40 @@ // } } - // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣� + // 2.鏃犲簱浣嶆椂锛屾棤瑙嗗尯鍩熼攣瀹氾紝閲嶆柊鏌ユ壘搴撲綅 + 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)) { // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊 if (times < rowCount) { @@ -373,4 +428,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