From c3739bbeee3972d27423f6f1d71e2d20c30df240 Mon Sep 17 00:00:00 2001 From: 18516761980 <56479841@qq.com> Date: 星期日, 19 六月 2022 11:01:28 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/luxiaotao1123/zy-asrs into hylyasrs --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 158 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 130 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index e6f2d0d..0b8c247 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -13,9 +13,11 @@ import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.*; +import com.zy.asrs.utils.Utils; import com.zy.common.model.*; import com.zy.common.model.enums.IoWorkType; import com.zy.common.model.enums.WorkNoType; +import com.zy.common.properties.SlaveProperties; import com.zy.common.service.CommonService; import com.zy.common.web.WcsController; import lombok.extern.slf4j.Slf4j; @@ -69,6 +71,10 @@ private OrderDetlService orderDetlService; @Autowired private WcsController wcsController; + @Autowired + private RowLastnoService rowLastnoService; + @Autowired + private SlaveProperties slaveProperties; @Override @Transactional @@ -89,7 +95,7 @@ // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); - wrkMast.setIoTime(new Date()); + wrkMast.setIoTime(now); wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 wrkMast.setIoPri(13D); // 浼樺厛绾э細13 @@ -123,7 +129,7 @@ detlDtos.add(detlDto); } }); - wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId); + wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId, now); // 鏇存柊婧愮珯鐐逛俊鎭� sourceStaNo.setWrkNo(workNo); sourceStaNo.setModiUser(userId); @@ -353,10 +359,11 @@ LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0); int workNo = dto.getWorkNo(); + Date now = new Date(); // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); - wrkMast.setIoTime(new Date()); + wrkMast.setIoTime(now); wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID wrkMast.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱 wrkMast.setIoPri(10D); // 浼樺厛绾э細10 @@ -372,9 +379,9 @@ wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷 // 鎿嶄綔浜哄憳鏁版嵁 wrkMast.setAppeUser(userId); - wrkMast.setAppeTime(new Date()); + wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); - wrkMast.setModiTime(new Date()); + wrkMast.setModiTime(now); boolean res = wrkMastService.insert(wrkMast); if (!res) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); @@ -382,7 +389,7 @@ // 鏇存柊婧愮珯鐐逛俊鎭� sourceStaNo.setWrkNo(workNo); sourceStaNo.setModiUser(userId); - sourceStaNo.setModiTime(new Date()); + sourceStaNo.setModiTime(now); if (!basDevpService.updateById(sourceStaNo)){ throw new CoolException("鏇存柊婧愮珯澶辫触"); } @@ -391,7 +398,7 @@ if (locMast.getLocSts().equals("O")){ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 locMast.setModiUser(userId); - locMast.setModiTime(new Date()); + locMast.setModiTime(now); if (!locMastService.updateById(locMast)){ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); } @@ -425,10 +432,11 @@ if (Cools.isEmpty(sourceStaNo)) { throw new CoolException("妫�绱㈡簮绔欏け璐�"); } + Date now = new Date(); // 淇濆瓨宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); - wrkMast.setIoTime(new Date()); + wrkMast.setIoTime(now); wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱 wrkMast.setIoPri(10D); @@ -442,9 +450,9 @@ wrkMast.setEmptyMk("Y"); // 绌烘澘 wrkMast.setLinkMis("N"); wrkMast.setAppeUser(userId); - wrkMast.setAppeTime(new Date()); + wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); - wrkMast.setModiTime(new Date()); + wrkMast.setModiTime(now); boolean res = wrkMastService.insert(wrkMast); if (!res) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); @@ -453,7 +461,7 @@ if (locMast.getLocSts().equals("D")){ locMast.setLocSts("R"); locMast.setModiUser(userId); - locMast.setModiTime(new Date()); + locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�"); } @@ -497,12 +505,13 @@ if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); } + Date now = new Date(); // 鑾峰彇宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.PICK.type); // 淇濆瓨宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); - wrkMast.setIoTime(new Date()); + wrkMast.setIoTime(now); wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 wrkMast.setIoPri(10D); @@ -516,9 +525,9 @@ wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮� wrkMast.setLinkMis("N"); wrkMast.setAppeUser(userId); - wrkMast.setAppeTime(new Date()); + wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); - wrkMast.setModiTime(new Date()); + wrkMast.setModiTime(now); boolean res = wrkMastService.insert(wrkMast); if (!res) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); @@ -528,11 +537,11 @@ WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(locDetl); wrkDetl.setWrkNo(workNo); - wrkDetl.setIoTime(new Date()); + wrkDetl.setIoTime(now); wrkDetl.setAnfme(locDetl.getAnfme()); - wrkDetl.setAppeTime(new Date()); + wrkDetl.setAppeTime(now); wrkDetl.setAppeUser(userId); - wrkDetl.setModiTime(new Date()); + wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); @@ -542,7 +551,7 @@ if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) { sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害 sourceLoc.setModiUser(userId); - sourceLoc.setModiTime(new Date()); + sourceLoc.setModiTime(now); if (!locMastService.updateById(sourceLoc)){ throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); } @@ -552,7 +561,7 @@ // 淇敼鐩爣搴撲綅鐘舵�� if (loc.getLocSts().equals("O")) { loc.setLocSts("S"); // S.鍏ュ簱棰勭害 - loc.setModiTime(new Date()); + loc.setModiTime(now); loc.setModiUser(userId); if (!locMastService.updateById(loc)) { throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); @@ -705,7 +714,7 @@ } } locMast.setModiUser(userId); - locMast.setModiTime(new Date()); + locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�"); } @@ -725,11 +734,8 @@ if (wrkMast.getWrkSts() < 4) { locNo = wrkMast.getLocNo(); locSts = "O"; - /** - * 搴撲綅杞Щ - * 鍙栨秷鍚� 婧愬簱浣� ==>> F.鍦ㄥ簱 - * 鐩爣搴撲綅 ===>> O.绌哄簱浣� - **/ + + // 搴撲綅杞Щ if (wrkMast.getIoType() == 11) { // 搴撲綅杞Щ锛氭簮搴撲綅 LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); @@ -752,7 +758,7 @@ locSts = "D"; // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉� } else if (wrkMast.getIoType() == 11) { - locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"F":"D"; + locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F"; // 搴撲綅杞Щ锛氱洰鏍囧簱浣� LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); if (Cools.isEmpty(locMast)) { @@ -846,6 +852,7 @@ if (Cools.isEmpty(staDesc)) { throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�"); } + Date now = new Date(); // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�) Integer staNo = staDesc.getCrnStn(); // 鏇存柊宸ヤ綔妗f暟鎹姸鎬� @@ -855,7 +862,7 @@ wrkMast.setStaNo(staNo); // 鐩爣绔� wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣� wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌� - wrkMast.setModiTime(new Date()); + wrkMast.setModiTime(now); wrkMast.setModiUser(userId); if (!wrkMastService.updateById(wrkMast)) { throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�"); @@ -863,7 +870,7 @@ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴� LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); locMast.setLocSts("Q"); - locMast.setModiTime(new Date()); + locMast.setModiTime(now); locMast.setModiUser(userId); if (!locMastService.updateById(locMast)) { throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�"); @@ -880,4 +887,99 @@ return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, list); } + @Override + @Transactional + public String dealPreHaveStart(Integer wrkNo, Long userId) { + WrkMast wrkMast = wrkMastService.selectById(wrkNo); + if (wrkMast == null) { + throw new CoolException("浠诲姟宸插け鏁�"); + } + String locNo = wrkMast.getLocNo(); + LocMast locMast = locMastService.selectById(locNo); + assert locMast != null; + RowLastno rowLastno = rowLastnoService.findBySection(locMast.getRow1()); + assert rowLastno != null; + + // 鐩爣搴撲綅 + LocMast targetLoc = null; + + for (int curRow = rowLastno.getsRow(); curRow<=rowLastno.geteRow(); curRow++) { + + if (Utils.isShallowLoc(slaveProperties, curRow)) { + Integer deepRow = Utils.getDeepRow(slaveProperties, curRow); + targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1()); + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (!locMastService.checkEmptyCount(targetLoc)) { + continue; + } + } + if (Cools.isEmpty(targetLoc)) { + targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1()); + // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� + if (!locMastService.checkEmptyCount(targetLoc)) { + continue; + } + // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X + if (null != targetLoc && Utils.isShallowLoc(slaveProperties, targetLoc.getLocNo())) { + LocMast deepLoc = locMastService.selectById(Utils.getDeepLoc(slaveProperties, targetLoc.getLocNo())); + if (!deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("X")) { + continue; + } + } + // 鐩爣搴撲綅 ===>> 娣卞簱浣嶏紝 鍒欐牎楠屽叾娴呭簱浣嶆槸鍚︿负 O + if (null != targetLoc && Utils.isDeepLoc(slaveProperties, targetLoc.getLocNo())) { + LocMast shallowLoc = locMastService.selectById(Utils.getShallowLoc(slaveProperties, targetLoc.getLocNo())); + if (!shallowLoc.getLocSts().equals("O")) { + continue; + } + } + } + + if (!Cools.isEmpty(targetLoc)) { + break; + } + + } + + if (targetLoc == null) { + throw new CoolException("鎿嶄綔澶辫触锛屽綋鍓嶄粨搴撴壘涓嶅埌绌哄簱浣�"); + } + + Date now = new Date(); + // 淇敼宸ヤ綔妗� + StaDesc staDesc = staDescService.queryCrnStn(targetLoc.getCrnNo()); + if (Cools.isEmpty(staDesc)) { + throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�"); + } + wrkMast.setWrkSts(2L); + wrkMast.setLocNo(targetLoc.getLocNo()); + wrkMast.setStaNo(staDesc.getCrnStn()); + wrkMast.setCrnNo(targetLoc.getCrnNo()); + wrkMast.setModiTime(now); + wrkMast.setModiUser(userId); + wrkMast.setPreHave("N"); + if (!wrkMastService.updateById(wrkMast)) { + throw new CoolException("淇敼宸ヤ綔妗eけ璐�"); + } + // 淇敼搴撲綅鐘舵�� O ===>>> S + if (targetLoc.getLocSts().equals("O")){ + targetLoc.setLocSts("S"); // S.鍏ュ簱棰勭害 + targetLoc.setModiUser(userId); + targetLoc.setModiTime(now); + if (!locMastService.updateById(targetLoc)){ + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(targetLoc.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); + } + // 绂佺敤寮傚父搴撲綅 +// locMast.setLocSts("X"); // X.绂佺敤 +// locMast.setModiUser(userId); +// locMast.setModiTime(now); +// if (!locMastService.updateById(locMast)){ +// throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); +// } + return targetLoc.getLocNo(); + } + } -- Gitblit v1.9.1