From 2f9849905dbb8d65faa28628a40084708a0386ef Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 25 十二月 2025 10:58:34 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/ConsoleController.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index 6278bcb..5ad5b40 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -26,9 +26,11 @@
 import com.zy.core.enums.SlaveType;
 import com.zy.core.enums.WrkIoType;
 import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.DualCrnProtocol;
 import com.zy.core.model.protocol.StationProtocol;
 import com.zy.core.properties.SystemProperties;
 import com.zy.core.thread.CrnThread;
+import com.zy.core.thread.DualCrnThread;
 import com.zy.core.thread.StationThread;
 import com.zy.core.thread.RgvThread;
 import com.zy.core.model.protocol.RgvProtocol;
@@ -205,6 +207,39 @@
         return R.ok().add(vos);
     }
 
+    @PostMapping("/latest/data/dualcrn")
+    @ManagerAuth(memo = "鍙屽伐浣嶅爢鍨涙満瀹炴椂鏁版嵁")
+    public R dualCrnLatestData() {
+        List<CrnLatestDataVo> vos = new ArrayList<>();
+        List<DeviceConfig> dualCrnList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.DualCrn)));
+        for (DeviceConfig deviceConfig : dualCrnList) {
+            DualCrnThread crnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, deviceConfig.getDeviceNo());
+            if (crnThread == null) { continue; }
+            DualCrnProtocol p = crnThread.getStatus();
+            if (p == null) { continue; }
+            CrnLatestDataVo vo = new CrnLatestDataVo();
+            vo.setCrnId(p.getCrnNo());
+            Integer bay = p.getBay() != null ? p.getBay() : p.getBayTwo();
+            vo.setOffset(bay == null ? 0.0 : Double.valueOf(bay));
+            vo.setBay(bay);
+            Integer taskNo = (p.getTaskNo() != null && p.getTaskNo() > 0) ? p.getTaskNo()
+                    : ((p.getTaskNoTwo() != null && p.getTaskNoTwo() > 0) ? p.getTaskNoTwo() : 0);
+            vo.setTaskNo(taskNo);
+            if (p.getAlarm() != null && p.getAlarm() > 0) {
+                vo.setCrnStatus(CrnStatusType.MACHINE_ERROR);
+            } else {
+                if (taskNo != null && taskNo > 0) {
+                    vo.setCrnStatus(p.getModeType() == CrnModeType.AUTO ? CrnStatusType.MACHINE_AUTO : CrnStatusType.MACHINE_UN_AUTO);
+                } else {
+                    vo.setCrnStatus(p.getModeType() == CrnModeType.AUTO ? CrnStatusType.MACHINE_AUTO : CrnStatusType.MACHINE_UN_AUTO);
+                }
+            }
+            vos.add(vo);
+        }
+        return R.ok().add(vos);
+    }
+
     @PostMapping("/latest/data/rgv")
     @ManagerAuth(memo = "RGV瀹炴椂鏁版嵁")
     public R rgvLatestData(){

--
Gitblit v1.9.1