From 62903a6bcced0b44f4d9a4ca4bfab2f30ecdec25 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期五, 01 十一月 2024 11:40:52 +0800 Subject: [PATCH] 入库呼叫agv取货修改 --- src/main/java/com/zy/common/service/CommonService.java | 229 +++++++++++++++++++++------------------------------------ 1 files changed, 84 insertions(+), 145 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 15bb57b..f8cb3b4 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -209,7 +209,7 @@ //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿 for (int i = times; i < crnNumber*2; i++) { - int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber); + int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber,whsType); curRow = locNecessaryParameters[1]; crnNo = locNecessaryParameters[2]; if (basCrnpService.checkSiteError(crnNo, true)) { @@ -369,10 +369,19 @@ // 1.鎸夎鍒欐煡鎵惧簱浣� if (Cools.isEmpty(locMast) && crnNo != 0) { - List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() - .eq("row1", nearRow) - .eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue()) - .orderBy("lev1",true).orderBy("bay1",true)); + List<LocMast> locMasts = null; + if (Utils.isNorth(sourceStaNo)){ + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("row1", nearRow) + .eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue()) + .orderBy("lev1",true).orderBy("bay1",false)); + }else { + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("row1", nearRow) + .eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue()) + .orderBy("lev1",true).orderBy("bay1",true)); + } + for (LocMast locMast1 : locMasts) { if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { continue; @@ -507,7 +516,7 @@ //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿 for (int i = times; i < crnNumber*2; i++) { - int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber); + int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber,whsType); rowCount = locNecessaryParameters[0]; curRow = locNecessaryParameters[1]; crnNo = locNecessaryParameters[2]; @@ -560,7 +569,7 @@ for (int i = 0; i < crnNumber*2; i++) { if (!(Utils.getRow(locMastGro.getLocNo())>nearRowW && Utils.getRow(locMastGro.getLocNo())<=curRowW) && !(Utils.getRow(locMastGro.getLocNo())<nearRowW && Utils.getRow(locMastGro.getLocNo())>=curRowW) ){ - int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRowW, crnNumber); + int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRowW, crnNumber,whsType); curRowW = locNecessaryParameters[1]; nearRowW = locNecessaryParameters[3]; }else { @@ -569,7 +578,7 @@ } //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣� - LocMast locMast2 = locMastService.selectLocByLocStsPakInF(curRowW,nearRowW,locMastGro,rowLastnoType.getType().longValue()); + LocMast locMast2 = locMastService.selectLocByLocStsPakInShuttleF(curRowW,nearRowW,locMastGro,rowLastnoType.getType().longValue()); //鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣嶅瓨鍦�&&闈炴渶澶栦晶搴撲綅&&鍏ュ簱鐘舵�� if (!Cools.isEmpty(locMast2) && Utils.getRow(locMast2.getLocNo())!=nearRowW && (locMast2.getLocSts().equals("S") || locMast2.getLocSts().equals("Q"))){ @@ -579,13 +588,13 @@ if (!Cools.isEmpty(wrkDetl) && matnr.equals(wrkDetl.getMatnr()) && batch.equals(batch.isEmpty() ? "":wrkDetl.getBatch()) && grade.equals(grade.isEmpty()? "":wrkDetl.getBrand())){ - int row2=0; - if (Utils.getRow(locMast2.getLocNo())>nearRowW){ - row2=Utils.getRow(locMast2.getLocNo())-1; + int bay2=0; + if (Utils.getBay(locMast2.getLocNo())>nearRowW){ + bay2=Utils.getBay(locMast2.getLocNo())-1; } else { - row2=Utils.getRow(locMast2.getLocNo())+1; + bay2=Utils.getBay(locMast2.getLocNo())+1; } - String targetLocNo = zerofill(String.valueOf(row2), 2) + locMast2.getLocNo().substring(2); + String targetLocNo = locMast2.getLocNo().substring(0,2) +zerofill(String.valueOf(bay2), 3) + locMast2.getLocNo().substring(5); locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",targetLocNo).eq("loc_sts","O")); if (Cools.isEmpty(locMast)){ continue; @@ -626,7 +635,7 @@ for (int i = 0; i < crnNumber*2; i++) { if (!(Utils.getRow(locMastGro.getLocNo())>nearRowW && Utils.getRow(locMastGro.getLocNo())<=curRowW) && !(Utils.getRow(locMastGro.getLocNo())<nearRowW && Utils.getRow(locMastGro.getLocNo())>=curRowW) ){ - int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRowW, crnNumber); + int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRowW, crnNumber,whsType); curRowW = locNecessaryParameters[1]; nearRowW = locNecessaryParameters[3]; }else { @@ -634,16 +643,16 @@ } } - LocMast locMast2 = locMastService.selectLocByLocStsPakInF(curRowW,nearRowW,locMastGro,rowLastnoType.getType().longValue()); + LocMast locMast2 = locMastService.selectLocByLocStsPakInShuttleF(curRowW,nearRowW,locMastGro,rowLastnoType.getType().longValue()); if (!Cools.isEmpty(locMast2) && Utils.getRow(locMast2.getLocNo())!=nearRowW && locMast2.getLocSts().equals("S")){ - int row2=0; - if (Utils.getRow(locMast2.getLocNo())>nearRowW){ - row2=Utils.getRow(locMast2.getLocNo())-1; - }else { - row2=Utils.getRow(locMast2.getLocNo())+1; + int bay2=0; + if (Utils.getBay(locMast2.getLocNo())>nearRowW){ + bay2=Utils.getBay(locMast2.getLocNo())-1; + } else { + bay2=Utils.getBay(locMast2.getLocNo())+1; } - String targetLocNo = zerofill(String.valueOf(row2), 2) + locMast2.getLocNo().substring(2); + String targetLocNo = locMast2.getLocNo().substring(0,2) +zerofill(String.valueOf(bay2), 3) + locMast2.getLocNo().substring(5); locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",targetLocNo).eq("loc_sts","O")); if (Cools.isEmpty(locMast)){ continue; @@ -652,117 +661,10 @@ } } } - - boolean signRule1 = false; - boolean signRule2 = false; - - - if (Utils.BooleanWhsTypeStaIoType(rowLastno)){ - // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //鍒嗙鐗� - if (!Cools.isEmpty(matnr) && staDescId == 1){ -// signRule1 = true; - } - // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //浜掗�氱増 - if (!Cools.isEmpty(matnr) && staDescId == 1) { - signRule2 = true; - } - - if (!Cools.isEmpty(matnr) && (staDescId == 11 || staDescId == 111)) { - signRule1 = true; - } - } - - if (signRule1){ - if (nearRow!=curRow){ - List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() - .eq("row1", nearRow).eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())); - for (LocMast locMast1:locMasts){ - //鑾峰彇宸烽亾 -// List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,locMast1.getLocNo(), curRow>nearRow); - //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣� - LocMast locMastF = locMastService.selectLocByLocStsPakInF(curRow,nearRow,locMast1,rowLastnoType.getType().longValue()); - if (!Cools.isEmpty(locMastF) && locMastF.getLocSts().equals("F")){ - LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMastF.getLocNo())); - if (!Cools.isEmpty(locDetl) && matnr.equals(locDetl.getMatnr()) - && batch.equals(batch.isEmpty() ? "" : locDetl.getBatch()) - && grade.equals(grade.isEmpty() ? "" : locDetl.getBrand())) { - //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅 - locMast = locMastService.selectLocByLocStsPakInO(curRow,nearRow,locMast1,rowLastnoType.getType().longValue()); - break; - } - } - } - } - }else if (signRule2){ - List<String> locNos = locDetlService.getSameDetlToday(matnr, sRow, eRow); - int nearbay = 0; - int nearlev = 0; - for (String locNo : locNos) { - int curRowW = curRow; //鐩镐技宸ヤ綔妗f 鏈�娣卞簱浣嶆帓 - int nearRowW = nearRow; //鐩镐技宸ヤ綔妗f 鏈�娴呭簱浣嶆帓 - if (Cools.isEmpty(locNo)){ - continue; - } - if (Utils.getRow(locNo)==nearRow){ - continue; - } - if (Utils.getBay(locNo)==nearbay && Utils.getLev(locNo)==nearlev){ - continue; - }else { - nearbay=Utils.getBay(locNo); - nearlev=Utils.getLev(locNo); - } -// List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,wrkMast.getLocNo(), curRow>nearRow); - LocMast locMastGro = locMastService.selectById(locNo); - - for (int i = 0; i < crnNumber*2; i++) { - if (!(Utils.getRow(locMastGro.getLocNo())>nearRowW && Utils.getRow(locMastGro.getLocNo())<=curRowW) && !(Utils.getRow(locMastGro.getLocNo())<nearRowW && Utils.getRow(locMastGro.getLocNo())>=curRowW) ){ - int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRowW, crnNumber); - curRowW = locNecessaryParameters[1]; - nearRowW = locNecessaryParameters[3]; - }else { - break; - } - } - - LocMast locMast2 = locMastService.selectLocByLocStsPakInF(curRowW,nearRowW,locMastGro,rowLastnoType.getType().longValue()); - - if (!Cools.isEmpty(locMast2) && Utils.getRow(locMast2.getLocNo())!=nearRowW && locMast2.getLocSts().equals("S")){ - int row2=0; - if (Utils.getRow(locMast2.getLocNo())>nearRowW){ - row2=Utils.getRow(locMast2.getLocNo())-1; - }else { - row2=Utils.getRow(locMast2.getLocNo())+1; - } - String targetLocNo = zerofill(String.valueOf(row2), 2) + locMast2.getLocNo().substring(2); - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",targetLocNo).eq("loc_sts","O")); - if (Cools.isEmpty(locMast)){ - continue; - } - break; - } - } - } - -// // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //鍒嗙鐗� -// if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(rowLastno)) { -// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); -// for (LocMast locMast1:locMasts){ -// //鑾峰彇宸烽亾 -//// List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,locMast1.getLocNo(), curRow>nearRow); -// //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣� -// LocMast locMastF = locMastService.selectLocByLocStsPakInF(curRow,nearRow,locMast1,rowLastnoType.getType().longValue()); -// if (!Cools.isEmpty(locMastF) && locMastF.getLocSts().equals("D")){ -// //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣� -// locMast = locMastService.selectLocByLocStsPakInO(curRow,nearRow,locMast1,rowLastnoType.getType().longValue()); -// break; -// } -// } -// } // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //浜掗�氱増 if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(rowLastno)) { - List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow)); + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow).eq("crn_no",7)); int nearbay = 0; int nearlev = 0; for (LocMast locMastSign:locMasts){ @@ -785,7 +687,7 @@ for (int i = 0; i < crnNumber*2; i++) { if (!(Utils.getRow(locMastGro.getLocNo())>nearRowW && Utils.getRow(locMastGro.getLocNo())<=curRowW) && !(Utils.getRow(locMastGro.getLocNo())<nearRowW && Utils.getRow(locMastGro.getLocNo())>=curRowW) ){ - int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRowW, crnNumber); + int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRowW, crnNumber,whsType); curRowW = locNecessaryParameters[1]; nearRowW = locNecessaryParameters[3]; }else { @@ -793,17 +695,17 @@ } } - LocMast locMast2 = locMastService.selectLocByLocStsPakInF(curRowW,nearRowW,locMastGro,rowLastnoType.getType().longValue()); + LocMast locMast2 = locMastService.selectLocByLocStsPakInShuttleF(curRowW,nearRowW,locMastGro,rowLastnoType.getType().longValue()); if (!Cools.isEmpty(locMast2) && Utils.getRow(locMast2.getLocNo())!=nearRowW && locMast2.getLocSts().equals("S")){ - int row2=0; - if (Utils.getRow(locMast2.getLocNo())>nearRowW){ - row2=Utils.getRow(locMast2.getLocNo())-1; - }else { - row2=Utils.getRow(locMast2.getLocNo())+1; + int bay2=0; + if (Utils.getBay(locMast2.getLocNo())>nearRowW){ + bay2=Utils.getBay(locMast2.getLocNo())-1; + } else { + bay2=Utils.getBay(locMast2.getLocNo())+1; } - String targetLocNo = zerofill(String.valueOf(row2), 2) + locMast2.getLocNo().substring(2); - locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",targetLocNo).eq("loc_sts","O")); + String targetLocNo = locMast2.getLocNo().substring(0,2) +zerofill(String.valueOf(bay2), 3) + locMast2.getLocNo().substring(5); + locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",targetLocNo).eq("crn_no",7).eq("loc_sts","O")); if (Cools.isEmpty(locMast)){ continue; } @@ -847,20 +749,54 @@ // 1.鎸夎鍒欐煡鎵惧簱浣� if (Cools.isEmpty(locMast) && crnNo != 0) { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() - .eq("row1", nearRow) + .eq("bay1", nearRow) .eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue()) - .orderBy("lev1",true).orderBy("bay1",true));//鏈�娴呭簱浣� + .eq("crn_no",7) + .orderBy("lev1",true).orderBy("row1",false));//鏈�娴呭簱浣� + for (LocMast locMast1 : locMasts) { + if (locMast != null){ + break; + } if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { continue; } if (Utils.BooleanWhsTypeStaIoType(rowLastno)){ //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅 - LocMast locMast2 = locMastService.selectLocByLocStsPakInO(curRow,nearRow,locMast1,rowLastnoType.getType().longValue()); - if (!Cools.isEmpty(locMast2) && locMast2.getBay1()==curRow) { - locMast = locMast2; - break; +// LocMast locMast2 = locMastService.selectLocByLocStsPakInO(curRow,nearRow,locMast1,rowLastnoType.getType().longValue()); +// if (!Cools.isEmpty(locMast2) && locMast2.getBay1()==curRow) { +// locMast = locMast2; +// break; +// } + List<LocMast> locMasts1 = null; + if (curRow < nearRow){ + locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("gro1", locMast1.getGro1()) + .eq("crn_no",7) + .orderBy("bay1",true)); + if(locMasts1.size() == 3 || (curRow>20 && locMasts1.size() == 2)){ + locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("gro1", locMast1.getGro1()) + .eq("crn_no",7) + .orderBy("bay1",false)); + } + }else { + locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("gro1", locMast1.getGro1()) + .eq("crn_no",7) + .orderBy("bay1",false)); } + if (Cools.isEmpty(locMasts1)) { + continue; + } + for (LocMast locMastGro1 : locMasts1) { + if (locMastGro1.getLocSts().equals("O")){ + locMast = locMastGro1; + break; + } + } + + } } @@ -957,7 +893,7 @@ } //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿 - int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber); + int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber,whsType); curRow = locNecessaryParameters[1]; crnNo = locNecessaryParameters[2]; rowCount = locNecessaryParameters[0]; @@ -968,6 +904,9 @@ BasDevp staNo = null; if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) { + + LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", curRow).eq("bay1", 2).eq("lev1", 1)); + crnNo = locMast1.getCrnNo(); // 鑾峰彇鐩爣绔� wrapper = new EntityWrapper<StaDesc>() .eq("type_no", staDescId) -- Gitblit v1.9.1