fix mqtt data

plp
chenshuichuan 2 years ago
parent c77bcc809f
commit 5b86719c7c

@ -2,8 +2,11 @@ package cn.iocoder.yudao.module.mes.controller.admin.mqtt;
import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.iot.controller.admin.mqttdatarecord.vo.MqttDataRecordPageReqVO; import cn.iocoder.yudao.module.iot.controller.admin.mqttdatarecord.vo.MqttDataRecordPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttRecordSaveReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.mqttdatarecord.MqttDataRecordDO; import cn.iocoder.yudao.module.iot.dal.dataobject.mqttdatarecord.MqttDataRecordDO;
import cn.iocoder.yudao.module.iot.dal.mysql.mqttdatarecord.MqttDataRecordMapper; import cn.iocoder.yudao.module.iot.dal.mysql.mqttdatarecord.MqttDataRecordMapper;
import cn.iocoder.yudao.module.iot.service.mqttrecord.MqttRecordService;
import com.alibaba.fastjson.JSON;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -12,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -25,20 +29,33 @@ public class MqttServerDataController {
@Resource @Resource
private MqttDataRecordMapper mqttDataRecordMapper; private MqttDataRecordMapper mqttDataRecordMapper;
@Resource
private MqttRecordService mqttRecordService;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建设备数据记录") @Operation(summary = "创建设备数据记录")
public CommonResult<Long> createMqttDataRecord(@RequestBody MqttDataSaveVO saveVO) { public CommonResult<Long> createMqttDataRecord(@RequestBody MqttDataSaveVO saveVO) {
System.out.println(saveVO.toString()); System.out.println(saveVO.toString());
if(StringUtils.isNotEmpty(saveVO.getTopic()) && saveVO.getPayload()!=null){ if(StringUtils.isNotEmpty(saveVO.getTopic()) && saveVO.getPayload()!=null){
List<MqttDataRecordDO> list = new ArrayList<>(); List<MqttDataRecordDO> list = new ArrayList<>();
boolean valid = false;
for (String key: saveVO.getPayload().keySet()) { for (String key: saveVO.getPayload().keySet()) {
MqttDataRecordDO recordDO = new MqttDataRecordDO().setDeviceName(saveVO.getTopic()) MqttDataRecordDO recordDO = new MqttDataRecordDO().setDeviceName(saveVO.getTopic())
.setAttribute(key).setAttrValue(saveVO.getPayload().get(key)); .setAttribute(key).setAttrValue(saveVO.getPayload().get(key));
list.add(recordDO); list.add(recordDO);
//检查值是否有效,有可能都是空值那就不存
if(StringUtils.isNotBlank(recordDO.getAttrValue()))
valid = true;
} }
if(list.size()>0){ if(list.size()>0 && valid){
//保存单个值
mqttDataRecordMapper.insertBatch(list); mqttDataRecordMapper.insertBatch(list);
//保存原值
MqttRecordSaveReqVO createReqVO = new MqttRecordSaveReqVO();
createReqVO.setDeviceCode(saveVO.getTopic());
createReqVO.setGatewayCode("");
createReqVO.setDeviceDataTime(LocalDateTime.now());
createReqVO.setDeviceData(JSON.toJSONString(saveVO.getPayload()));
mqttRecordService.createMqttRecord(createReqVO);
} }
} }
return success(1L); return success(1L);

Loading…
Cancel
Save