From ddc462832f99c124fbcc9653a0878e18768224cd Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期三, 11 六月 2025 16:19:13 +0800 Subject: [PATCH] #修复bug,检索该排全部空库位进行判断 --- src/main/java/com/zy/common/service/CommonService.java | 143 +++++++++++++++++------------------------------ 1 files changed, 52 insertions(+), 91 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 7c14d77..ad69ab8 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -97,27 +97,22 @@ */ @Transactional public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) { -// whsType = getWhsType(sourceStaNo, times); - switch (sourceStaNo){ - case 101: - case 109: - case 117: - whsType=1; - break; - case 201: - whsType=2; - break; - case 207: - whsType=3; - break; - case 213: - whsType=4; - break; + + if (sourceStaNo < 200){ + whsType = 1; + } else if (sourceStaNo > 199 && sourceStaNo < 300){ + whsType = 2; + } else if (sourceStaNo > 299){ + whsType = 3; } + // 鐩爣鍫嗗灈鏈哄彿 + int crnNo = whsType; +// if (!basCrnpService.checkSiteError(crnNo, true)){ +// throw new CoolException("娌℃湁鍙敤鐨勫爢鍨涙満"); +// } + StartupDto startupDto = new StartupDto(); - - RowLastno rowLastno = rowLastnoService.selectById(whsType); if (Cools.isEmpty(rowLastno)) { @@ -130,8 +125,7 @@ int eRow = rowLastno.geteRow(); int crn_qty = rowLastno.getCrnQty(); int rowCount = eRow - sRow + 1; - // 鐩爣鍫嗗灈鏈哄彿 - int crnNo = 0; + // 鐩爣搴撲綅 LocMast locMast = null; @@ -149,7 +143,6 @@ if (VersionUtils.locMoveCheckLocType(shallowLoc, locTypeDto)) { if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) { locMast = shallowLoc; - crnNo = locMast.getCrnNo(); break; } } @@ -171,7 +164,6 @@ if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) { if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) { locMast = shallowLoc; - crnNo = locMast.getCrnNo(); break; } } @@ -180,31 +172,10 @@ } // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋� - if (null == locMast) { - Shelves shelves = new Shelves(rowCount, crn_qty); - int divides = (int) Arith.divides(1, curRow - 1, 4); - curRow = (int) Arith.remainder(curRow, 4); - if (curRow == 0) { - curRow = 4; - } - for (int i = 0; i < shelves.group; i ++) { - curRow = shelves.start(curRow); - if (curRow < 0) { - throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳"); - } - Integer crnNo1 = shelves.get(curRow); - crnNo1 = crnNo1 + divides*1; - if (basCrnpService.checkSiteError(crnNo1, true)) { - crnNo = crnNo1; - curRow = curRow + divides*4; - break; - } - } + if (null == locMast){ + curRow = getCurRow(curRow); } - if (crnNo == 0) { - throw new CoolException("娌℃湁鍙敤鐨勫爢鍨涙満"); - } // 鑾峰彇鐩爣绔� Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", staDescId) @@ -228,7 +199,7 @@ // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺� if (locMast == null) { - if (Utils.isShallowLoc(slaveProperties, curRow)) { + if ( Utils.isShallowLoc(slaveProperties, curRow)) { Integer deepRow = Utils.getDeepRow(slaveProperties, curRow); locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1()); // todo:luxiaotao 濡傛灉鐢ㄦ祬鎺掓壘鍒扮殑娣卞簱浣嶏紝閭d箞鍒欓渶瑕佸垽鏂繖涓繁搴撲綅瀵瑰簲鐨勬祬搴撲綅鏄惁鏈夎揣锛團銆乆銆丏锛� @@ -238,23 +209,33 @@ } } if (Cools.isEmpty(locMast)) { - locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1()); - // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� - if (!locMastService.checkEmptyCount(locMast)) { - locMast = null; - } - // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X - if (null != locMast && Utils.isShallowLoc(slaveProperties, locMast.getLocNo())) { - LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, locMast.getLocNo())); - if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) { - locMast = null; + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("row1", curRow) + .eq("loc_sts", "O") + .eq("loc_type1", locTypeDto.getLocType1()) + .orderBy("lev1",true).orderBy("bay1",true)); + for (LocMast locMast1 : locMasts) { + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (!locMastService.checkEmptyCount(locMast1)) { + locMast1 = null; } - } - // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O - if (null != locMast && Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) { - LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, locMast.getLocNo())); - if (!shallowLoc.getLocSts().equals("O")) { - locMast = null; + // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X + if (null != locMast1 && Utils.isShallowLoc(slaveProperties, locMast1.getLocNo())) { + LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, locMast1.getLocNo())); + if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) { + locMast1 = null; + } + } + // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O + if (null != locMast1 && Utils.isDeepLoc(slaveProperties, locMast1.getLocNo())) { + LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, locMast1.getLocNo())); + if (!shallowLoc.getLocSts().equals("O")) { + locMast1 = null; + } + } + if (!Cools.isEmpty(locMast1)) { + locMast = locMast1; + break; } } } @@ -276,6 +257,7 @@ log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times); throw new CoolException("娌℃湁绌哄簱浣�"); } + String locNo = locMast.getLocNo(); // 鐢熸垚宸ヤ綔鍙� @@ -307,35 +289,14 @@ /** * 鏍规嵁鍏ュ簱绔欒幏鍙栧簱浣嶆帓鍙峰垎閰� */ - private Integer getWhsType(Integer sourceStaNo, int times) { - if (times >= 16) { - return 4; + private Integer getCurRow(Integer curRow) { + if (Utils.isDeepLocLeft(slaveProperties,curRow)){ + curRow=curRow+3; + }else if (Utils.isDeepLocLeft(slaveProperties,curRow-1)){ + curRow=curRow+1; + }else { + curRow=curRow-2; } - switch (sourceStaNo) { - case 173: - case 176: - case 180: - case 185: - return 1; - case 189: - case 194: - case 198: - case 202: - return 2; - case 206: -// case 211: -// case 215: -// case 219: -// case 223: - case 227: - return 3; - case 305: - case 303: - case 301: - return 4; - default: - throw new CoolException("鏍规嵁鍏ュ簱绔欒幏鍙栧簱浣嶆帓鍙峰垎閰嶅け璐ワ紝鍏ュ簱绔欙細" + sourceStaNo); - } + return curRow; } - } -- Gitblit v1.9.1