From 8c189a920cd9ce13729626310f20014a427dc9cb Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期六, 21 五月 2022 15:59:05 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 111 insertions(+), 4 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 a418ebe..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
@@ -220,6 +226,7 @@
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("N");
+ wrkMast.setBarcode(locMast.getBarcode());
wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
@@ -293,6 +300,7 @@
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("N");
+ wrkMast.setBarcode(locMast.getBarcode());
wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
@@ -304,8 +312,12 @@
for (LocDto locDto : taskDto.getLocDtos()) {
if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+ }
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(orderDetl);
+ wrkDetl.setZpallet(wrkMast.getBarcode());
wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
wrkDetl.setBatch(locDto.getBatch());
@@ -746,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)) {
@@ -824,9 +836,9 @@
throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
}
// 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
- if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
- }
+// if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+// }
// 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
@@ -874,4 +886,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