From 5b86719c7c5ee67a99f4aaafba5bb5904d14de01 Mon Sep 17 00:00:00 2001 From: chenshuichuan <1154693969@qq.com> Date: Thu, 1 Aug 2024 22:06:16 +0800 Subject: [PATCH] fix mqtt data --- .../admin/mqtt/MqttServerDataController.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/mqtt/MqttServerDataController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/mqtt/MqttServerDataController.java index 6034a031a1..ab3952e5d9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/mqtt/MqttServerDataController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/mqtt/MqttServerDataController.java @@ -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.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.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.tags.Tag; import org.apache.commons.lang3.StringUtils; @@ -12,6 +15,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @@ -25,20 +29,33 @@ public class MqttServerDataController { @Resource private MqttDataRecordMapper mqttDataRecordMapper; - + @Resource + private MqttRecordService mqttRecordService; @PostMapping("/create") @Operation(summary = "创建设备数据记录") public CommonResult createMqttDataRecord(@RequestBody MqttDataSaveVO saveVO) { System.out.println(saveVO.toString()); if(StringUtils.isNotEmpty(saveVO.getTopic()) && saveVO.getPayload()!=null){ List list = new ArrayList<>(); + boolean valid = false; for (String key: saveVO.getPayload().keySet()) { MqttDataRecordDO recordDO = new MqttDataRecordDO().setDeviceName(saveVO.getTopic()) .setAttribute(key).setAttrValue(saveVO.getPayload().get(key)); list.add(recordDO); + //检查值是否有效,有可能都是空值那就不存 + if(StringUtils.isNotBlank(recordDO.getAttrValue())) + valid = true; } - if(list.size()>0){ + if(list.size()>0 && valid){ + //保存单个值 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);