Преглед на файлове

根据设备id获取设备详情及分享的mqtt,根据传感器id获取传感器详情及测点对应的点表数据

liwei19941102 преди 2 години
родител
ревизия
b62c76d03b

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/data/controller/MqttController.java

@@ -51,6 +51,8 @@ public class MqttController {
     public void pubOrder(OrderBean bean){
         mqttService.pubOrder(bean);
     }
+
+
 }
 
 

+ 13 - 0
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblEquipmentController.java

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
+import com.ruoyi.data.domain.DeviceMqttInfo;
 import lombok.RequiredArgsConstructor;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.*;
@@ -105,4 +106,16 @@ public class TblEquipmentController extends BaseController {
                           @PathVariable Long[] ids) {
         return toAjax(iTblEquipmentService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
+
+
+    /**
+     * 获取设备详细信息
+     *
+     * @param id 主键
+     */
+    @GetMapping("/deviceMqtt/{id}")
+    public R<DeviceMqttInfo> getInfotoMqtt(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long id) {
+        return R.ok(iTblEquipmentService.getDeviceMqttInfo(id));
+    }
 }

+ 58 - 0
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblSensorController.java

@@ -1,9 +1,18 @@
 package com.ruoyi.data.controller;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.ruoyi.data.domain.PointData;
+import com.ruoyi.data.domain.SensorPoint;
+import com.ruoyi.data.domain.bo.TblDatapointBo;
+import com.ruoyi.data.domain.bo.TblUnitBo;
+import com.ruoyi.data.domain.vo.TblDatapointVo;
+import com.ruoyi.data.service.ITblDatapointService;
 import lombok.RequiredArgsConstructor;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.*;
@@ -39,6 +48,8 @@ public class TblSensorController extends BaseController {
 
     private final ITblSensorService iTblSensorService;
 
+    private final ITblDatapointService iTblDatapointService;
+
     /**
      * 查询传感器列列表
      */
@@ -105,4 +116,51 @@ public class TblSensorController extends BaseController {
                           @PathVariable Long[] ids) {
         return toAjax(iTblSensorService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
+
+
+    /**
+     * 获取传感器列详细信息(包含测点数据)
+     *
+     * @param id 主键
+     */
+    @SaCheckPermission("data:sensor:query")
+    @GetMapping("/sensorDataPoint/{id}")
+    public R<SensorPoint> getsensorDataPoint(@NotNull(message = "主键不能为空")
+                                  @PathVariable Long id) {
+        SensorPoint sensorPoint = new SensorPoint();
+        TblSensorVo tblSensorVo = iTblSensorService.queryById(id);
+        TblDatapointBo tblDatapointBo = new TblDatapointBo();
+        List<TblDatapointVo> tblDatapointVoList = iTblDatapointService.queryList(tblDatapointBo);
+        sensorPoint.setTblSensorVo(tblSensorVo);
+        List<PointData> pointDatas = new ArrayList<PointData>();
+        JSONArray pointArry = new JSONArray(tblSensorVo.getDatapoints());
+            for(Object pointObject:pointArry){
+                JSONObject jsonObject = new JSONObject(pointObject);
+                if(jsonObject.get("dataPointId")!=null){
+                    Long pointId = Long.valueOf((String) jsonObject.get("dataPointId"));
+                    for(TblDatapointVo tblDatapointVo:tblDatapointVoList){
+                        if( pointId == tblDatapointVo.getId()) {
+                            PointData pointData = new PointData();
+                            pointData.setName((String) jsonObject.get("name"));
+                            pointData.setLabel((String) jsonObject.get("label"));
+                            pointData.setUnit((String) jsonObject.get("unit"));
+                            pointData.setUnitType((String) jsonObject.get("unitType"));
+                            pointData.setDataPointInfo(tblDatapointVo);
+                            pointDatas.add(pointData);
+                        }
+                    }
+                }else{
+                    PointData pointData = new PointData();
+                    pointData.setName((String) jsonObject.get("name"));
+                    pointData.setLabel((String) jsonObject.get("label"));
+                    pointData.setUnit((String) jsonObject.get("unit"));
+                    pointData.setUnitType((String) jsonObject.get("unitType"));
+                    pointDatas.add(pointData);
+                }
+            }
+            tblSensorVo.setDatapoints(null);
+            sensorPoint.setDataPoints(pointDatas);
+           return R.ok(sensorPoint);
+//        return R.ok(iTblSensorService.queryById(id));
+    }
 }

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/ITblEquipmentService.java

@@ -1,5 +1,6 @@
 package com.ruoyi.data.service;
 
+import com.ruoyi.data.domain.DeviceMqttInfo;
 import com.ruoyi.data.domain.TblEquipment;
 import com.ruoyi.data.domain.vo.TblEquipmentVo;
 import com.ruoyi.data.domain.bo.TblEquipmentBo;
@@ -46,4 +47,6 @@ public interface ITblEquipmentService {
      * 校验并批量删除设备信息
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    DeviceMqttInfo getDeviceMqttInfo(Long id);
 }

+ 17 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentServiceImpl.java

@@ -7,6 +7,9 @@ import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.data.domain.DeviceMqttInfo;
+import com.ruoyi.data.domain.MqttObj;
+import com.ruoyi.data.mapper.TblEquipmentMqttMapper;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import com.ruoyi.data.domain.bo.TblEquipmentBo;
@@ -31,6 +34,8 @@ public class TblEquipmentServiceImpl implements ITblEquipmentService {
 
     private final TblEquipmentMapper baseMapper;
 
+    private final TblEquipmentMqttMapper tblEquipmentMqttMapper;
+
     /**
      * 查询设备
      */
@@ -116,4 +121,16 @@ public class TblEquipmentServiceImpl implements ITblEquipmentService {
         }
         return baseMapper.deleteBatchIds(ids) > 0;
     }
+
+    @Override
+    public DeviceMqttInfo getDeviceMqttInfo(Long id){
+        DeviceMqttInfo deviceMqttInfo = new DeviceMqttInfo();
+        TblEquipmentVo tblEquipment = baseMapper.selectVoById(id);
+        deviceMqttInfo.setTblEquipment(tblEquipment);
+        MqttObj mqttObj = new MqttObj();
+        mqttObj.setEquipmentId(id);
+        List<MqttObj> mqttObjList = tblEquipmentMqttMapper.selectMqttListByDeviceId(mqttObj);
+        deviceMqttInfo.setMqttObjList(mqttObjList);
+        return deviceMqttInfo;
+    }
 }