From fc45de2fc49363738d5854446ad2ad33b58b1949 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期五, 15 十二月 2023 16:33:38 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/CommonService.java | 74 ++++++++++++++++++++++++++++++------- 1 files changed, 60 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 28708d3..813d3db 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; +import com.core.common.Arith; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.*; @@ -49,7 +50,7 @@ /** * 鐢熸垚宸ヤ綔鍙� - * @param wrkMk 0:鍏ュ簱 1 - 3000 ; 1:鎷f枡/骞舵澘/鐩樼偣 3001 - 6000 ; 2: 鍑哄簱 6001 -9000 ; 3:鍏朵粬 9001 -9999 + * @param wrkMk * @return workNo(宸ヤ綔鍙�) */ public int getWorkNo(Integer wrkMk) { @@ -96,9 +97,11 @@ */ @Transactional public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) { +// whsType = getWhsType(sourceStaNo, times); StartupDto startupDto = new StartupDto(); - // 鐢熸垚宸ヤ綔鍙� - int workNo = getWorkNo(0); + + + RowLastno rowLastno = rowLastnoService.selectById(whsType); if (Cools.isEmpty(rowLastno)) { throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); @@ -162,17 +165,22 @@ // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋� if (null == locMast) { Shelves shelves = new Shelves(rowCount, crn_qty); - if (whsType == 1) { - for (int i = 0; i < shelves.group; i ++) { - curRow = shelves.start(curRow); - if (curRow < 0) { - throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳"); - } - Integer crnNo1 = shelves.get(curRow); - if (basCrnpService.checkSiteError(crnNo1, true)) { - crnNo = crnNo1; - break; - } + 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; } } } @@ -194,6 +202,7 @@ if (!staNo.getAutoing().equals("Y")) { throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�"); } + // 鏇存柊搴撲綅鎺掑彿 rowLastno.setCurrentRow(curRow); rowLastnoService.updateById(rowLastno); @@ -205,6 +214,7 @@ if (Utils.isShallowLoc(slaveProperties, curRow)) { Integer deepRow = Utils.getDeepRow(slaveProperties, curRow); locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1()); + // todo:luxiaotao 濡傛灉鐢ㄦ祬鎺掓壘鍒扮殑娣卞簱浣嶏紝閭d箞鍒欓渶瑕佸垽鏂繖涓繁搴撲綅瀵瑰簲鐨勬祬搴撲綅鏄惁鏈夎揣锛團銆乆銆丏锛� // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� if (!locMastService.checkEmptyCount(locMast)) { locMast = null; @@ -251,6 +261,8 @@ } String locNo = locMast.getLocNo(); + // 鐢熸垚宸ヤ綔鍙� + int workNo = getWorkNo(0); // 杩斿洖dto startupDto.setWorkNo(workNo); startupDto.setCrnNo(crnNo); @@ -275,4 +287,38 @@ } } + /** + * 鏍规嵁鍏ュ簱绔欒幏鍙栧簱浣嶆帓鍙峰垎閰� + */ + private Integer getWhsType(Integer sourceStaNo, int times) { + if (times >= 16) { + return 4; + } + 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); + } + } + } -- Gitblit v1.9.1