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 @@ - - - - - - - - - + + + + + + + + +