|
|
|
|
@ -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<Long> createMqttDataRecord(@RequestBody MqttDataSaveVO saveVO) {
|
|
|
|
|
System.out.println(saveVO.toString());
|
|
|
|
|
if(StringUtils.isNotEmpty(saveVO.getTopic()) && saveVO.getPayload()!=null){
|
|
|
|
|
List<MqttDataRecordDO> 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);
|
|
|
|
|
|