From 5fb7dae61f9d6c38c37014cf27f28107c6f52e74 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 19 十一月 2025 16:18:19 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/enums/RgvStatusType.java          |    4 +-
 src/main/webapp/views/watch/console.html                    |   10 ++--
 src/main/java/com/zy/asrs/controller/ConsoleController.java |   53 +++++++++++++-------------
 src/main/java/com/zy/asrs/domain/vo/RgvLatestDataVo.java    |   18 +++++++++
 4 files changed, 52 insertions(+), 33 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index 5d19fb7..4f9560e 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -12,6 +12,7 @@
 import com.zy.asrs.domain.vo.CrnDetailVo;
 import com.zy.asrs.domain.vo.CrnLatestDataVo;
 import com.zy.asrs.domain.vo.StationLatestDataVo;
+import com.zy.asrs.domain.vo.RgvLatestDataVo;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
@@ -23,12 +24,15 @@
 import com.zy.core.enums.CrnModeType;
 import com.zy.core.enums.MapNodeType;
 import com.zy.core.enums.RedisKeyType;
+import com.zy.core.enums.RgvStatusType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.model.protocol.StationProtocol;
 import com.zy.core.properties.SystemProperties;
 import com.zy.core.thread.CrnThread;
 import com.zy.core.thread.StationThread;
+import com.zy.core.thread.RgvThread;
+import com.zy.core.model.protocol.RgvProtocol;
 
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -170,32 +174,29 @@
         return R.ok().add(vos);
     }
 
-    // @PostMapping("/latest/data/rgv")
-    // @ManagerAuth(memo = "RGV瀹炴椂鏁版嵁")
-    // public R rgvLatestData(){
-    // List<RgvLatestDataVo> vos = new ArrayList<>();
-    // for (RgvSlave rgvSlave : slaveProperties.getRgv()) {
-    // // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-    // RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv,
-    // rgvSlave.getId());
-    // if (rgvThread == null) {
-    // continue;
-    // }
-    // RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-    // if (rgvProtocol == null) {
-    // continue;
-    // }
-    // RgvLatestDataVo vo = new RgvLatestDataVo();
-    // vo.setRgvId(rgvProtocol.getRgvNo()); // RGV缂栧彿
-    // vo.setTrackSiteNo(String.valueOf(rgvProtocol.getRgvPos()));
-    // vo.setRgvStatus(rgvProtocol.getStatusType());
-    // vos.add(vo);
-    //
-    // }
-    // Object object = redisUtil.get("rgvLatestData");
-    // List<Object> siteLatestDataVos = JSON.parseArray(object.toString());
-    // return R.ok().add(siteLatestDataVos);
-    // }
+    @PostMapping("/latest/data/rgv")
+    @ManagerAuth(memo = "RGV瀹炴椂鏁版嵁")
+    public R rgvLatestData(){
+        List<RgvLatestDataVo> vos = new ArrayList<>();
+        List<DeviceConfig> rgvList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
+                .eq("device_type", String.valueOf(SlaveType.Rgv)));
+        for (DeviceConfig deviceConfig : rgvList) {
+            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, deviceConfig.getDeviceNo());
+            if (rgvThread == null) {
+                continue;
+            }
+            RgvProtocol rgvProtocol = rgvThread.getStatus();
+            if (rgvProtocol == null) {
+                continue;
+            }
+            RgvLatestDataVo vo = new RgvLatestDataVo();
+            vo.setRgvNo(rgvProtocol.getRgvNo());
+            vo.setTrackSiteNo(String.valueOf(rgvProtocol.getRgvPos()));
+            vo.setRgvStatus(RgvStatusType.get(rgvProtocol.getStatus()));
+            vos.add(vo);
+        }
+        return R.ok().add(vos);
+    }
 
     // @PostMapping("/latest/data/barcode")
     // @ManagerAuth(memo = "鏉$爜鎵弿浠疄鏃舵暟鎹�")
diff --git a/src/main/java/com/zy/asrs/domain/vo/RgvLatestDataVo.java b/src/main/java/com/zy/asrs/domain/vo/RgvLatestDataVo.java
new file mode 100644
index 0000000..55462ea
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/vo/RgvLatestDataVo.java
@@ -0,0 +1,18 @@
+package com.zy.asrs.domain.vo;
+
+import com.zy.core.enums.RgvStatusType;
+import lombok.Data;
+
+@Data
+public class RgvLatestDataVo {
+
+    private Integer rgvNo;
+
+    private String trackSiteNo;
+
+    private RgvStatusType rgvStatus;
+
+    public String getRgvStatus() {
+        return rgvStatus == null ? "none" : rgvStatus.toString().toLowerCase().replaceAll("_", "-");
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/core/enums/RgvStatusType.java b/src/main/java/com/zy/core/enums/RgvStatusType.java
index 2b1abff..4642c03 100644
--- a/src/main/java/com/zy/core/enums/RgvStatusType.java
+++ b/src/main/java/com/zy/core/enums/RgvStatusType.java
@@ -20,12 +20,12 @@
         this.desc = desc;
     }
 
-    public static RgvStatusType get(Short id) {
+    public static RgvStatusType get(Integer id) {
         if (null == id) {
             return null;
         }
         for (RgvStatusType type : RgvStatusType.values()) {
-            if (type.id.equals(id.intValue())) {
+            if (type.id.equals(id)) {
                 return type;
             }
         }
diff --git a/src/main/webapp/views/watch/console.html b/src/main/webapp/views/watch/console.html
index 5ebac3b..4b83614 100644
--- a/src/main/webapp/views/watch/console.html
+++ b/src/main/webapp/views/watch/console.html
@@ -281,9 +281,9 @@
 									if (that.rgvPosition.length == 0) {
 										let position = []
 										for (var i = 0; i < rgvs.length; i++) {
-											var rgvEl = $("#rgv-" + rgvs[i].rgvId);
+											var rgvEl = $("#rgv-" + rgvs[i].rgvNo);
 											position.push({
-												id: rgvs[i].rgvId,
+												id: rgvs[i].rgvNo,
 												trackSiteNo: rgvs[i].trackSiteNo,
 												initLeft: rgvEl.offset().left
 											})
@@ -293,7 +293,7 @@
 									}
 
 									for (var i = 0; i < rgvs.length; i++) {
-										var rgvEl = $("#rgv-" + rgvs[i].rgvId);
+										var rgvEl = $("#rgv-" + rgvs[i].rgvNo);
 										if (rgvs[i].rgvStatus == 'IDLE') {
 											rgvEl.attr("class", "rgv-item");
 										}else if (rgvs[i].rgvStatus == 'WORKING') {
@@ -305,7 +305,7 @@
 
 										let flag = false;
 										that.rgvPosition.forEach((item) => {
-											if (item.id == rgvs[i].rgvId) {
+											if (item.id == rgvs[i].rgvNo) {
 												if (item.trackSiteNo != trackSiteNo) {
 													flag = true
 												}
@@ -327,7 +327,7 @@
 
 											let position = []
 											that.rgvPosition.forEach((item) => {
-												if (item.id == rgvs[i].rgvId) {
+												if (item.id == rgvs[i].rgvNo) {
 													item.trackSiteNo = trackSiteNo
 												}
 												position.push(item)

--
Gitblit v1.9.1