From e17604b6d779a5ad0030b4f5e448a60d52ed98a8 Mon Sep 17 00:00:00 2001 From: lyd <1419499670@qq.com> Date: Wed, 17 Aug 2022 15:40:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=9B=91=E6=8E=A7=E9=83=A8?= =?UTF-8?q?=E5=88=86=E4=BB=A3=E7=A0=81=EF=BC=8C=E6=97=A5=E5=BF=97=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E4=BF=AE=E5=A4=8D=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/acs/monitor/DeviceStageMonitor.java | 22 ++++++++ .../rest/DeviceStageMonitorController.java | 27 ++++++++++ .../service/DeviceStageMonitorService.java | 18 +++++++ .../impl/DeviceStageMonitorServiceImpl.java | 54 +++++++++++++++++++ acs/qd/src/views/acs/device/index.vue | 18 +++---- acs/qd/src/views/monitor/logback/index.vue | 19 +++++-- 6 files changed, 146 insertions(+), 12 deletions(-) create mode 100644 acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/DeviceStageMonitor.java create mode 100644 acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/rest/DeviceStageMonitorController.java create mode 100644 acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/service/DeviceStageMonitorService.java create mode 100644 acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/service/impl/DeviceStageMonitorServiceImpl.java diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/DeviceStageMonitor.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/DeviceStageMonitor.java new file mode 100644 index 0000000..2cc1e37 --- /dev/null +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/DeviceStageMonitor.java @@ -0,0 +1,22 @@ +package org.nl.acs.monitor; + +import com.alibaba.fastjson.JSONObject; + +/** + * @Author: lyd + * @Description: 设备监控服务 + * @Date: 2022-08-17 + */ +public interface DeviceStageMonitor { + /** + * 根据设备获取设备状态(中文名:如故障、联机等) + * @return + */ + public JSONObject getDeviceStatusName(); + + /** + * 根据舞台数据修改设备驱动状态 + * @param data + */ + public void setDeviceStatus(JSONObject data); +} diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/rest/DeviceStageMonitorController.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/rest/DeviceStageMonitorController.java new file mode 100644 index 0000000..233c892 --- /dev/null +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/rest/DeviceStageMonitorController.java @@ -0,0 +1,27 @@ +package org.nl.acs.monitor.rest; + +import com.alibaba.fastjson.JSONArray; +import io.swagger.annotations.ApiOperation; +import org.nl.annotation.Log; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * @Author: lyd + * @Description: + * @Date: 2022-08-17 + */ +public class DeviceStageMonitorController { + + + +// @PostMapping("/getDeviceByCodes") +// @Log("获取舞台设备信息") +// @ApiOperation("获取舞台设备信息") +// public ResponseEntity getDeviceByCodes(@RequestBody String json) throws Exception{ +// JSONArray jsonArray = JSONArray.parseArray(json); +// return new ResponseEntity<>(stageService.getDeviceByCodes(jsonArray), HttpStatus.OK); +// } +} diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/service/DeviceStageMonitorService.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/service/DeviceStageMonitorService.java new file mode 100644 index 0000000..485f6a0 --- /dev/null +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/service/DeviceStageMonitorService.java @@ -0,0 +1,18 @@ +package org.nl.acs.monitor.service; + +import com.alibaba.fastjson.JSONArray; + +/** + * @Author: lyd + * @Description: 取设备舞台监控数据 + * @Date: 2022-08-17 + */ +public interface DeviceStageMonitorService { + /** + * 取设备舞台监控数据 + * + * @param jsonArray 前端传来设备编号和节点的id + * @return + */ + public JSONArray getData(JSONArray jsonArray); +} diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/service/impl/DeviceStageMonitorServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/service/impl/DeviceStageMonitorServiceImpl.java new file mode 100644 index 0000000..25efbd6 --- /dev/null +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/monitor/service/impl/DeviceStageMonitorServiceImpl.java @@ -0,0 +1,54 @@ +package org.nl.acs.monitor.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.monitor.DeviceStageMonitor; +import org.nl.acs.monitor.service.DeviceStageMonitorService; +import org.nl.acs.opc.Device; +import org.nl.acs.opc.DeviceAppService; +import org.springframework.stereotype.Service; + +/** + * @Author: lyd + * @Description: + * @Date: 2022-08-17 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class DeviceStageMonitorServiceImpl implements DeviceStageMonitorService { + private final DeviceAppService deviceAppService; + + + @Override + public JSONArray getData(JSONArray jsonArray) { + JSONArray arr = new JSONArray(); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject obj = new JSONObject(); + JSONObject js = jsonArray.getJSONObject(i); + String device_code = js.getString("device_code"); + + if (ObjectUtil.isEmpty(device_code)) continue; + + Device device = deviceAppService.findDeviceByCode(device_code); + if (ObjectUtil.isNull(device)) continue; + + + JSONObject json = new JSONObject(); + if (device.getDeviceDriver() instanceof DeviceStageMonitor) { + DeviceStageMonitor monitorService = (DeviceStageMonitor) device.getDeviceDriver(); + json = monitorService.getDeviceStatusName(); + } + + obj.put("data", json); + obj.put("device_code", js.get("device_code")); + obj.put("id", js.getString("id")); // 设备不存在就只保留id,方便前端查看 + arr.add(obj); + } + + return arr; + } +} diff --git a/acs/qd/src/views/acs/device/index.vue b/acs/qd/src/views/acs/device/index.vue index 080ccbe..daafed9 100644 --- a/acs/qd/src/views/acs/device/index.vue +++ b/acs/qd/src/views/acs/device/index.vue @@ -139,15 +139,15 @@ - - - - - - - - - + + + + + + + + +