From a1334287fc3e563ff3494553d0c1e6fa390b314d Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期二, 24 三月 2026 16:54:44 +0800
Subject: [PATCH] 大屏缓存
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 85 ++++++++++++++++++++++++++++++------------
1 files changed, 61 insertions(+), 24 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 2208239..d96111d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -21,6 +21,8 @@
import com.zy.common.properties.SlaveProperties;
import com.zy.common.service.CommonService;
import com.zy.common.web.WcsController;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.WorkMastHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -78,6 +80,10 @@
private SlaveProperties slaveProperties;
@Autowired
private WaitPakinService waitPakinService;
+ @Autowired
+ private MonitorLocMapCacheService monitorLocMapCacheService;
+ @Autowired
+ private WorkMastHandler workMastHandler;
@Override
@Transactional
@@ -224,7 +230,7 @@
Integer outSta = staNo.getDevNo();
// 鑾峰彇璺緞
- StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, outSta);
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -300,10 +306,9 @@
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
// 鑾峰彇璺緞
int ioType = taskDto.isAll() ? 101 : 103;
- StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, staNo.getDevNo());
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
- int yz=staDesc.getStnNo()*10+Integer.valueOf(taskDto.getLocNo().substring(6));
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
wrkMast.setWrkNo(workNo);
@@ -312,7 +317,7 @@
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
wrkMast.setIoPri(13D); // 浼樺厛绾э細13
wrkMast.setCrnNo(locMast.getCrnNo());
- wrkMast.setSourceStaNo(yz); // 婧愮珯
+ wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
@@ -336,7 +341,7 @@
orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
}
LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locDto.getLocNo()).eq("matnr", locDto.getMatnr()));
- Mat mat=matService.selectOne(new EntityWrapper<Mat>().eq("matnr",locDto.getMatnr()));
+ Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", locDto.getMatnr()));
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(orderDetl);
wrkDetl.setZpallet(wrkMast.getBarcode());
@@ -475,12 +480,13 @@
wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
- wrkMast.setIoPri(10.0+locMast.getLocAttribute());//浼樺厛绾�
+ wrkMast.setIoPri(10.0D);//浼樺厛绾�
wrkMast.setFullPlt("N"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk("Y"); // 绌烘澘
wrkMast.setLinkMis("N");
+ wrkMast.setBarcode(locMast.getBarcode());
wrkMast.setAppeUser(userId);
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
@@ -607,14 +613,18 @@
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
- if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
+ long sts = wrkMast.getWrkSts();
+ if (sts == 4 || sts == 5 || sts == 14 || sts == 15 || sts == 20) {
throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
}
- // 鍏ュ簱 + 搴撲綅杞Щ
- if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
+ boolean inboundFinish = wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType() != null && wrkMast.getIoType() == 11);
+ boolean outboundFinish = wrkMast.getWrkSts() > 10 && (wrkMast.getIoType() == null || wrkMast.getIoType() != 11);
+ if (!inboundFinish && !outboundFinish) {
+ throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曟墜鍔ㄥ畬鎴�");
+ }
+ if (inboundFinish) {
wrkMast.setWrkSts(4L);
- // 鍑哄簱
- } else if (wrkMast.getWrkSts() > 10) {
+ } else {
wrkMast.setWrkSts(14L);
}
Date now = new Date();
@@ -622,11 +632,49 @@
wrkMast.setCrnEndTime(now);
wrkMast.setModiTime(now);
wrkMast.setModiUser(userId);
- // 瀹屾垚鎿嶄綔浜哄憳璁板綍
wrkMast.setManuType("鎵嬪姩瀹屾垚");
+ ReturnT<String> rt = workMastHandler.start(wrkMast);
+ if (!rt.isSuccess()) {
+ throw new CoolException(Cools.isEmpty(rt.getMsg()) ? "瀹屾垚澶勭悊澶辫触" : rt.getMsg());
+ }
+ // doOut 瀵� 103/107 涓嶈惤 15 鏃讹紝鎵嬪姩琛ラ綈 15锛涙簮搴撲綅 O 涓庡畾鏃朵换鍔� doOut 涓�鑷�
+ if (wrkMast.getWrkSts() == 14) {
+ wrkMast.setWrkSts(15L);
+ wrkMast.setModiTime(now);
+ wrkMast.setModiUser(userId);
+ if (!Cools.isEmpty(wrkMast.getSourceLocNo())) {
+ LocMast src = locMastService.selectById(wrkMast.getSourceLocNo());
+ if (!Cools.isEmpty(src) && !"O".equals(src.getLocSts())) {
+ Integer io = wrkMast.getIoType();
+ if (io != null && (io == 101 || io == 110)) {
+ src.setLocSts("O");
+ src.setModiTime(now);
+ src.setIoTime(now);
+ src.setModiUser(userId);
+ if (!locMastService.updateById(src)) {
+ throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+ }
+ } else if ("R".equals(src.getLocSts())) {
+ src.setLocSts("O");
+ src.setModiTime(now);
+ src.setIoTime(now);
+ src.setModiUser(userId);
+ if (!locMastService.updateById(src)) {
+ throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+ }
+ }
+ }
+ }
+ }
+ wrkMast.setManuType("鎵嬪姩瀹屾垚");
+ wrkMast.setModiUser(userId);
+ wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
}
+ monitorLocMapCacheService.clearQuietly();
}
@Override
@@ -852,18 +900,6 @@
}
-// // 璁㈠崟鍏宠仈
-// List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-// for (WrkDetl wrkDetl : wrkDetls) {
-// if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-// if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
-// throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-// }
-// // 鐢熸垚鏂扮殑鍑哄簱浣滀笟
-//// stockOutRe(wrkMast, wrkDetls);
-// }
-// }
-
// 鍙栨秷鎿嶄綔浜哄憳璁板綍
wrkMast.setManuType("鎵嬪姩鍙栨秷");
wrkMast.setModiUser(userId);
@@ -900,6 +936,7 @@
if (!wrkMastRes || !locMastRes) {
throw new CoolException("淇濆瓨鏁版嵁澶辫触");
}
+ monitorLocMapCacheService.clearQuietly();
}
@Override
--
Gitblit v1.9.1