From 6494d25e5677f2e81c898006b3aada6260511f33 Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期四, 24 七月 2025 09:41:32 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/CommonService.java | 143 +++++++++++++++++++---------------------------- 1 files changed, 57 insertions(+), 86 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index eb95817..ddd63f7 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -9,6 +9,7 @@ import com.zy.asrs.entity.*; import com.zy.asrs.entity.result.KeyValueVo; import com.zy.asrs.service.*; +import com.zy.asrs.service.impl.MatServiceImpl; import com.zy.asrs.utils.Utils; import com.zy.asrs.utils.VersionUtils; import com.zy.common.model.LocTypeDto; @@ -52,6 +53,8 @@ private LocDetlService locDetlService; @Autowired private SlaveProperties slaveProperties; + @Autowired + private MatServiceImpl matService; /** * 鐢熸垚宸ヤ綔鍙� @@ -119,7 +122,7 @@ */ @Transactional public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, LocTypeDto locTypeDto) { - whsType = Utils.GetWhsType(sourceStaNo); + whsType = Utils.GetWhsType(sourceStaNo); return getLocNoRun(whsType,staDescId,sourceStaNo,matnr,batch,grade,0,locTypeDto,0); } @@ -134,8 +137,12 @@ */ @Transactional public StartupDto getLocNoRun(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, Integer moveCrnNo, LocTypeDto locTypeDto, int times) { + long start = System.currentTimeMillis(); + int tagId = 0; if (Cools.isEmpty(matnr)) { //鐗╂枡鍙� matnr = ""; + }else{ + tagId = matService.getTagIdByMatnr(matnr); } if (Cools.isEmpty(batch)) { //绠卞彿 batch = ""; @@ -156,7 +163,6 @@ int sRow = rowLastno.getsRow(); int eRow = rowLastno.geteRow(); int crnNumber = rowLastno.getCrnQty(); - if (Cools.isEmpty(rowLastno)) { throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); } @@ -165,11 +171,7 @@ if (!Cools.isEmpty(moveCrnNo) && moveCrnNo!=0){ crnNumber = moveCrnNo; - if (times==0){ - curRow = moveCrnNo*4-1; - }else { - curRow = moveCrnNo*4-2; - } + curRow = eRow; } //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿 @@ -182,7 +184,7 @@ nearRow = locNecessaryParameters[3]; List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type",100)); - if (locMasts.size()-crnCountO<=2){ + if (locMasts.size()-crnCountO<=0){ times++; continue; } @@ -191,9 +193,9 @@ times++; } } - if (nearRow == 0) { - throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満"); - } +// if (nearRow == 0) { +// throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満"); +// } boolean signRule1 = false; boolean signRule2 = false; @@ -202,7 +204,7 @@ if (Utils.BooleanWhsTypeStaIoType(whsType)){ // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //鍒嗙鐗� if (!Cools.isEmpty(matnr) && staDescId == 1){ - signRule1 = true; + signRule1 = false; } // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //浜掗�氱増 if (!Cools.isEmpty(matnr) && staDescId == 1) { @@ -253,21 +255,7 @@ } } -// // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //鍒嗙鐗� -// if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(whsType)) { -// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O")); -// 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)); -// if (!Cools.isEmpty(locMast2) && locMast2.getLocSts().equals("D")){ -// locMast = locMast1; -// break; -// } -// } -// } + // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //浜掗�氱増 if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(whsType)) { @@ -329,86 +317,67 @@ // 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).orderBy("bay1",true)); - for (LocMast locMast1 : locMasts) { - if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { - continue; - } - if (Utils.BooleanWhsTypeStaIoType(whsType)){ - 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 { - if (!Cools.isEmpty(locMast1)) { - locMast = locMast1; - break; - } - } + List<LocMast> locMasts = null; + if(sourceStaNo % 100 > 10){ + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("row1", nearRow) + .eq("loc_sts", "O") + .orderBy("lev1",true).orderBy("bay1",false)); + }else{ + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("row1", nearRow) + .eq("loc_sts", "O") + .orderBy("lev1",true).orderBy("bay1",true)); } + if (Cools.isEmpty(locMast) && Utils.BooleanWhsTypeStaIoType(whsType)){ + if(tagId == 226){ + List<LocMast> filteredLocMasts = new ArrayList<>(); + for (LocMast loc : locMasts) { + Integer lev = loc.getLev1(); + if (lev != null && lev >= 6 && lev <= 10) { + filteredLocMasts.add(loc); + } + } + locMasts = filteredLocMasts; + }else{ + List<LocMast> filteredLocMasts = new ArrayList<>(); + for (LocMast loc : locMasts) { + Integer lev = loc.getLev1(); + if (lev != null && lev >= 1 && lev <= 5) { + filteredLocMasts.add(loc); + } + } + locMasts = filteredLocMasts; + } for (LocMast locMast1 : locMasts) { if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) { continue; } - if (Utils.BooleanWhsTypeStaIoType(whsType)){ - 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 = locMast2; - break; - } else { - locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("loc_no", shallowLoc).eq("loc_sts", "D")); - if (!Cools.isEmpty(locMast2)) { - locMast = locMast2; - break; - } - } - } - } else { - if (!Cools.isEmpty(locMast1)) { - locMast = locMast1; - break; - } + + if (!Cools.isEmpty(locMast1)) { + locMast = locMast1; + break; } + } } } - if (!Cools.isEmpty(locMast) && !basCrnpService.checkSiteError(crnNo, true)) { + if (!basCrnpService.checkSiteError(crnNo, true)) { locMast = null; } // 閫掑綊鏌ヨ if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) { // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊 - if (times < rowCount*2) { + if (times < 1) { times = times + 1; - return getLocNoRun(whsType, staDescId, sourceStaNo, matnr, batch, grade,moveCrnNo, locTypeDto, times); + return getLocNoRun(whsType, staDescId, sourceStaNo, matnr, batch, grade,moveCrnNo+1, locTypeDto, times); } -// // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣� -// if (locTypeDto.getLocType1() < 2) { -// int i = locTypeDto.getLocType1() + 1; -// locTypeDto.setLocType1((short)i); -// return getLocNo(1, staDescId, sourceStaNo, matnr,batch,grade, locTypeDto, 0); -// } log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times); - throw new CoolException("娌℃湁绌哄簱浣�"); + throw new CoolException("娌℃湁绌哄簱浣嶆垨鍫嗗灈鏈哄紓甯�"); } String locNo = locMast.getLocNo(); @@ -419,6 +388,8 @@ startupDto.setCrnNo(crnNo); startupDto.setSourceStaNo(sourceStaNo); startupDto.setLocNo(locNo); + log.info("搴撲綅妫�绱㈣�楁椂: {} ms", System.currentTimeMillis() - start); + return startupDto; } } -- Gitblit v1.9.1