|
|
@@ -7,6 +7,7 @@ import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.ruoyi.common.core.domain.entity.SysDictData;
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.common.utils.mqtt.MQTTConnect;
|
|
|
import com.ruoyi.data.domain.*;
|
|
|
@@ -18,6 +19,7 @@ import com.ruoyi.data.domain.vo.TblSensorRecordVo;
|
|
|
import com.ruoyi.data.mapper.*;
|
|
|
import com.ruoyi.data.service.MqttService;
|
|
|
import com.ruoyi.data.service.WebsocketService;
|
|
|
+import com.ruoyi.system.service.ISysDictTypeService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
|
|
|
@@ -49,6 +51,8 @@ public class MqttServiceImpl implements MqttService {
|
|
|
|
|
|
private final TblSensorRecordMapper tblSensorRecordMapper;
|
|
|
|
|
|
+ private final ISysDictTypeService sysDictTypeService;
|
|
|
+
|
|
|
private final WebsocketService websocketService;
|
|
|
|
|
|
@Value("${mqtt.url}")
|
|
|
@@ -109,9 +113,15 @@ public class MqttServiceImpl implements MqttService {
|
|
|
websocketService.sendMessageAll(mqttStr);
|
|
|
// tblSensorRecordMapper.insert(tblSensorRecord);
|
|
|
String protocolType = "";
|
|
|
+ List<SysDictData> sysDictTypeList = sysDictTypeService.selectDictDataByType("protocal_type");
|
|
|
+ for(SysDictData sysDictData:sysDictTypeList){
|
|
|
+ if(Long.valueOf(sysDictData.getDictValue()).longValue() == tblSensor.getProtocalType().longValue()){
|
|
|
+ protocolType = sysDictData.getDictLabel();
|
|
|
+ }
|
|
|
+ }
|
|
|
for(MqttObj obj:mqttObjList){
|
|
|
if(obj.getStatus() == 1) {
|
|
|
- JSONObject topicObj = obj.getTopicQos("tcp");
|
|
|
+ JSONObject topicObj = obj.getTopicQos(protocolType);
|
|
|
MQTTConnect mqttConnect = new MQTTConnect();
|
|
|
try {
|
|
|
mqttConnect.createMqttClient(obj.getServerAddress(), obj.getUuid(), obj.getAccount(), obj.getPassword(), new Callback());
|
|
|
@@ -119,7 +129,7 @@ public class MqttServiceImpl implements MqttService {
|
|
|
String topic = topicObj.get("name").toString().replace("#", "");
|
|
|
mqttConnect.pub(topic, mqttMsg.toString(), Integer.valueOf((String) topicObj.get("qos")));
|
|
|
} else {
|
|
|
- String topic = "sensor/modbustcp/" + deviceId;
|
|
|
+ String topic = "sensor/"+protocolType+"/" + sensorId;
|
|
|
mqttConnect.pub(topic, mqttMsg.toString(), 0);
|
|
|
}
|
|
|
} catch (Exception e) {
|