From e0cee09916a315d6012b8d44b4c493c4f3adc5d1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 31 三月 2026 17:05:49 +0800
Subject: [PATCH] #出入库模式
---
src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java | 32 +++++++++++++++++++++++++-------
1 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
index e4ee5c4..834800b 100644
--- a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
@@ -14,6 +14,7 @@
import com.zy.asrs.service.BasDualCrnpService;
import com.zy.asrs.service.BasStationService;
import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkAnalysisService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.utils.NotifyUtils;
import com.zy.asrs.utils.Utils;
@@ -23,6 +24,7 @@
import com.zy.core.News;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
+import com.zy.core.dispatch.StationCommandDispatcher;
import com.zy.core.enums.*;
import com.zy.core.model.StationObjModel;
import com.zy.core.model.Task;
@@ -66,6 +68,10 @@
private NotifyUtils notifyUtils;
@Autowired
private StationOperateProcessUtils stationOperateProcessUtils;
+ @Autowired
+ private WrkAnalysisService wrkAnalysisService;
+ @Autowired
+ private StationCommandDispatcher stationCommandDispatcher;
private static final String CRN_OUT_REQUIRE_STATION_OUT_ENABLE_CONFIG = "crnOutRequireStationOutEnable";
@@ -354,7 +360,7 @@
.in("wrk_no", taskList)
);
for (WrkMast wrkMast : wrkMasts) {
- if(wrkMast.getWrkSts() != WrkStsType.INBOUND_DEVICE_RUN.sts){
+ if(wrkMast.getWrkSts() != WrkStsType.INBOUND_STATION_RUN_COMPLETE.sts){
continue;
}
list.add(wrkMast);
@@ -412,7 +418,7 @@
Integer crnNo = basDualCrnp.getCrnNo();
- if (wrkMast.getWrkSts() != WrkStsType.INBOUND_DEVICE_RUN.sts) {
+ if (wrkMast.getWrkSts() != WrkStsType.INBOUND_STATION_RUN_COMPLETE.sts) {
return null;
}
@@ -509,11 +515,14 @@
commandList.add(pickCommand);
commandList.add(putCommand);
+ Date now = new Date();
wrkMast.setWrkSts(WrkStsType.INBOUND_RUN.sts);
wrkMast.setDualCrnNo(crnNo);
wrkMast.setSystemMsg("");
- wrkMast.setIoTime(new Date());
+ wrkMast.setIoTime(now);
+ wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
+ wrkAnalysisService.markCraneStart(wrkMast, now);
SendDualCrnCommandParam sendDualCrnCommandParam = new SendDualCrnCommandParam();
sendDualCrnCommandParam.setCrnNo(crnNo);
sendDualCrnCommandParam.setStation(station);
@@ -621,11 +630,14 @@
commandList.add(pickCommand);
commandList.add(putCommand);
+ Date now = new Date();
wrkMast.setWrkSts(WrkStsType.OUTBOUND_RUN.sts);
wrkMast.setDualCrnNo(crnNo);
wrkMast.setSystemMsg("");
- wrkMast.setIoTime(new Date());
+ wrkMast.setIoTime(now);
+ wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
+ wrkAnalysisService.markCraneStart(wrkMast, now);
redisUtil.set(RedisKeyType.DUAL_CRN_OUT_TASK_STATION_INFO.key + wrkMast.getWrkNo(), JSON.toJSONString(stationObjModel, SerializerFeature.DisableCircularReferenceDetect), 60 * 60 * 24);
SendDualCrnCommandParam sendDualCrnCommandParam = new SendDualCrnCommandParam();
@@ -706,11 +718,14 @@
commandList.add(pickCommand);
commandList.add(putCommand);
+ Date now = new Date();
wrkMast.setWrkSts(WrkStsType.LOC_MOVE_RUN.sts);
wrkMast.setDualCrnNo(crnNo);
wrkMast.setSystemMsg("");
- wrkMast.setIoTime(new Date());
+ wrkMast.setIoTime(now);
+ wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
+ wrkAnalysisService.markCraneStart(wrkMast, now);
SendDualCrnCommandParam sendDualCrnCommandParam = new SendDualCrnCommandParam();
sendDualCrnCommandParam.setCrnNo(crnNo);
sendDualCrnCommandParam.setStation(station);
@@ -778,6 +793,7 @@
if (idx >= 2) {
Long updateWrkSts = null;
+ Date now = new Date();
if (wrkMast.getWrkSts() == WrkStsType.INBOUND_RUN.sts) {
updateWrkSts = WrkStsType.COMPLETE_INBOUND.sts;
notifyUtils.notify(String.valueOf(SlaveType.DualCrn), basDualCrnp.getCrnNo(), String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.DUAL_CRN_IN_TASK_COMPLETE, null);
@@ -804,7 +820,7 @@
}
//鐢熸垚浠跨湡绔欑偣鏁版嵁
StationCommand command = stationThread.getCommand(StationCommandType.WRITE_INFO, 9998, wrkMast.getSourceStaNo(), 0, 0);
- MessageQueue.offer(SlaveType.Devp, stationObjModel.getDeviceNo(), new Task(2, command));
+ stationCommandDispatcher.dispatch(stationObjModel.getDeviceNo(), command, "dual-crn-operate-process", "fake-out-complete-write-info");
}
}
@@ -827,8 +843,10 @@
wrkMast.setWrkSts(updateWrkSts);
wrkMast.setSystemMsg("");
- wrkMast.setIoTime(new Date());
+ wrkMast.setIoTime(now);
+ wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
+ wrkAnalysisService.markCraneComplete(wrkMast, now, updateWrkSts);
News.info("鍙屽伐浣嶅爢鍨涙満浠诲姟鐘舵�佹洿鏂版垚鍔燂紝鍫嗗灈鏈哄彿={}锛屽伐浣滃彿={}", basDualCrnp.getCrnNo(), taskNo);
}
redisUtil.set(RedisKeyType.DUAL_CRN_IO_EXECUTE_FINISH_LIMIT.key + basDualCrnp.getCrnNo() + "_" + taskNo, "lock", 10);
--
Gitblit v1.9.1