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.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@ -36,7 +37,8 @@ public interface MqttDataRecordMapper extends BaseMapperX<MqttDataRecordDO> {
.eqIfPresent(MqttDataRecordDO::getAttrValue, reqVO.getAttrValue()) .eqIfPresent(MqttDataRecordDO::getAttrValue, reqVO.getAttrValue())
.betweenIfPresent(MqttDataRecordDO::getDeviceTime, reqVO.getDeviceTime()) .betweenIfPresent(MqttDataRecordDO::getDeviceTime, reqVO.getDeviceTime())
.betweenIfPresent(MqttDataRecordDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(MqttDataRecordDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(MqttDataRecordDO::getId)); .orderByDesc(MqttDataRecordDO::getId)
.last("limit "+reqVO.getPageSize()));
} }
default MqttDataRecordDO selectLastOne(MqttDataRecordPageReqVO reqVO) { default MqttDataRecordDO selectLastOne(MqttDataRecordPageReqVO reqVO) {
return selectOne(new QueryWrapper<MqttDataRecordDO>() return selectOne(new QueryWrapper<MqttDataRecordDO>()
@ -45,22 +47,21 @@ public interface MqttDataRecordMapper extends BaseMapperX<MqttDataRecordDO> {
.orderByDesc("id") .orderByDesc("id")
.last("limit 1")); .last("limit 1"));
} }
default Long selectSum(MqttDataRecordPageReqVO reqVO) { default BigDecimal 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);
List<MqttDataRecordDO> list = select(reqVO); List<MqttDataRecordDO> list = select(reqVO);
BigDecimal sum = BigDecimal.ZERO;
if(list!=null && list.size()>0) { if(list!=null && list.size()>0) {
for (MqttDataRecordDO recordDO: list) {
if(StringUtils.isNotBlank(recordDO.getAttrValue())){
return 0L; 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; 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.mqttrecord.vo.MqttData; import cn.iocoder.yudao.module.iot.controller.admin.mqttdatarecord.vo.MqttDataRecordPageReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.mqttrecord.vo.MqttDataUtils;
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.mqttdatarecord.MqttDataRecordService;
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;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 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 @Validated
public class MqttServerDataController { public class MqttServerDataController {
@Resource
private MqttDataRecordService mqttDataRecordService;
@Resource @Resource
private MqttDataRecordMapper mqttDataRecordMapper; private MqttDataRecordMapper mqttDataRecordMapper;
@ -51,18 +44,23 @@ public class MqttServerDataController {
return success(1L); return success(1L);
} }
@PostMapping("/createMap2") @GetMapping("/getValue")
@Operation(summary = "创建数采记录") @Operation(summary = "获得设备数据最新值")
public CommonResult<Boolean> createMap(@RequestBody Map<String, Object> param) { public CommonResult<String> getByDeviceAndAttr(@RequestParam("deviceName") String deviceName
MqttData mqttData = MqttDataUtils.parseMap(param); ,@RequestParam("attribute") String attribute) {
// if(mqttData!=null){ MqttDataRecordPageReqVO reqVO = new MqttDataRecordPageReqVO().setDeviceName(deviceName).setAttribute(attribute);
// MqttRecordSaveReqVO createReqVO = new MqttRecordSaveReqVO();
// createReqVO.setDeviceCode(mqttData.getDeviceID()); MqttDataRecordDO mqttDataRecord = mqttDataRecordMapper.selectLastOne(reqVO);
// createReqVO.setGatewayCode(mqttData.getGatewayID()); return success(mqttDataRecord.getAttrValue());
// createReqVO.setDeviceDataTime(mqttData.getDeviceDataTime()); }
// createReqVO.setDeviceData(JSON.toJSONString(param)); @GetMapping("/getList")
// mqttRecordService.createMqttRecord(createReqVO); @Operation(summary = "获得设备数据列表默认十条")
// } public CommonResult<List<MqttDataRecordDO>> getList(MqttDataRecordPageReqVO reqVO) {
return success(true); 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: datasource:
master: master:
name: besure_neimeng 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 连接的示例 # 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 username: besure_user1
password: zpW5:,LGHACh password: zpW5:,LGHACh

Loading…
Cancel
Save