liwei19941102 2 gadi atpakaļ
vecāks
revīzija
a17f0a897b

+ 7 - 0
ruoyi-admin/src/main/resources/application.yml

@@ -267,3 +267,10 @@ management:
       show-details: ALWAYS
     logfile:
       external-file: ./logs/sys-console.log
+
+mqtt:
+  url: tcp://xt.wenhq.top:8581
+  clientid: mqttUser
+  user:
+  password:
+  topic: /sensor/#

+ 15 - 13
ruoyi-system/src/main/java/com/ruoyi/data/controller/TblDataController.java

@@ -105,23 +105,25 @@ public class TblDataController extends BaseController {
             sensorPoint.setTblSensorVo(tblSensorVo);
             List<PointData> pointDatas = new ArrayList<PointData>();
             JSONArray pointArry = new JSONArray(tblSensorVo.getDatapoints());
-            for(Object pointObject:pointArry){
+            for(Object pointObject:pointArry) {
                 JSONObject jsonObject = new JSONObject(pointObject);
-                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);
+                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);
+                        }
                     }
                 }
+                sensorPoint.setDataPoints(pointDatas);
+                list.add(sensorPoint);
             }
-            sensorPoint.setDataPoints(pointDatas);
-            list.add(sensorPoint);
         }
         return list;
     }

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblGateway.java

@@ -75,4 +75,8 @@ public class TblGateway extends BaseEntity {
 
     private Integer protocalType;
 
+    private String longitude;
+
+    private String latitude;
+
 }

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblGatewayBo.java

@@ -92,5 +92,8 @@ public class TblGatewayBo extends BaseEntity {
 
     private Integer protocalType;
 
+    private String longitude;
+
+    private String latitude;
 
 }

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblGatewayVo.java

@@ -94,4 +94,10 @@ public class TblGatewayVo implements Serializable {
     @ExcelProperty(value = "协议类型")
     private Integer protocalType;
 
+    @ExcelProperty(value = "经度")
+    private String longitude;
+
+    @ExcelProperty(value = "纬度")
+    private String latitude;
+
 }

+ 28 - 8
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/MqttServiceImpl.java

@@ -5,22 +5,22 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.mqtt.MQTTConnect;
-import com.ruoyi.data.domain.MqttObj;
-import com.ruoyi.data.domain.OrderBean;
-import com.ruoyi.data.domain.TblMqtt;
-import com.ruoyi.data.domain.TblRecord;
+import com.ruoyi.data.domain.*;
 import com.ruoyi.data.domain.bo.TblMqttBo;
 import com.ruoyi.data.domain.vo.TblMqttVo;
 import com.ruoyi.data.mapper.TblEquipmentMqttMapper;
 import com.ruoyi.data.mapper.TblMqttMapper;
 import com.ruoyi.data.mapper.TblRecordMapper;
+import com.ruoyi.data.mapper.TblSensorMapper;
 import com.ruoyi.data.service.MqttService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
 import org.eclipse.paho.client.mqttv3.MqttCallback;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import sun.management.Sensor;
 
 import java.text.SimpleDateFormat;
 import java.util.Base64;
@@ -39,11 +39,31 @@ public class MqttServiceImpl implements MqttService {
 
     private final TblRecordMapper tblRecordMapper;
 
+    private final TblSensorMapper tblSensorMapper;
+
+    @Value("${mqtt.url}")
+    private String mqttUrl;
+
+    @Value("${mqtt.clientid}")
+    private String clientID;
+
+    @Value("${mqtt.user}")
+    private String mqttUser;
+
+    @Value("${mqtt.password}")
+    private String mqttPassword;
+
+    @Value("${mqtt.topic}")
+    private String mqttTopic;
+//    @Value("${mqtt.url}")
+//    private String mqttUrl;
 
     @Override
     public void pubMqttData(String mqttStr) {
         JSONObject jsonObject = new JSONObject(mqttStr);
-        Long deviceId = Long.valueOf((String) jsonObject.get("deviceId"));
+        Long sensorId = Long.valueOf((String) jsonObject.get("sensorId"));
+        TblSensor tblSensor = tblSensorMapper.selectById(sensorId);
+        Long deviceId = tblSensor.getDeviceId();
         SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Date date = new Date(System.currentTimeMillis());
         jsonObject.put("created_time",formatter.format(date));
@@ -78,12 +98,12 @@ public class MqttServiceImpl implements MqttService {
     public void createMqttMain(TblMqttBo bo){
         MQTTConnect mqttConnect = new MQTTConnect();
         try {
-            mqttConnect.createMqttClient("ws://52.130.249.112:8083/mqtt","adminTest","ship","ship@2021.11.24",new Callback());
-            mqttConnect.sub("device/#");
+            System.out.println(mqttUrl);
+            mqttConnect.createMqttClient(mqttUrl,clientID,mqttUser,mqttPassword,new Callback());
+            mqttConnect.sub(mqttTopic);
         }catch (Exception e){
             e.printStackTrace();
         }
-
     }
 
     @Override