From 644054957e6c926cee03cf99b1869ae2b1523ff4 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期一, 07 四月 2025 14:32:52 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/CommonService.java | 132 ++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 122 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 14ea695..b08da3d 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -160,7 +160,13 @@ throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); } // ===============>>>> 寮�濮嬫墽琛� - curRow = rowLastno.getCurrentRow(); + if (sourceStaNo == 118 || sourceStaNo == 122){ + curRow = rowLastno.getCurrentRow1(); + } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){ + curRow = rowLastno.getCurrentRow2(); + } else { + curRow = rowLastno.getCurrentRow(); + } if (!Cools.isEmpty(moveCrnNo) && moveCrnNo!=0){ crnNumber = moveCrnNo; @@ -172,7 +178,7 @@ } //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿 - for (int i = times; i < crnNumber; i++) { + for (int i = times; i < crnNumber*4; i++) { int[] locNecessaryParameters = Utils.LocNecessaryParameters(whsType, curRow, crnNumber); curRow = locNecessaryParameters[1]; crnNo = locNecessaryParameters[2]; @@ -181,6 +187,7 @@ nearRow = locNecessaryParameters[3]; List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); if (locMasts.size()<=10){ + nearRow = 0; times++; continue; } @@ -223,10 +230,20 @@ if (locMast2.getCrnNo()==1 || locMast2.getCrnNo()==6){ continue; } + if (sourceStaNo == 118 || sourceStaNo == 122){ + if (locMast2.getCrnNo()>3){ + continue; + } + } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){ + if (locMast2.getCrnNo()<4){ + continue; + } + } } LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast2.getLocNo())); if (!Cools.isEmpty(locDetl) && matnr.equals(locDetl.getMatnr())) { locMast = locMast1; + crnNo = locMast.getCrnNo(); break; } } @@ -244,6 +261,15 @@ if (sourceStaNo<200){ if (shallowLoc.getCrnNo()==1 || shallowLoc.getCrnNo()==6){ continue; + } + if (sourceStaNo == 118 || sourceStaNo == 122){ + if (shallowLoc.getCrnNo()>3){ + continue; + } + } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){ + if (shallowLoc.getCrnNo()<4){ + continue; + } } } if (VersionUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) { @@ -329,7 +355,13 @@ // 鏇存柊搴撲綅鎺掑彿 if (Utils.BooleanWhsTypeSta(whsType, staDescId) && Cools.isEmpty(locMast)) { - rowLastno.setCurrentRow(curRow); + if (sourceStaNo == 118 || sourceStaNo == 122){ + rowLastno.setCurrentRow1(curRow); + } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){ + rowLastno.setCurrentRow2(curRow); + } else { + rowLastno.setCurrentRow(curRow); + } rowLastnoService.updateById(rowLastno); } @@ -337,7 +369,11 @@ // 1.鎸夎鍒欐煡鎵惧簱浣� if (Cools.isEmpty(locMast) && crnNo != 0) { - List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O").orderBy("lev1",true)); + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("row1", nearRow) + .eq("loc_sts", "O") + .orderBy("lev1",true).orderBy("bay1",true)); + for (LocMast locMast1 : locMasts) { if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { continue; @@ -349,6 +385,35 @@ break; } } + + if (Cools.isEmpty(locMast)){ + for (LocMast locMast1 : locMasts) { + if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { + continue; + } + String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo()); + LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_no", shallowLoc).eq("loc_sts", "O")); + if (!Cools.isEmpty(locMast2)) { + locMast = locMast2; + break; + } else { + locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_no", shallowLoc).eq("loc_sts", "F")); + if (!Cools.isEmpty(locMast2)) { + locMast = locMast1; + break; + } else { + locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_no", shallowLoc).eq("loc_sts", "D")); + if (!Cools.isEmpty(locMast2)) { + locMast = locMast1; + break; + } + } + } + } + } } if (!Cools.isEmpty(locMast) && !basCrnpService.checkSiteError(crnNo, true)) { @@ -358,7 +423,7 @@ // 閫掑綊鏌ヨ if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) { // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊 - if (times < rowCount) { + if (times < rowCount*4) { times = times + 1; return getLocNoRun(1, staDescId, sourceStaNo, matnr, batch, grade,moveCrnNo, locTypeDto, times); } @@ -426,7 +491,13 @@ throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); } // ===============>>>> 寮�濮嬫墽琛� - curRow = rowLastno.getCurrentRow(); + if (sourceStaNo == 118 || sourceStaNo == 122){ + curRow = rowLastno.getCurrentRow1(); + } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){ + curRow = rowLastno.getCurrentRow2(); + } else { + curRow = rowLastno.getCurrentRow(); + } if (!Cools.isEmpty(moveCrnNo) && moveCrnNo!=0){ crnNumber = moveCrnNo; @@ -438,7 +509,7 @@ } //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿 - for (int i = times; i < crnNumber; i++) { + for (int i = times; i < crnNumber*4; i++) { int[] locNecessaryParameters = Utils.LocNecessaryParameters(whsType, curRow, crnNumber); curRow = locNecessaryParameters[1]; crnNo = locNecessaryParameters[2]; @@ -448,6 +519,7 @@ nearRow = locNecessaryParameters[3]; List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); if (locMasts.size()<=10){ + nearRow = 0; times++; continue; } @@ -461,6 +533,7 @@ nearRow = locNecessaryParameters[3]; List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); if (locMasts.size()<=10){ + nearRow = 0; times++; continue; } @@ -598,7 +671,13 @@ // 鏇存柊搴撲綅鎺掑彿 if (Utils.BooleanWhsTypeSta(whsType, staDescId) && Cools.isEmpty(locMast)) { - rowLastno.setCurrentRow(curRow); + if (sourceStaNo == 118 || sourceStaNo == 122){ + rowLastno.setCurrentRow1(curRow); + } else if (sourceStaNo == 120 || sourceStaNo == 121 || sourceStaNo == 123 || sourceStaNo == 171){ + rowLastno.setCurrentRow2(curRow); + } else { + rowLastno.setCurrentRow(curRow); + } rowLastnoService.updateById(rowLastno); } @@ -606,7 +685,11 @@ // 1.鎸夎鍒欐煡鎵惧簱浣� if (Cools.isEmpty(locMast) && crnNo != 0) { - List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O").orderBy("lev1",true)); + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("row1", nearRow) + .eq("loc_sts", "O") + .orderBy("lev1",true).orderBy("bay1",true)); + for (LocMast locMast1 : locMasts) { if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { continue; @@ -618,6 +701,35 @@ break; } } + + if (Cools.isEmpty(locMast)){ + for (LocMast locMast1 : locMasts) { + if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { + continue; + } + String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo()); + LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_no", shallowLoc).eq("loc_sts", "O")); + if (!Cools.isEmpty(locMast2)) { + locMast = locMast2; + break; + } else { + locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_no", shallowLoc).eq("loc_sts", "F")); + if (!Cools.isEmpty(locMast2)) { + locMast = locMast1; + break; + } else { + locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_no", shallowLoc).eq("loc_sts", "D")); + if (!Cools.isEmpty(locMast2)) { + locMast = locMast1; + break; + } + } + } + } + } } if (!Cools.isEmpty(locMast) && !basCrnpService.checkSiteError(crnNo, true)) { @@ -627,7 +739,7 @@ // 閫掑綊鏌ヨ if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) { // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊 - if (times < rowCount) { + if (times < rowCount*4) { times = times + 1; return getLocNoRun(1, staDescId, sourceStaNo, matnr, batch, grade,moveCrnNo, locTypeDto, times,rgvNo); } -- Gitblit v1.9.1