From 45cf0155027278bd4927ad25b40322b47df78c1c Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期三, 28 一月 2026 13:31:05 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/plugin/XiaosongProcess.java           |   11 +++++++++++
 src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java |   33 ++++++++++++++++++++++++++++-----
 src/main/java/com/zy/core/model/StationObjModel.java            |    5 +++++
 3 files changed, 44 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/core/model/StationObjModel.java b/src/main/java/com/zy/core/model/StationObjModel.java
index 08e1bc4..58158b5 100644
--- a/src/main/java/com/zy/core/model/StationObjModel.java
+++ b/src/main/java/com/zy/core/model/StationObjModel.java
@@ -19,8 +19,13 @@
 
     private Integer barcodeIdx;
 
+    //绔欑偣缁戝畾鍙屽伐浣嶅爢鍨涙満宸ヤ綅
+    private Integer dualCrnExecuteStation;
+
     private StationObjModel barcodeStation;
 
     private StationObjModel backStation;
 
+    private StationObjModel dualCrnSlaveStation;
+
 }
diff --git a/src/main/java/com/zy/core/plugin/XiaosongProcess.java b/src/main/java/com/zy/core/plugin/XiaosongProcess.java
index 450faf5..5e4d5de 100644
--- a/src/main/java/com/zy/core/plugin/XiaosongProcess.java
+++ b/src/main/java/com/zy/core/plugin/XiaosongProcess.java
@@ -26,6 +26,7 @@
 import com.zy.core.plugin.api.MainProcessPluginApi;
 import com.zy.core.thread.StationThread;
 import com.zy.core.utils.CrnOperateProcessUtils;
+import com.zy.core.utils.DualCrnOperateProcessUtils;
 import com.zy.core.utils.StationOperateProcessUtils;
 import com.zy.core.utils.WmsOperateUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -54,6 +55,8 @@
     private RedisUtil redisUtil;
     @Autowired
     private WmsOperateUtils wmsOperateUtils;
+    @Autowired
+    private DualCrnOperateProcessUtils dualCrnOperateProcessUtils;
 
     @Override
     public void run() {
@@ -72,6 +75,14 @@
         stationOperateProcessUtils.stationOutExecute();
         //妫�娴嬭緭閫佺珯鐐瑰嚭搴撲换鍔℃墽琛屽畬鎴�
         stationOperateProcessUtils.stationOutExecuteFinish();
+        //妫�娴嬭緭閫佺珯鐐规槸鍚﹁繍琛屽牭濉�
+        stationOperateProcessUtils.checkStationRunBlock();
+
+        // 鎵ц鍙屽伐浣嶅爢鍨涙満浠诲姟
+        dualCrnOperateProcessUtils.dualCrnIoExecute();
+        // 鍙屽伐浣嶅爢鍨涙満浠诲姟鎵ц瀹屾垚
+        dualCrnOperateProcessUtils.dualCrnIoExecuteFinish();
+
     }
 
     /**
diff --git a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
index 409f546..f4b4492 100644
--- a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
@@ -248,11 +248,6 @@
         }
 
         Integer crnNo = basDualCrnp.getCrnNo();
-        int station = calcStation(dualCrnProtocol, "in");
-        if (station == 0) {
-            News.info("鍙屽伐浣嶅爢鍨涙満:{} 鏃犲彲鐢ㄥ伐浣�", basDualCrnp.getCrnNo());
-            return false;
-        }
 
         if (wrkMast.getWrkSts() != WrkStsType.INBOUND_DEVICE_RUN.sts) {
             return false;
@@ -311,6 +306,33 @@
                 inStationObjModel = stationObjModel;
                 break;
             }
+
+            StationObjModel dualCrnSlaveStationObjModel = stationObjModel.getDualCrnSlaveStation();
+            if (dualCrnSlaveStationObjModel == null) {
+                continue;
+            }
+
+            StationProtocol slaveStationProtocol = stationProtocolMap.get(dualCrnSlaveStationObjModel.getStationId());
+            if (slaveStationProtocol == null) {
+                continue;
+            }
+
+            if (!slaveStationProtocol.isAutoing()) {
+                continue;
+            }
+
+            if (!slaveStationProtocol.isLoading()) {
+                continue;
+            }
+
+            if (slaveStationProtocol.getTaskNo() <= 0) {
+                continue;
+            }
+
+            if (slaveStationProtocol.getTaskNo().equals(wrkMast.getWrkNo())) {
+                inStationObjModel = dualCrnSlaveStationObjModel;
+                break;
+            }
         }
 
         if (inStationObjModel == null) {
@@ -318,6 +340,7 @@
             return false;
         }
 
+        Integer station = inStationObjModel.getDualCrnExecuteStation();
         String sourceLocNo = Utils.getLocNo(inStationObjModel.getDeviceRow(), inStationObjModel.getDeviceBay(), inStationObjModel.getDeviceLev());
 
         List<DualCrnCommand> commandList = new ArrayList<>();

--
Gitblit v1.9.1