|
|
|
@ -250,18 +250,20 @@ class MqttConsumer { |
|
|
|
} |
|
|
|
String[] deviceIdPositionArrays; |
|
|
|
if (JsonUtils.isJsonArray(deviceIdPosition)){ |
|
|
|
log.debug("deviceIdPosition is jsonArray:==>{}", datasourceConfigEntity); |
|
|
|
deviceIdPositionArrays= JSON.parseArray(deviceIdPosition,String.class).toArray(new String[0]); |
|
|
|
}else { |
|
|
|
log.debug("deviceIdPosition is json:==>{}", datasourceConfigEntity); |
|
|
|
deviceIdPositionArrays=new String[]{deviceIdPosition}; |
|
|
|
} |
|
|
|
//解析出多个设备ID
|
|
|
|
|
|
|
|
Gson gson = new Gson(); |
|
|
|
String payloadStr = message.getPayload() instanceof String |
|
|
|
? (String) message.getPayload() |
|
|
|
: gson.toJson(message.getPayload()); |
|
|
|
|
|
|
|
String trimData = StringUtils.trim(payloadStr); |
|
|
|
log.debug("payloadStr:==>{}", trimData); |
|
|
|
if (!JsonUtils.isJson(trimData)) { |
|
|
|
log.warn("data is not json:==>{}", datasourceConfigEntity, trimData); |
|
|
|
return true; |
|
|
|
@ -274,6 +276,7 @@ class MqttConsumer { |
|
|
|
String currentJsonValue = gson.toJson(element); |
|
|
|
//获取最终设备ID位置信息
|
|
|
|
String finalDevicePosition=extractDevicePosition(currentJsonValue,deviceIdPositionArrays); |
|
|
|
log.debug("finalDevicePosition:==>{}", finalDevicePosition); |
|
|
|
String deviceId = JsonPath.read(currentJsonValue, finalDevicePosition); |
|
|
|
|
|
|
|
if (StringUtils.isEmpty(deviceId)) { |
|
|
|
@ -298,7 +301,18 @@ class MqttConsumer { |
|
|
|
if (!JsonUtils.isJson(trimData)) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
String deviceId = JsonPath.read(trimData, deviceIdPosition); |
|
|
|
|
|
|
|
String deviceId=""; |
|
|
|
for (String tempPosition : deviceIdPositionArrays) { |
|
|
|
try { |
|
|
|
log.debug("deviceIdPosition:==>{}", tempPosition); |
|
|
|
deviceId = JsonPath.read(trimData, tempPosition); |
|
|
|
break; |
|
|
|
}catch (Exception e){ |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (StringUtils.isEmpty(deviceId)) { |
|
|
|
log.warn("deviceId is null:==>{}", datasourceConfigEntity); |
|
|
|
return true; |
|
|
|
@ -365,6 +379,7 @@ class MqttConsumer { |
|
|
|
String result=""; |
|
|
|
for (int i = 0; i < deviceIdPositionArrays.length; i++) { |
|
|
|
try{ |
|
|
|
log.debug("deviceIdPosition:==>{}", deviceIdPositionArrays[i]); |
|
|
|
Object value=JsonPath.read(rootCurrentJsonValue,deviceIdPositionArrays[i]); |
|
|
|
if (!Objects.isNull(value)){ |
|
|
|
result = deviceIdPositionArrays[i]; |
|
|
|
|