|
|
@@ -1,6 +1,7 @@
|
|
|
package com.ruoyi.data.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.json.JSONArray;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
@@ -69,26 +70,38 @@ public class MqttServiceImpl implements MqttService {
|
|
|
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));
|
|
|
+ JSONObject mqttMsg = new JSONObject();
|
|
|
+ mqttMsg.put("deviceSn",deviceId);
|
|
|
+ mqttMsg.put("sensorSn",sensorId);
|
|
|
+ mqttMsg.put("sensorType",tblSensor.getSensorType());
|
|
|
+ mqttMsg.put("created_time",formatter.format(date));
|
|
|
+ JSONArray sensorData = new JSONArray();
|
|
|
+ JSONArray dataArry = new JSONArray(jsonObject.get("data"));
|
|
|
+ for(Object obj: dataArry){
|
|
|
+ JSONObject dataObj = new JSONObject(obj);
|
|
|
+ dataObj.remove("gcdinfo");
|
|
|
+ sensorData.add(dataObj);
|
|
|
+ }
|
|
|
+ mqttMsg.put("sensorData",sensorData);
|
|
|
MqttObj mqttObj = new MqttObj();
|
|
|
mqttObj.setEquipmentId(deviceId);
|
|
|
List<MqttObj> mqttObjList = tblEquipmentMqttMapper.selectMqttListByDeviceId(mqttObj);
|
|
|
TblRecord tblRecord = new TblRecord();
|
|
|
tblRecord.setEquipmentId(deviceId);
|
|
|
- tblRecord.setSensorId(sensorId);
|
|
|
tblRecord.setJson(mqttStr);
|
|
|
tblRecord.setCreateBy("admin");
|
|
|
tblRecord.setUpdateBy("admin");
|
|
|
tblRecord.setSensorId(sensorId);
|
|
|
tblRecordMapper.insert(tblRecord);
|
|
|
- TblSensorRecordBo tblSensorRecord = new TblSensorRecordBo();
|
|
|
- tblSensorRecord.setEquipmentId(deviceId);
|
|
|
- tblSensorRecord.setJson(mqttStr);
|
|
|
- tblSensorRecord.setCreateBy("admin");
|
|
|
- tblSensorRecord.setUpdateBy("admin");
|
|
|
- tblSensorRecord.setSensorId(sensorId);
|
|
|
- updateNowRecord(tblSensorRecord);
|
|
|
+// TblSensorRecordBo tblSensorRecord = new TblSensorRecordBo();
|
|
|
+// tblSensorRecord.setEquipmentId(deviceId);
|
|
|
+// tblSensorRecord.setJson(mqttStr);
|
|
|
+// tblSensorRecord.setCreateBy("admin");
|
|
|
+// tblSensorRecord.setUpdateBy("admin");
|
|
|
+// tblSensorRecord.setSensorId(sensorId);
|
|
|
+// updateNowRecord(tblSensorRecord);
|
|
|
// tblSensorRecordMapper.insert(tblSensorRecord);
|
|
|
+ String protocolType = "";
|
|
|
for(MqttObj obj:mqttObjList){
|
|
|
if(obj.getStatus() == 1) {
|
|
|
JSONObject topicObj = obj.getTopicQos("tcp");
|
|
|
@@ -97,10 +110,10 @@ public class MqttServiceImpl implements MqttService {
|
|
|
mqttConnect.createMqttClient(obj.getServerAddress(), obj.getUuid(), obj.getAccount(), obj.getPassword(), new Callback());
|
|
|
if (topicObj != null) {
|
|
|
String topic = topicObj.get("name").toString().replace("#", "");
|
|
|
- mqttConnect.pub(topic, jsonObject.toString(), Integer.valueOf((String) topicObj.get("qos")));
|
|
|
+ mqttConnect.pub(topic, mqttMsg.toString(), Integer.valueOf((String) topicObj.get("qos")));
|
|
|
} else {
|
|
|
String topic = "sensor/modbustcp/" + deviceId;
|
|
|
- mqttConnect.pub(topic, jsonObject.toString(), 0);
|
|
|
+ mqttConnect.pub(topic, mqttMsg.toString(), 0);
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
@@ -124,7 +137,7 @@ public class MqttServiceImpl implements MqttService {
|
|
|
|
|
|
public void updateNowRecord(TblSensorRecordBo bo){
|
|
|
TblSensorRecordBo tblSensorRecordBo = new TblSensorRecordBo();
|
|
|
- tblSensorRecordBo.setSensorId(bo.getSensorId());
|
|
|
+ tblSensorRecordBo.setSensorId(bo.getSensorId());
|
|
|
LambdaQueryWrapper<TblSensorRecord> lqw = buildSensorRecordWrapper(bo);
|
|
|
List<TblSensorRecordVo> tblSensorRecordVoList = tblSensorRecordMapper.selectVoList(lqw);
|
|
|
if(tblSensorRecordVoList.size() > 0 ){
|