From 3d04b112c510fd14617ab79dad1ecd51143eca2a Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期三, 06 十一月 2024 16:17:51 +0800 Subject: [PATCH] 订单明细打印物料二维码 --- src/main/java/com/zy/common/service/CommonService.java | 374 +++++++++++++---------------------------------------- 1 files changed, 93 insertions(+), 281 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..7e9701e 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]; @@ -533,283 +542,40 @@ int nearbay = 0; //鐩镐技宸ヤ綔妗f 鐩爣搴撲綅鍒� int nearlev = 0; //鐩镐技宸ヤ綔妗f 鐩爣搴撲綅灞� for (WrkMast wrkMast:wrkMasts){ - int curRowW = curRow; //鐩镐技宸ヤ綔妗f 鏈�娣卞簱浣嶆帓 - int nearRowW = nearRow; //鐩镐技宸ヤ綔妗f 鏈�娴呭簱浣嶆帓 - if (Cools.isEmpty(wrkMast.getLocNo())){ - continue; - } - //鐩爣鎺掍负鏈�澶栧眰鎺� - if (Utils.getRow(wrkMast.getLocNo())==nearRow){ - continue; - } - //璧峰绔欎笉涓�鑷� - if (!wrkMast.getSourceStaNo().equals(sourceStaNo)){ - continue; - } - //鐩稿悓鍒椼�佸眰杩囨护 - if (Utils.getBay(wrkMast.getLocNo())==nearbay && Utils.getLev(wrkMast.getLocNo())==nearlev){ - continue; + LocMast locMastWrk = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo())); + List<LocMast> locMasts = new ArrayList<>(); + if (locMastWrk.getBay1() >=1 && locMastWrk.getBay1()<=2){ + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("gro1", locMastWrk.getGro1()) + .eq("crn_no", 7) + .orderBy("bay1", true)); + }else if (locMastWrk.getBay1() >=4 && locMastWrk.getBay1()<=12){ + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("gro1", locMastWrk.getGro1()) + .eq("crn_no", 7) + .orderBy("bay1", false)); }else { - nearbay=Utils.getBay(wrkMast.getLocNo()); - nearlev=Utils.getLev(wrkMast.getLocNo()); + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("gro1", locMastWrk.getGro1()) + .eq("crn_no", 7) + .orderBy("bay1", true)); } - - //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撳苟鎺掑簭 -// List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,wrkMast.getLocNo(), curRow>nearRow); - LocMast locMastGro = locMastService.selectById(wrkMast.getLocNo()); - - 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 { + if (Cools.isEmpty(locMasts)) { + continue; + } + for (LocMast locMastGro1 : locMasts) { + if (locMastGro1.getLocSts().equals("P") || locMastGro1.getLocSts().equals("Q")) { + break; + } + if (locMastGro1.getLocSts().equals("O") || locMastGro1.getLocSts().equals("S")){ + locMast = locMastGro1; break; } } - //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣� - LocMast locMast2 = locMastService.selectLocByLocStsPakInF(curRowW,nearRowW,locMastGro,rowLastnoType.getType().longValue()); - //鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣嶅瓨鍦�&&闈炴渶澶栦晶搴撲綅&&鍏ュ簱鐘舵�� - if (!Cools.isEmpty(locMast2) && Utils.getRow(locMast2.getLocNo())!=nearRowW && (locMast2.getLocSts().equals("S") || locMast2.getLocSts().equals("Q"))){ - //鑾峰彇搴撳瓨鏄庣粏 - WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); - //鍒ゆ柇鍚岃鏍肩墿鏂� - 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; - } 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 (Cools.isEmpty(locMast) && staDescId == 10) { - List<WrkMast> wrkMasts =wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type",10).eq("crn_no",crnNo).eq("whs_type",rowLastnoType.getType().longValue())); - int nearbay = 0; - int nearlev = 0; - for (WrkMast wrkMast:wrkMasts){ - int curRowW = curRow; //鐩镐技宸ヤ綔妗f 鏈�娣卞簱浣嶆帓 - int nearRowW = nearRow; //鐩镐技宸ヤ綔妗f 鏈�娴呭簱浣嶆帓 - if (Cools.isEmpty(wrkMast.getLocNo())){ - continue; - } - if (Utils.getRow(wrkMast.getLocNo())==nearRow){ - continue; - } - //璧峰绔欎笉涓�鑷� - if (!wrkMast.getSourceStaNo().equals(sourceStaNo)){ - continue; - } - if (Utils.getBay(wrkMast.getLocNo())==nearbay && Utils.getLev(wrkMast.getLocNo())==nearlev){ - continue; - }else { - nearbay=Utils.getBay(wrkMast.getLocNo()); - nearlev=Utils.getLev(wrkMast.getLocNo()); - } -// List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,wrkMast.getLocNo(), curRow>nearRow); - LocMast locMastGro = locMastService.selectById(wrkMast.getLocNo()); - - 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; - } - } - } - - 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)); - int nearbay = 0; - int nearlev = 0; - for (LocMast locMastSign:locMasts){ - int curRowW = curRow; //鐩镐技宸ヤ綔妗f 鏈�娣卞簱浣嶆帓 - int nearRowW = nearRow; //鐩镐技宸ヤ綔妗f 鏈�娴呭簱浣嶆帓 - if (Cools.isEmpty(locMastSign.getLocNo())){ - continue; - } - if (Utils.getRow(locMastSign.getLocNo())==nearRow){ - continue; - } - if (Utils.getBay(locMastSign.getLocNo())==nearbay && Utils.getLev(locMastSign.getLocNo())==nearlev){ - continue; - }else { - nearbay=Utils.getBay(locMastSign.getLocNo()); - nearlev=Utils.getLev(locMastSign.getLocNo()); - } -// List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,wrkMast.getLocNo(), curRow>nearRow); - LocMast locMastGro = locMastService.selectById(locMastSign.getLocNo()); - - 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; - } - } } Wrapper<StaDesc> wrapper = null; @@ -847,20 +613,63 @@ // 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("F")){ + LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_No", locMastGro1.getLocNo())); + if (!locDetl.getMatnr().equals(matnr) || !locDetl.getBatch().equals(batch)){ + break; + } + } + if (locMastGro1.getLocSts().equals("P") || locMastGro1.getLocSts().equals("Q")) { + break; + } + if (locMastGro1.getLocSts().equals("O")){ + locMast = locMastGro1; + break; + } + } + + } } @@ -957,7 +766,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 +777,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