|
|
@@ -34,9 +34,9 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
public class QxybDataService {
|
|
|
|
|
|
- public static final String BASE_URL = "http://111.198.2.202:6657";
|
|
|
- public static final DateTimeFormatter DATE_TIME_FORMATTER1 = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH_mm_ss");
|
|
|
- public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ private static final String BASE_URL = "http://111.198.2.202:6657";
|
|
|
+ private static final DateTimeFormatter DATE_TIME_FORMATTER1 = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH_mm_ss");
|
|
|
+ private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
/**
|
|
|
* 下载路径
|
|
|
@@ -52,16 +52,12 @@ public class QxybDataService {
|
|
|
private CacheManager cacheManager;
|
|
|
|
|
|
private final static String CACHE_NAME_DOWNLOAD_DATA = "cache_downloaded_data";
|
|
|
- private final static String CACHE_KEY_DOWNLOAD_DATA = "key_downloaded_data";
|
|
|
|
|
|
protected static OkHttpClient client = new OkHttpClient().newBuilder()
|
|
|
.connectTimeout(10, TimeUnit.SECONDS)
|
|
|
.readTimeout(10, TimeUnit.SECONDS)
|
|
|
.writeTimeout(10, TimeUnit.SECONDS)
|
|
|
.build();
|
|
|
- protected static String RDField = "LCJDomain";
|
|
|
- protected static String domain = "domain02";
|
|
|
- protected static String ensemble = "mp3_cu3";
|
|
|
|
|
|
/**
|
|
|
* 下载气象预报数据
|
|
|
@@ -127,8 +123,7 @@ public class QxybDataService {
|
|
|
BASE_URL, divisionCode, hour, startTime, endTime);
|
|
|
log.info("下载{}:{}", batchFileName, url);
|
|
|
String batchResult = getResult(url);
|
|
|
- writeFile(batchResult, downloadFilePath + batchFileName);
|
|
|
- log.info("下载{}成功", batchFileName);
|
|
|
+
|
|
|
JSONObject json = JSONObject.parseObject(batchResult);
|
|
|
publishList = json.getJSONArray("data").toJavaList(PublishInfo.class);
|
|
|
Map<String, List<PublishInfo>> publishDtMap = publishList.stream()
|
|
|
@@ -136,12 +131,22 @@ public class QxybDataService {
|
|
|
|
|
|
publishDtMap.forEach((k, v) -> {
|
|
|
v.add(new PublishInfo(k, "MPSE", getPublishTime(k)));
|
|
|
+ });
|
|
|
+ List<PublishInfo> newPublishList = new ArrayList<>();
|
|
|
+ publishDtMap.forEach((k, v) -> {
|
|
|
+ newPublishList.addAll(v);
|
|
|
+ });
|
|
|
+ json.put("data", newPublishList);
|
|
|
+ batchResult = json.toJSONString();
|
|
|
+ writeFile(batchResult, downloadFilePath + batchFileName);
|
|
|
+ log.info("下载{}成功", batchFileName);
|
|
|
+
|
|
|
+ publishDtMap.forEach((k, v) -> {
|
|
|
v.forEach(p -> {
|
|
|
downloadDivRainData("FRD", divisionCode, p, 1);
|
|
|
});
|
|
|
});
|
|
|
publishDtMap.forEach((k, v) -> {
|
|
|
- v.add(new PublishInfo(k, "MPSE", getPublishTime(k)));
|
|
|
v.forEach(p -> {
|
|
|
downloadDivRainData("FRD", divisionCode, p, 24);
|
|
|
});
|
|
|
@@ -323,7 +328,7 @@ public class QxybDataService {
|
|
|
String dt1 = h.format(DATE_TIME_FORMATTER1);
|
|
|
String fileName = String.format("%s,%s,%s,%s,%s.json", prefix, publishDT, ensemble1, hour, dt1);
|
|
|
if (!isSuccess(fileName)) {
|
|
|
- String url2 = String.format("%s/getForecastMatrixByWrfRDField?RDField=%s&domain=%s&publishDT=%s&ensemble=%s&step=%s&DT1=%s",
|
|
|
+ String url2 = String.format("%s/getForecastMatrixByWrfRDField?RDField=%s&domain=%s&publishDT=%s&ensemble=%s&step=%s&DT1=%s&content=2mTC",
|
|
|
BASE_URL, rdField, domain, publishDT, ensemble1.equals("MPSE") ? "" : ensemble1, hour, dt1);
|
|
|
log.info("下载{}:{}", fileName, url2);
|
|
|
String result = getResult(url2);
|
|
|
@@ -426,6 +431,7 @@ public class QxybDataService {
|
|
|
*/
|
|
|
public void downloadSnowCover(String publishDt) {
|
|
|
log.info("###开始下载澜沧江上游高程带融雪覆盖预报,批次:{}", publishDt);
|
|
|
+ String ensemble = "mp3_cu3";
|
|
|
//积雪覆盖数据从本地获取
|
|
|
List<String> cdNewList = new LinkedList<>();
|
|
|
log.info("下载昌都积雪覆盖数据:", snowCdFile);
|
|
|
@@ -502,20 +508,29 @@ public class QxybDataService {
|
|
|
BASE_URL, rdField, startTime, endTime);
|
|
|
log.info("下载{}:{}", batchFileName, url);
|
|
|
String batchResult = getResult(url);
|
|
|
- writeFile(batchResult, downloadFilePath + batchFileName);
|
|
|
- log.info("下载{}成功", batchFileName);
|
|
|
JSONObject json = JSONObject.parseObject(batchResult);
|
|
|
publishList = json.getJSONArray("data").toJavaList(PublishInfo.class);
|
|
|
Map<String, List<PublishInfo>> publishDtMap = publishList.stream()
|
|
|
.collect(Collectors.groupingBy(e -> e.getPublishDT(), Collectors.toList()));
|
|
|
-
|
|
|
publishDtMap.forEach((k, v) -> {
|
|
|
v.add(new PublishInfo(k, "MPSE", getPublishTime(k)));
|
|
|
+ });
|
|
|
+ List<PublishInfo> newPublishList = new ArrayList<>();
|
|
|
+ publishDtMap.forEach((k, v) -> {
|
|
|
+ newPublishList.addAll(v);
|
|
|
+ });
|
|
|
+ json.put("data", newPublishList);
|
|
|
+ batchResult = json.toJSONString();
|
|
|
+ writeFile(batchResult, downloadFilePath + batchFileName);
|
|
|
+ log.info("下载{}成功", batchFileName);
|
|
|
+
|
|
|
+ publishDtMap.forEach((k, v) -> {
|
|
|
v.forEach(p -> {
|
|
|
downloadStationTempData(rdField, p, 1);
|
|
|
});
|
|
|
|
|
|
});
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
log.error("下载失败", e);
|
|
|
}
|