From 912901afb40fffba9eda36bba09fb3b2e98f216e Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 14 三月 2026 13:32:06 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/plugin/NormalProcess.java           |   52 ++++++++++++++++++++++++--
 src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java |   29 --------------
 2 files changed, 48 insertions(+), 33 deletions(-)

diff --git a/src/main/java/com/zy/core/plugin/NormalProcess.java b/src/main/java/com/zy/core/plugin/NormalProcess.java
index 0306392..ebc4bdf 100644
--- a/src/main/java/com/zy/core/plugin/NormalProcess.java
+++ b/src/main/java/com/zy/core/plugin/NormalProcess.java
@@ -4,9 +4,12 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
 import com.zy.asrs.domain.param.CreateInTaskParam;
+import com.zy.asrs.entity.BasCrnp;
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.BasCrnpService;
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.common.model.StartupDto;
@@ -15,15 +18,14 @@
 import com.zy.core.News;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.RedisKeyType;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.enums.StationCommandType;
-import com.zy.core.enums.WrkIoType;
+import com.zy.core.enums.*;
 import com.zy.core.model.StationObjModel;
 import com.zy.core.model.Task;
 import com.zy.core.model.command.StationCommand;
+import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.model.protocol.StationProtocol;
 import com.zy.core.plugin.api.MainProcessPluginApi;
+import com.zy.core.thread.CrnThread;
 import com.zy.core.thread.StationThread;
 import com.zy.core.utils.CrnOperateProcessUtils;
 import com.zy.core.utils.StationOperateProcessUtils;
@@ -32,6 +34,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -54,6 +57,8 @@
     private RedisUtil redisUtil;
     @Autowired
     private WmsOperateUtils wmsOperateUtils;
+    @Autowired
+    private BasCrnpService basCrnpService;
 
     @Override
     public void run() {
@@ -77,6 +82,9 @@
 
         //妫�娴嬭緭閫佺珯鐐规槸鍚﹁繍琛屽牭濉�
         stationOperateProcessUtils.checkStationRunBlock();
+
+        //涓婃姤鍫嗗灈鏈篋B110鐘舵�佹暟鎹�
+        reportDb110();
     }
 
     /**
@@ -273,4 +281,40 @@
         }
     }
 
+    //涓婃姤鍫嗗灈鏈篋B110鐘舵�佹暟鎹�
+    public synchronized void reportDb110() {
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<>());
+        for (BasCrnp basCrnp : basCrnps) {
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
+            if(crnThread == null){
+                continue;
+            }
+
+            CrnProtocol crnProtocol = crnThread.getStatus();
+            if(crnProtocol == null){
+                continue;
+            }
+
+            // 涓婃姤鍫嗗灈鏈篋B110鐘舵�佹暟鎹�
+            short[] db110Data = crnProtocol.getDb110Data();
+            List<Integer> currentIndices = new ArrayList<>();
+            if (db110Data != null) {
+                for (int i = 0; i < db110Data.length; i++) {
+                    if (db110Data[i] == 1) {
+                        currentIndices.add(i);
+                    }
+                }
+            }
+
+            try {
+                WmsOperateUtils wmsOperateUtils = SpringUtils.getBean(WmsOperateUtils.class);
+                if (wmsOperateUtils != null) {
+                    wmsOperateUtils.reportCrnDb110Status(crnProtocol.getCrnNo(), currentIndices);
+                }
+            } catch (Exception e) {
+                log.error("Report Crn Db110 Status Fail", e);
+            }
+        }
+    }
+
 }
diff --git a/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java b/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
index 5e7f2b7..01993be 100644
--- a/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
@@ -30,9 +30,6 @@
 
 import java.text.MessageFormat;
 import java.util.Date;
-import java.util.List;
-import java.util.ArrayList;
-import com.zy.core.utils.WmsOperateUtils;
 import com.zy.asrs.entity.BasCrnpErrLog;
 import com.zy.asrs.service.BasCrnpErrLogService;
 
@@ -48,7 +45,6 @@
     private ZyCrnConnectDriver zyCrnConnectDriver;
     private CrnProtocol crnProtocol;
     private int deviceLogCollectTime = 200;
-    private List<Integer> lastReportedIndices = new ArrayList<>();
 
     public ZySiemensCrnThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
         this.deviceConfig = deviceConfig;
@@ -192,31 +188,6 @@
         crnProtocol.setYDuration(crnStatus.getYDuration());
         crnProtocol.setWeight(crnStatus.getWeight());
         crnProtocol.setDb110Data(crnStatus.getDb110Data());
-
-        // 涓婃姤鍫嗗灈鏈篋B110鐘舵�佹暟鎹�
-        short[] db110Data = crnProtocol.getDb110Data();
-        List<Integer> currentIndices = new ArrayList<>();
-        if (db110Data != null) {
-            for (int i = 0; i < db110Data.length; i++) {
-                if (db110Data[i] == 1) {
-                    currentIndices.add(i);
-                }
-            }
-        }
-        //!currentIndices.equals(lastReportedIndices)
-        boolean changed = true;
-        
-        if (changed) {
-            try {
-                WmsOperateUtils wmsOperateUtils = SpringUtils.getBean(WmsOperateUtils.class);
-                if (wmsOperateUtils != null) {
-                    wmsOperateUtils.reportCrnDb110Status(crnProtocol.getCrnNo(), currentIndices);
-                    lastReportedIndices = new ArrayList<>(currentIndices);
-                }
-            } catch (Exception e) {
-                log.error("Report Crn Db110 Status Fail", e);
-            }
-        }
 
         OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), deviceConfig.getDeviceNo()));
 

--
Gitblit v1.9.1