From b62481bc477f01b449f0369c9a553d3d9e298dd0 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期一, 02 二月 2026 12:38:05 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java |   73 ++++++++++++++++++++----------------
 1 files changed, 41 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..ba6a2f0 100644
--- a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
@@ -107,22 +107,40 @@
 
         // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
         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 +176,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 +234,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 +292,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 +702,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