|
@@ -1,5 +1,6 @@
|
|
|
package com.ruoyi.data.service.impl;
|
|
package com.ruoyi.data.service.impl;
|
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -7,11 +8,11 @@ import com.ruoyi.common.utils.StringUtils;
|
|
|
import com.ruoyi.common.utils.mqtt.MQTTConnect;
|
|
import com.ruoyi.common.utils.mqtt.MQTTConnect;
|
|
|
import com.ruoyi.data.domain.*;
|
|
import com.ruoyi.data.domain.*;
|
|
|
import com.ruoyi.data.domain.bo.TblMqttBo;
|
|
import com.ruoyi.data.domain.bo.TblMqttBo;
|
|
|
|
|
+import com.ruoyi.data.domain.bo.TblSensorRecordBo;
|
|
|
import com.ruoyi.data.domain.vo.TblMqttVo;
|
|
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.domain.vo.TblRecordVo;
|
|
|
|
|
+import com.ruoyi.data.domain.vo.TblSensorRecordVo;
|
|
|
|
|
+import com.ruoyi.data.mapper.*;
|
|
|
import com.ruoyi.data.service.MqttService;
|
|
import com.ruoyi.data.service.MqttService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -41,6 +42,8 @@ public class MqttServiceImpl implements MqttService {
|
|
|
|
|
|
|
|
private final TblSensorMapper tblSensorMapper;
|
|
private final TblSensorMapper tblSensorMapper;
|
|
|
|
|
|
|
|
|
|
+ private final TblSensorRecordMapper tblSensorRecordMapper;
|
|
|
|
|
+
|
|
|
@Value("${mqtt.url}")
|
|
@Value("${mqtt.url}")
|
|
|
private String mqttUrl;
|
|
private String mqttUrl;
|
|
|
|
|
|
|
@@ -76,6 +79,13 @@ public class MqttServiceImpl implements MqttService {
|
|
|
tblRecord.setCreateBy("admin");
|
|
tblRecord.setCreateBy("admin");
|
|
|
tblRecord.setUpdateBy("admin");
|
|
tblRecord.setUpdateBy("admin");
|
|
|
tblRecordMapper.insert(tblRecord);
|
|
tblRecordMapper.insert(tblRecord);
|
|
|
|
|
+ TblSensorRecordBo tblSensorRecord = new TblSensorRecordBo();
|
|
|
|
|
+ tblSensorRecord.setEquipmentId(deviceId);
|
|
|
|
|
+ tblSensorRecord.setJson(mqttStr);
|
|
|
|
|
+ tblSensorRecord.setCreateBy("admin");
|
|
|
|
|
+ tblSensorRecord.setUpdateBy("admin");
|
|
|
|
|
+ updateNowRecord(tblSensorRecord);
|
|
|
|
|
+// tblSensorRecordMapper.insert(tblSensorRecord);
|
|
|
for(MqttObj obj:mqttObjList){
|
|
for(MqttObj obj:mqttObjList){
|
|
|
if(obj.getStatus() == 1) {
|
|
if(obj.getStatus() == 1) {
|
|
|
JSONObject topicObj = obj.getTopicQos("tcp");
|
|
JSONObject topicObj = obj.getTopicQos("tcp");
|
|
@@ -108,6 +118,27 @@ public class MqttServiceImpl implements MqttService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ public void updateNowRecord(TblSensorRecordBo bo){
|
|
|
|
|
+ TblSensorRecordBo tblSensorRecordBo = new TblSensorRecordBo();
|
|
|
|
|
+ tblSensorRecordBo.setSensorId(bo.getSensorId());
|
|
|
|
|
+ LambdaQueryWrapper<TblSensorRecord> lqw = buildSensorRecordWrapper(bo);
|
|
|
|
|
+ List<TblSensorRecordVo> tblSensorRecordVoList = tblSensorRecordMapper.selectVoList(lqw);
|
|
|
|
|
+ if(tblSensorRecordVoList.size() > 0 ){
|
|
|
|
|
+ bo.setId(tblSensorRecordVoList.get(0).getId());
|
|
|
|
|
+ TblSensorRecord update = BeanUtil.toBean(bo, TblSensorRecord.class);
|
|
|
|
|
+ validEntityBeforeSave(update);
|
|
|
|
|
+ tblSensorRecordMapper.updateById(update);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ TblSensorRecord add = BeanUtil.toBean(bo, TblSensorRecord.class);
|
|
|
|
|
+ validEntityBeforeSave(add);
|
|
|
|
|
+ tblSensorRecordMapper.insert(add);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void validEntityBeforeSave(TblSensorRecord entity){
|
|
|
|
|
+ //TODO 做一些数据校验,如唯一约束
|
|
|
|
|
+ }
|
|
|
@Override
|
|
@Override
|
|
|
public void createMqtt(TblMqttBo bo){
|
|
public void createMqtt(TblMqttBo bo){
|
|
|
LambdaQueryWrapper<TblMqtt> lqw = buildQueryWrapper(bo);
|
|
LambdaQueryWrapper<TblMqtt> lqw = buildQueryWrapper(bo);
|
|
@@ -191,4 +222,14 @@ public class MqttServiceImpl implements MqttService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private LambdaQueryWrapper<TblSensorRecord> buildSensorRecordWrapper(TblSensorRecordBo bo) {
|
|
|
|
|
+ Map<String, Object> params = bo.getParams();
|
|
|
|
|
+ LambdaQueryWrapper<TblSensorRecord> lqw = Wrappers.lambdaQuery();
|
|
|
|
|
+ lqw.eq(bo.getSensorId() != null, TblSensorRecord::getSensorId, bo.getSensorId());
|
|
|
|
|
+ lqw.eq(StringUtils.isNotBlank(bo.getJson()), TblSensorRecord::getJson, bo.getJson());
|
|
|
|
|
+ lqw.eq(bo.getEquipmentId() != null, TblSensorRecord::getEquipmentId, bo.getEquipmentId());
|
|
|
|
|
+ return lqw;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|