From c6ab1a516d8398de65512fcd380d89e46ec8e430 Mon Sep 17 00:00:00 2001 From: mrzhssss <pro6@qq.com> Date: 星期五, 27 五月 2022 15:31:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/jkasrs' into jkasrs --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 99 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 97 insertions(+), 2 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 dab964d..25c72b6 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 @@ -881,9 +887,98 @@ } @Override - public StartupDto dealPreHaveStart(Integer wrkNo, Long userId) { + @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; - return 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