Browse Source

增加trendLog单条数据结构的单独转发判定

master
zhczyx@163.com 1 month ago
parent
commit
68453a6a10
  1. 9
      src/main/java/com/techsor/datacenter/receiver/config/DataCenterEnvConfig.java
  2. 23
      src/main/java/com/techsor/datacenter/receiver/service/DataTransService.java

9
src/main/java/com/techsor/datacenter/receiver/config/DataCenterEnvConfig.java

@ -26,7 +26,10 @@ public class DataCenterEnvConfig {
@Value("${data.center.ioserver_process.api:#{'/v1/generic/ioserver_process'}}") @Value("${data.center.ioserver_process.api:#{'/v1/generic/ioserver_process'}}")
private String processIoserverUrl; private String processIoserverUrl;
@Value("${data.center.ioserver_process.api:#{'/v1/generic/st150_process'}}") @Value("${data.center.trendLog.api:#{'/v1/generic/trendLog_process'}}")
private String processTrendLogUrl;
@Value("${data.center.st150_process.api:#{'/v1/generic/st150_process'}}")
private String processGW150Url; private String processGW150Url;
@Value("${data.center.zaiot_process.api:#{'/v1/generic/zaiot_process'}}") @Value("${data.center.zaiot_process.api:#{'/v1/generic/zaiot_process'}}")
@ -69,6 +72,10 @@ public class DataCenterEnvConfig {
return apiAddress+processIoserverUrl; return apiAddress+processIoserverUrl;
} }
public String getProcessTrendLogUrl() {
return apiAddress+processTrendLogUrl;
}
public void setProcessIoserverUrl(String processIoserverUrl) { public void setProcessIoserverUrl(String processIoserverUrl) {
this.processIoserverUrl = processIoserverUrl; this.processIoserverUrl = processIoserverUrl;
} }

23
src/main/java/com/techsor/datacenter/receiver/service/DataTransService.java

@ -80,6 +80,10 @@ public class DataTransService {
//单独处理ST-150网关数据 //单独处理ST-150网关数据
logger.debug("CustomSend Data :{} ,To: {}", jsonParams,dataCenterEnvConfig.getProcessIoserverUrl()); logger.debug("CustomSend Data :{} ,To: {}", jsonParams,dataCenterEnvConfig.getProcessIoserverUrl());
response = this.defaultHttpRequestUtil.postJson(dataCenterEnvConfig.getGW150ProcessUrl(), jsonParams); response = this.defaultHttpRequestUtil.postJson(dataCenterEnvConfig.getGW150ProcessUrl(), jsonParams);
}else if (isTrendLog(rawJson)){
//单独处理TrendLog数据
logger.debug("CustomSend Data :{} ,To: {}", jsonParams,dataCenterEnvConfig.getProcessTrendLogUrl());
response = this.defaultHttpRequestUtil.postJson(dataCenterEnvConfig.getProcessTrendLogUrl(), jsonParams);
}else{ }else{
logger.debug("CustomSend Data :{} ,To: {}", jsonParams,dataCenterEnvConfig.getProcessApiUrl()); logger.debug("CustomSend Data :{} ,To: {}", jsonParams,dataCenterEnvConfig.getProcessApiUrl());
response = this.defaultHttpRequestUtil.postJson(dataCenterEnvConfig.getProcessApiUrl(), jsonParams); response = this.defaultHttpRequestUtil.postJson(dataCenterEnvConfig.getProcessApiUrl(), jsonParams);
@ -138,4 +142,23 @@ public class DataTransService {
return hasD && hasTs; return hasD && hasTs;
} }
/**
* 检查JSON字符串是否包含特定的字段用于判断是否符合GW150数据格式
*
* @param jsonStr 待检查的JSON字符串
* @return 如果JSON字符串同时包含字段"Instance""DeviceId""log_buffer"则返回true否则返回false
*/
private Boolean isTrendLog(String jsonStr){
// 解析JSON字符串为JsonObject,以便进行字段检查
JsonObject json = JsonParser.parseString(jsonStr).getAsJsonObject();
// 检查JSON对象中是否包含字段"Instance"
boolean hasInstance = json.has("Instance");
// 检查JSON对象中是否包含字段"DeviceId"
boolean hasDeviceId = json.has("DeviceId");
// 检查JSON对象中是否包含字段"hasLogBuffer"
boolean hasLogBuffer = json.has("log_buffer");
return hasInstance && hasDeviceId && hasLogBuffer;
}
} }

Loading…
Cancel
Save