diff --git a/src/main/java/com/ctgu/pro_eld_mqtt_compare/api/ApiService.java b/src/main/java/com/ctgu/pro_eld_mqtt_compare/api/ApiService.java index 155a609..5edcfa2 100644 --- a/src/main/java/com/ctgu/pro_eld_mqtt_compare/api/ApiService.java +++ b/src/main/java/com/ctgu/pro_eld_mqtt_compare/api/ApiService.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -46,7 +47,8 @@ public class ApiService { public Mono> getInfoPakistan(GetInfoVO getInfoVO) { ParameterizedTypeReference> typeRef = (ParameterizedTypeReference>) tableObjectMapping.get(getInfoVO.getTableName()); if (typeRef == null) { - throw new IllegalArgumentException("不支持该表名: " + getInfoVO.getTableName()); +// throw new IllegalArgumentException("不支持该表名: " + getInfoVO.getTableName()); + return Mono.empty(); } return webClientBuilder @@ -58,7 +60,12 @@ public class ApiService { .contentType(MediaType.APPLICATION_JSON) .bodyValue(getInfoVO) .retrieve() - .bodyToMono(typeRef); + .bodyToMono(typeRef) + .onErrorResume(e -> { + log.warn("WebClient 请求 eldData 失败,错误: {}", e.getMessage()); + return Mono.just(Collections.emptyList()); + }); + } // Pro API @@ -79,6 +86,10 @@ public class ApiService { .build()) .header("eldKey", "435e833ca0610442d25b8011475c8352") .retrieve() - .bodyToMono(typeRef); + .bodyToMono(typeRef) + .onErrorResume(e -> { + log.warn("WebClient 请求 eldData 失败,错误: {}", e.getMessage()); + return Mono.just(Collections.emptyList()); + }); } } \ No newline at end of file diff --git a/src/main/java/com/ctgu/pro_eld_mqtt_compare/service/CompareService.java b/src/main/java/com/ctgu/pro_eld_mqtt_compare/service/CompareService.java index 21a1f38..4289862 100644 --- a/src/main/java/com/ctgu/pro_eld_mqtt_compare/service/CompareService.java +++ b/src/main/java/com/ctgu/pro_eld_mqtt_compare/service/CompareService.java @@ -106,11 +106,11 @@ public class CompareService { List valueFields = getValueField(tableName); Map> pakistanMap = pakistanList.stream() - .collect(Collectors.toMap(item -> getValue(item, valueFields), item -> item,(existing, replacement) -> existing)); + .collect(Collectors.toMap(item -> getValue(item, valueFields), item -> item, (existing, replacement) -> existing)); log.info("customerId = {} - tableName = {} - pakistanSet = {}", customerId, tableName, pakistanMap.keySet()); Map> proMap = proList.stream() - .collect(Collectors.toMap(item -> getValue(item, valueFields), item -> item,(existing, replacement) -> existing)); + .collect(Collectors.toMap(item -> getValue(item, valueFields), item -> item, (existing, replacement) -> existing)); log.info("customerId = {} - tableName = {} - proSet = {}", customerId, tableName, proMap.keySet()); // 合并所有 key