From 7c98d1f6fcc0b7c053e51913ea5b1888863253ac Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期一, 30 五月 2022 07:45:43 +0800
Subject: [PATCH] #
---
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