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 | 94 +++++++++++++++++++++++++++++++----------------
1 files changed, 62 insertions(+), 32 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 0c1fc9d..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
@@ -222,13 +228,9 @@
}
Integer outSta = staNo.getDevNo();
- //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202
-// if(locMast.getCrnNo()==2){
-// outSta = ioType == 101 ? 204 : 202;
-// }
// 鑾峰彇璺緞
- StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+ StaDesc staDesc = staDescService.queryCrnStn(ioType, outSta);
// 鐢熸垚宸ヤ綔鍙�
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
// 鐢熸垚宸ヤ綔妗�
@@ -237,7 +239,7 @@
wrkMast.setIoTime(now);
wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
- wrkMast.setIoPri(10.0+locMast.getLocAttribute()); // 浼樺厛绾�
+ wrkMast.setIoPri(10D); // 浼樺厛绾�
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
@@ -304,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);
@@ -316,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"); // 婊℃澘锛歒
@@ -340,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());
@@ -479,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);
@@ -537,9 +539,6 @@
LocMast loc = locMastService.selectById(locNo);
if (Cools.isEmpty(loc)){
throw new CoolException("鏈壘鍒板簱浣�");
- }
- if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
- throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
}
Date now = new Date();
// 鑾峰彇宸ヤ綔鍙�
@@ -614,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();
@@ -629,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
@@ -859,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);
@@ -907,6 +936,7 @@
if (!wrkMastRes || !locMastRes) {
throw new CoolException("淇濆瓨鏁版嵁澶辫触");
}
+ monitorLocMapCacheService.clearQuietly();
}
@Override
--
Gitblit v1.9.1