iot对接

This commit is contained in:
jiang 2025-09-15 18:06:34 +08:00
parent 88c81c9010
commit b68472cd98
2 changed files with 22 additions and 4 deletions

View File

@ -1,5 +1,6 @@
package com.bonus.material.iot.controller;
import com.alibaba.fastjson.JSON;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.iot.dto.GpsData;
import com.bonus.material.iot.dto.PhaseData;
@ -145,12 +146,14 @@ public class IotDataController {
GpsData data = new GpsData();
try {
// 解析 JSON 数据
JsonNode rootNode = objectMapper.readTree(rawData);
// 解析 JSON 数据
//JsonNode rootNode = objectMapper.readTree(JSON.parseObject(rawData).getString("payload"));
JsonNode rootNode = objectMapper.readTree(rawData);
// 1. 解析 UUID
parseUuid(rootNode, data);
//解析设备类型
parseType(rootNode, data);
// 2. 解析位置信息
parsePositionData(rootNode, data);
@ -186,6 +189,12 @@ public class IotDataController {
}
}
private void parseType(JsonNode rootNode, GpsData data) {
if (rootNode.has("type")) {
data.setType(rootNode.get("type").asText());
}
}
/**
* 解析电池电量数据
*/
@ -301,11 +310,15 @@ public class IotDataController {
private void parseLbsWifiData(String dataStr, GpsData data, String source) {
try {
String[] parts = dataStr.split(",");
if (parts.length >= 3) {
if (parts.length == 3) {
data.setLatitude(parts[0]);
data.setLongitude(parts[1]);
data.setAccuracy(parts[2]);
data.setPositionSource(source);
} else if (parts.length == 2) {
data.setLatitude(parts[0]);
data.setLongitude(parts[1]);
data.setPositionSource(source);
} else {
logger.warn("{}数据格式不正确,部分不足: {}", source, dataStr);
}

View File

@ -22,6 +22,11 @@ public class GpsData {
*/
private String uuid;
/**
* 设备类型
*/
private String type;
/**
* UTC时间(GPS时间)
* 来源: GNSS数据中的GNRMC或GNGGA语句