From 98ff94c52485dd502e10c061ae267bf24e5d1814 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 17 十一月 2023 08:26:15 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/CommonService.java | 116 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 98 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index b84f6d6..b7887ae 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -120,14 +120,22 @@ /** * 妫�绱㈠簱浣嶅彿 - * @param staDescId 璺緞ID + * + * @param staDescId 璺緞ID * @param sourceStaNo 婧愮珯 - * @param matNos 鐗╂枡鍙烽泦鍚� + * @param matNos 鐗╂枡鍙烽泦鍚� * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿 */ - public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto,int times) { + public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) { // 鐩爣搴撲綅 LocMast locMast = null; + + // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 + locMast = getLocNoStep4(staDescId, locTypeDto); + if (locMast != null) { + //鎵惧埌搴撲綅锛岃繑鍥瀌to + return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto + } //搴撲綅瑙勫垯 locMast = getLocNoStepRule(matNos, locTypeDto); @@ -136,15 +144,15 @@ return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto } - // 闈犺繎鎽嗘斁瑙勫垯 --- 鐩稿悓璁㈠崟鍙�, 鍚屽ぉ鍚岃鏍肩墿鏂� - locMast = getLocNoStep3(staDescId, matNos, locTypeDto); + //瀛樿揣鍒嗙被缂栫爜瑙勫垯 + locMast = getLocNoCodeStepRule(matNos, locTypeDto); if (locMast != null) { //鎵惧埌搴撲綅锛岃繑鍥瀌to return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto } - // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 - locMast = getLocNoStep4(staDescId, locTypeDto); + // 闈犺繎鎽嗘斁瑙勫垯 --- 鐩稿悓璁㈠崟鍙�, 鍚屽ぉ鍚岃鏍肩墿鏂� + locMast = getLocNoStep3(staDescId, matNos, locTypeDto); if (locMast != null) { //鎵惧埌搴撲綅锛岃繑鍥瀌to return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto @@ -163,7 +171,13 @@ //鎵惧埌搴撲綅锛岃繑鍥瀌to return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto } - + if(locTypeDto.getLocType1()==1){ + locTypeDto.setLocType1((short)2); + return getLocNo(staDescId, 1, sourceStaNo, matNos, locTypeDto,0); + }else if(locTypeDto.getLocType1()==2){ + locTypeDto.setLocType1((short)3); + return getLocNo(staDescId, 1, sourceStaNo, matNos, locTypeDto,0); + } //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父 throw new CoolException("娌℃湁绌哄簱浣�"); } @@ -189,9 +203,12 @@ List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd()); for (LocMast locMast0 : locMasts) { - //棰勭暀绌哄簱浣� - if (locMastService.checkEmptyCount(locMast0, 10)) { - return locMast0; + LocMast locMast1 = locMastService.findInnerLoc(locMast0.getLocNo());//妫�娴嬪悓搴撲綅缁勬繁搴撲綅鏄惁鏈夌┖闂插簱浣� + if (locMast1 != null) { + //棰勭暀绌哄簱浣� + if (locMastService.checkEmptyCount(locMast1, 10)) { + return locMast1; + } } } } @@ -206,6 +223,55 @@ return locMast; } + /** + * 搴撲綅缂栫爜瑙勫垯 + */ + private LocMast getLocNoCodeStepRule(List<String> matNos, LocTypeDto locTypeDto) { + LocMast locMast = null; + + //搴撲綅缂栫爜瑙勫垯鍙兘鍦ㄧ浉鍚岀紪鐮佽揣鐗╀腑鐢熸晥 + String matnr = ""; + for(String matNo : matNos){ + if("".equals(matnr)){ + matnr = matNo.substring(0, 4); + } + if(!matnr.equals(matNo.substring(0, 4))){ + return null; + } + } + + // 搴撳尯閿佸畾 + List<LocRule> locRules = locRuleService.findCode(Cools.isEmpty(matNos) ? null : matNos.get(0),null); + if (locRules == null || locRules.isEmpty()) { + return null;//娌℃湁搴撲綅瑙勫垯锛岃烦鍑哄綋鍓嶄换鍔� + } + + for (LocRule locRule : locRules) { + if (locRule == null) { + continue; + } + + List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd()); + for (LocMast locMast0 : locMasts) { + LocMast locMast1 = locMastService.findInnerLoc(locMast0.getLocNo());//妫�娴嬪悓搴撲綅缁勬繁搴撲綅鏄惁鏈夌┖闂插簱浣� + if (locMast1 != null) { + //棰勭暀绌哄簱浣� + if (locMastService.checkEmptyCount(locMast1, 10)) { + return locMast1; + } + } + } + } + +// if (locRules.get(0).getKeepGo() == 0) { +// //鎵句笉鍒扮┖搴撲綅锛屼笖绂佹缁х画瀵绘壘鍏朵粬闈炴贩杞藉尯鍩熷簱浣� +// //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父 +// throw new CoolException("瑙勫垯鍖哄煙娌℃湁绌哄簱浣�"); +// } + + return locMast; + } + // 闈犺繎鎽嗘斁瑙勫垯 --- 鐩稿悓璁㈠崟鍙�, 鍚屽ぉ鍚岃鏍肩墿鏂� private LocMast getLocNoStep3(Integer staDescId, List<String> matNos, LocTypeDto locTypeDto) { LocMast locMast = null; @@ -216,7 +282,7 @@ LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo()); if (null != locMast0) { // 娴呭簱浣嶇鍚堝昂瀵告娴� - if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { + if (VersionUtils.checkLocType(locMast0, locTypeDto)) { locMast = locMast0; } } @@ -225,10 +291,10 @@ //鍐嶅垽鏂簱瀛樻槑缁嗘。锛屾枡鍙风浉鍚岀殑鏄庣粏搴撲綅 List<String> locNos = locDetlService.getSameDetl(matNos.get(0)); for (String locNo : locNos) { - LocMast locMast0 = locMastService.findNearloc(locNo); + LocMast locMast0 = locMastService.findInnerLoc(locNo); if (null != locMast0) { // 娴呭簱浣嶇鍚堝昂瀵告娴� - if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { + if (VersionUtils.checkLocType(locMast0, locTypeDto)) { locMast = locMast0; break; } @@ -251,7 +317,7 @@ LocMast locMast0 = locMastService.findNearloc(wrkMast.getLocNo()); if (null != locMast0) { // 娴呭簱浣嶇鍚堝昂瀵告娴� - if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { + if (VersionUtils.checkLocType(locMast0, locTypeDto)) { locMast = locMast0; break; } @@ -259,13 +325,13 @@ } if (Cools.isEmpty(locMast)){ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() - .eq("loc_sts", "D")); + .eq("loc_sts", "O")); if (locMasts.size() > 0) { for (LocMast loc : locMasts) { LocMast locMast0 = locMastService.findNearloc(loc.getLocNo()); if (null != locMast0) { // 娴呭簱浣嶇鍚堝昂瀵告娴� - if (VersionUtils.locMoveCheckLocType(locMast0, locTypeDto)) { + if (VersionUtils.checkLocType(locMast0, locTypeDto)) { locMast = locMast0; break; } @@ -309,6 +375,7 @@ if (matNos.size() == 1) { //鍗曞搧 List<LocMast> locMasts = locMastService.selectAreaEmpty(locTypeDto.getLocType1(), 2);//鎼滅储鍗曞搧搴撲綅 + for (LocMast mast : locMasts) { List<String> groupLoc = Utils.getGroupLoc(mast.getLocNo()); if (!locMastService.checkAllLocEmpty(groupLoc)) { @@ -336,6 +403,19 @@ break; } } + + if (locMast == null) { + //鍗曞搧鎵句笉鍒板簱浣嶏紝鍏佽灏濊瘯浠庢贩鏀惧尯鍩熶腑杩涜鎼滅储 + List<LocMast> locMasts2 = locMastService.selectAreaEmpty(locTypeDto.getLocType1(), 1);//鎼滅储鍗曞搧搴撲綅 + //娣锋斁鍖哄煙鐩存帴鍙栫涓�涓嵆鍙� + for (LocMast mast : locMasts2) { + //棰勭暀绌哄簱浣� + if (locMastService.checkEmptyCount(mast, 10)) { + locMast = mast; + break; + } + } + } } return locMast; @@ -349,7 +429,7 @@ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", staDescId) .eq("stn_no", sourceStaNo) - .eq("crn_no",Utils.getLev(locNo));//鍊熺敤鍫嗗灈鏈哄彿瀛楁鍏呭綋妤煎眰鍙� + .eq("crn_no",Utils.stnNoToLiftNo(sourceStaNo));//鍊熺敤鍫嗗灈鏈哄彿瀛楁鍏呭綋鎻愬崌鏈哄彿 StaDesc staDesc = staDescService.selectOne(wrapper); if (Cools.isEmpty(staDesc)) { log.error("鍏ュ簱璺緞涓嶅瓨鍦�, staDescId={}, sourceStaNo={}", staDescId, sourceStaNo); -- Gitblit v1.9.1