From 2468af88e9ee9901f1d4d6f1cfdb6361c7400730 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期一, 02 二月 2026 15:52:05 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java | 78 +++++++++++++++++++++++----------------
1 files changed, 46 insertions(+), 32 deletions(-)
diff --git a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
index 3d66a89..39895fe 100644
--- a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
@@ -105,24 +105,47 @@
return;
}
+ Object clearLock = redisUtil.get(RedisKeyType.CLEAR_DUAL_CRN_TASK_LIMIT.key + basDualCrnp.getCrnNo());
+ if (clearLock != null) {
+ return;
+ }
+
// 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
if (dualCrnProtocol.getLastIo().equals("O")) {
- processLoveMove(basDualCrnp, dualCrnThread);
- processIn(basDualCrnp, dualCrnThread);
- processOut(basDualCrnp, dualCrnThread);
+ boolean executeResult1 = processLoveMove(basDualCrnp, dualCrnThread);
+ if (executeResult1) {
+ return;
+ }
+ boolean executeResult2 = processIn(basDualCrnp, dualCrnThread);
+ if (executeResult2) {
+ return;
+ }
+ boolean executeResult3 = processOut(basDualCrnp, dualCrnThread);
+ if (executeResult3) {
+ return;
+ }
}
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
else if (dualCrnProtocol.getLastIo().equals("I")) {
- processLoveMove(basDualCrnp, dualCrnThread);
- processOut(basDualCrnp, dualCrnThread);
- processIn(basDualCrnp, dualCrnThread);
+ boolean executeResult1 = processLoveMove(basDualCrnp, dualCrnThread);
+ if (executeResult1) {
+ return;
+ }
+ boolean executeResult2 = processOut(basDualCrnp, dualCrnThread);
+ if (executeResult2) {
+ return;
+ }
+ boolean executeResult3 = processIn(basDualCrnp, dualCrnThread);
+ if (executeResult3) {
+ return;
+ }
}
}
- private void processIn(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread) {
+ private boolean processIn(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread) {
List<WrkMast> inTaskList = getInTaskList(basDualCrnp);
if (inTaskList.isEmpty()) {
- return;
+ return false;
}
WrkMast stationOneWrkMast = inTaskList.get(0);
@@ -158,13 +181,15 @@
MessageQueue.offer(SlaveType.DualCrn, crnNo, new Task(2, list));
News.info("鍙屽伐浣嶅爢鍨涙満鍛戒护涓嬪彂鎴愬姛锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnNo, JSON.toJSON(list));
dualCrnProtocol.setLastIo("I");
+ return true;
}
+ return false;
}
- private void processOut(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread) {
+ private boolean processOut(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread) {
List<WrkMast> outTaskList = getOutTaskList(basDualCrnp);
if (outTaskList.isEmpty()) {
- return;
+ return false;
}
WrkMast stationOneWrkMast = null;
@@ -214,13 +239,15 @@
MessageQueue.offer(SlaveType.DualCrn, crnNo, new Task(2, list));
News.info("鍙屽伐浣嶅爢鍨涙満鍛戒护涓嬪彂鎴愬姛锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnNo, JSON.toJSON(list));
dualCrnProtocol.setLastIo("O");
+ return true;
}
+ return false;
}
- private void processLoveMove(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread) {
+ private boolean processLoveMove(BasDualCrnp basDualCrnp, DualCrnThread dualCrnThread) {
List<WrkMast> locMoveTaskList = getLocMoveTaskList(basDualCrnp);
if (locMoveTaskList.isEmpty()) {
- return;
+ return false;
}
WrkMast stationOneWrkMast = null;
@@ -270,7 +297,9 @@
MessageQueue.offer(SlaveType.DualCrn, crnNo, new Task(2, list));
News.info("鍙屽伐浣嶅爢鍨涙満鍛戒护涓嬪彂鎴愬姛锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnNo, JSON.toJSON(list));
dualCrnProtocol.setLastIo("O");
+ return true;
}
+ return false;
}
private List<WrkMast> getInTaskList(BasDualCrnp basDualCrnp) {
@@ -678,28 +707,13 @@
return;
}
- Object commandListObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_.key + basDualCrnp.getCrnNo());
- if (commandListObj == null) {
- News.error("鍙屽伐浣嶅爢鍨涙満澶勪簬绛夊緟纭涓斾换鍔″畬鎴愮姸鎬侊紝浣嗘湭鎵惧埌鍛戒护銆傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", basDualCrnp.getCrnNo(), taskNo);
- return;
- }
- List<SendDualCrnCommandParam> dualCrnCommandParamList = JSON.parseArray(commandListObj.toString(), SendDualCrnCommandParam.class);
- SendDualCrnCommandParam taskCommand = null;
- for (SendDualCrnCommandParam sendDualCrnCommandParam : dualCrnCommandParamList) {
- DualCrnCommand dualCrnCommand = sendDualCrnCommandParam.getCommands().get(0);
- if(dualCrnCommand.getTaskNo() == taskNo){
- taskCommand = sendDualCrnCommandParam;
- break;
- }
- }
- if (taskCommand == null) {
- News.error("鍙屽伐浣嶅爢鍨涙満澶勪簬绛夊緟纭涓斾换鍔″畬鎴愮姸鎬侊紝浣嗘湭鎵惧埌鍛戒护銆傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", basDualCrnp.getCrnNo(), taskNo);
- return;
+ int idx = 10;
+ Object idxObj = redisUtil.get(RedisKeyType.DUAL_CRN_COMMAND_IDX.key + wrkMast.getWrkNo());
+ if(idxObj != null) {
+ idx = (Integer) idxObj;
}
- Integer idx = taskCommand.getCommandIdx();
- List<DualCrnCommand> commandList = taskCommand.getCommands();
- if (idx >= commandList.size()) {
+ if (idx >= 2) {
Long updateWrkSts = null;
if (wrkMast.getWrkSts() == WrkStsType.INBOUND_RUN.sts) {
updateWrkSts = WrkStsType.COMPLETE_INBOUND.sts;
--
Gitblit v1.9.1