add mqtt data

plp
chenshuichuan 2 years ago
parent 26d80c565b
commit 3847649533

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Mapper;
import java.math.BigDecimal;
import java.util.List;
/**
@ -36,7 +37,8 @@ public interface MqttDataRecordMapper extends BaseMapperX<MqttDataRecordDO> {
.eqIfPresent(MqttDataRecordDO::getAttrValue, reqVO.getAttrValue())
.betweenIfPresent(MqttDataRecordDO::getDeviceTime, reqVO.getDeviceTime())
.betweenIfPresent(MqttDataRecordDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(MqttDataRecordDO::getId));
.orderByDesc(MqttDataRecordDO::getId)
.last("limit "+reqVO.getPageSize()));
}
default MqttDataRecordDO selectLastOne(MqttDataRecordPageReqVO reqVO) {
return selectOne(new QueryWrapper<MqttDataRecordDO>()
@ -45,22 +47,21 @@ public interface MqttDataRecordMapper extends BaseMapperX<MqttDataRecordDO> {
.orderByDesc("id")
.last("limit 1"));
}
default Long selectSum(MqttDataRecordPageReqVO reqVO) {
// SQL sum 查询
// List<Map<String, Object>> result = selectMaps(new QueryWrapper<MqttDataRecordDO>()
// .select("SUM(attr_value) AS sumCount")
// .eq(StringUtils.isNotBlank(reqVO.getDeviceName()),"device_name", reqVO.getDeviceName())
// .eq(StringUtils.isNotBlank(reqVO.getAttribute()),"attribute", reqVO.getAttribute())
// );
// // 获得数量
// if (CollUtil.isEmpty(result)) {
// return 0L;
// }
// return MapUtil.getLong(result.get(0), "sumCount", 0L);
default BigDecimal selectSum(MqttDataRecordPageReqVO reqVO) {
List<MqttDataRecordDO> list = select(reqVO);
if(list!=null && list.size()>0){
return 0L;
BigDecimal sum = BigDecimal.ZERO;
if(list!=null && list.size()>0) {
for (MqttDataRecordDO recordDO: list) {
if(StringUtils.isNotBlank(recordDO.getAttrValue())){
try {
double d = Double.parseDouble(recordDO.getAttrValue());
sum = sum.add(BigDecimal.valueOf(d));
}catch (NumberFormatException e){
System.out.println("------error: default BigDecimal selectSum():采集数据不是数字!------");
}
}
}
}
return sum;
}
}

@ -1,24 +1,19 @@
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.mqttrecord.vo.MqttData;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttDataUtils;
import cn.iocoder.yudao.module.iot.controller.admin.mqttdatarecord.vo.MqttDataRecordPageReqVO;
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.mqttdatarecord.MqttDataRecordService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@ -28,8 +23,6 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Validated
public class MqttServerDataController {
@Resource
private MqttDataRecordService mqttDataRecordService;
@Resource
private MqttDataRecordMapper mqttDataRecordMapper;
@ -51,18 +44,23 @@ public class MqttServerDataController {
return success(1L);
}
@PostMapping("/createMap2")
@Operation(summary = "创建数采记录")
public CommonResult<Boolean> createMap(@RequestBody Map<String, Object> param) {
MqttData mqttData = MqttDataUtils.parseMap(param);
// if(mqttData!=null){
// MqttRecordSaveReqVO createReqVO = new MqttRecordSaveReqVO();
// createReqVO.setDeviceCode(mqttData.getDeviceID());
// createReqVO.setGatewayCode(mqttData.getGatewayID());
// createReqVO.setDeviceDataTime(mqttData.getDeviceDataTime());
// createReqVO.setDeviceData(JSON.toJSONString(param));
// mqttRecordService.createMqttRecord(createReqVO);
// }
return success(true);
@GetMapping("/getValue")
@Operation(summary = "获得设备数据最新值")
public CommonResult<String> getByDeviceAndAttr(@RequestParam("deviceName") String deviceName
,@RequestParam("attribute") String attribute) {
MqttDataRecordPageReqVO reqVO = new MqttDataRecordPageReqVO().setDeviceName(deviceName).setAttribute(attribute);
MqttDataRecordDO mqttDataRecord = mqttDataRecordMapper.selectLastOne(reqVO);
return success(mqttDataRecord.getAttrValue());
}
@GetMapping("/getList")
@Operation(summary = "获得设备数据列表默认十条")
public CommonResult<List<MqttDataRecordDO>> getList(MqttDataRecordPageReqVO reqVO) {
return success(mqttDataRecordMapper.select(reqVO));
}
@GetMapping("/getSum")
@Operation(summary = "获得设备数据汇总")
public CommonResult<BigDecimal> getSum(MqttDataRecordPageReqVO reqVO) {
return success(mqttDataRecordMapper.selectSum(reqVO));
}
}

@ -48,7 +48,7 @@ spring:
datasource:
master:
name: besure_neimeng
url: jdbc:mysql://47.106.185.127:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
url: jdbc:mysql://111.67.199.122:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
# url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例
username: besure_user1
password: zpW5:,LGHACh

Loading…
Cancel
Save