|
|
@@ -8,10 +8,12 @@ import cn.hutool.http.HttpUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ublinkage.datacollection.entity.PublishInfo;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.jsoup.internal.StringUtil;
|
|
|
import org.springframework.beans.factory.InitializingBean;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.nio.file.Path;
|
|
|
@@ -56,52 +58,78 @@ public class QxybDataCollectionTask implements InitializingBean {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 获取预报批次数据列表,每天下午3点同步
|
|
|
+ * 执行下载
|
|
|
*/
|
|
|
- @Scheduled(cron = "0 0 07 * * ? ")
|
|
|
- public void getQxybDataAudo() {
|
|
|
- //固定时间就不执行自动任务
|
|
|
- if (ybFixedTime) {
|
|
|
- return;
|
|
|
+ private void download() {
|
|
|
+ try {
|
|
|
+ log.info("开始下载融雪数据----");
|
|
|
+ //获取融雪数据
|
|
|
+ this.getDomainSnow();
|
|
|
+ log.info("结束下载融雪数据----");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.error(e.getMessage());
|
|
|
}
|
|
|
- log.info("开始下载:{}到{}的预报数据.", this.getYbStartTime(), this.getYbEndTime());
|
|
|
-
|
|
|
try {
|
|
|
+ log.info("开始下载15分区雨量----");
|
|
|
//下载分区雨量
|
|
|
this.getForecast15Data();
|
|
|
+ log.info("结束下载15分区雨量----");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
log.error(e.getMessage());
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
+ log.info("开始下载29分区雨量----");
|
|
|
this.getForecast29Data();
|
|
|
+ log.info("结束下载29分区雨量----");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
log.error(e.getMessage());
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
+ log.info("开始下载昌都、曲孜卡温度和降雨----");
|
|
|
this.getDomainTempAndRain();
|
|
|
+ log.info("结束下载昌都、曲孜卡温度和降雨----");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
log.error(e.getMessage());
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
+ log.info("开始下载网格数据----");
|
|
|
//获取网格数据,包含温度网格,降雨网格
|
|
|
this.getGridData();
|
|
|
+ log.info("结束下载网格数据----");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
log.error(e.getMessage());
|
|
|
}
|
|
|
try {
|
|
|
+ log.info("开始下载温度站点数据----");
|
|
|
//下载温度站点
|
|
|
this.getForeTempData();
|
|
|
+ log.info("结束下载温度站点数据----");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
log.error(e.getMessage());
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取预报批次数据列表,每天下午3点同步
|
|
|
+ */
|
|
|
+ @Scheduled(cron = "0 0 07 * * ? ")
|
|
|
+ public void getQxybDataAudo() {
|
|
|
+ //固定时间就不执行自动任务
|
|
|
+ if (ybFixedTime) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ log.info("开始下载:{}到{}的预报数据.", this.getYbStartTime(), this.getYbEndTime());
|
|
|
+
|
|
|
+ this.download();
|
|
|
log.info("结束下载:{}到{}的预报数据.", this.getYbStartTime(), this.getYbEndTime());
|
|
|
}
|
|
|
|
|
|
@@ -114,18 +142,7 @@ public class QxybDataCollectionTask implements InitializingBean {
|
|
|
return;
|
|
|
}
|
|
|
log.info("开始下载:{}到{}的预报数据.", this.getYbStartTime(), this.getYbEndTime());
|
|
|
- //下载分区雨量
|
|
|
- this.getForecast15Data();
|
|
|
-
|
|
|
- this.getForecast29Data();
|
|
|
-
|
|
|
- this.getDomainTempAndRain();
|
|
|
-
|
|
|
- //获取网格数据,包含温度网格,降雨网格
|
|
|
- this.getGridData();
|
|
|
-
|
|
|
- //下载温度站点
|
|
|
- this.getForeTempData();
|
|
|
+ this.download();
|
|
|
log.info("结束下载:{}到{}的预报数据.", this.getYbStartTime(), this.getYbEndTime());
|
|
|
}
|
|
|
|
|
|
@@ -204,6 +221,63 @@ public class QxybDataCollectionTask implements InitializingBean {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取融雪数据
|
|
|
+ */
|
|
|
+ private void getDomainSnow() {
|
|
|
+ //融雪数据从本地获取
|
|
|
+// String yyyyMMdd = DateUtil.format(new Date(), "yyyyMMdd");
|
|
|
+ try {
|
|
|
+ List<String> cdNewList = new LinkedList<>();
|
|
|
+ if (new File(snowCdFile).exists()) {
|
|
|
+ List<String> cdlist = FileUtil.readUtf8Lines(snowCdFile);
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 10));
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 9));
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 8));
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 7));
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 6));
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 5));
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 4));
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 3));
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 2));
|
|
|
+ cdNewList.add(cdlist.get(cdlist.size() - 1));
|
|
|
+
|
|
|
+ String first = cdNewList.get(0);
|
|
|
+ if (StringUtils.isEmpty(first)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String yyyyMMdd = DateUtil.parseLocalDateTime(first.split(",")[0], "yyyy-MM-dd").minusDays(1).format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
|
|
+ FileUtil.writeUtf8Lines(cdNewList, downloadFilePath + "DomainSnow,cd," + yyyyMMdd + "_12_192," + ensemble + "," + System.currentTimeMillis() + ".txt");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("e:{}", e.getMessage());
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ if (new File(snowQzkFile).exists()) {
|
|
|
+ List<String> qzkNewList = new LinkedList<>();
|
|
|
+ List<String> qzkList = FileUtil.readUtf8Lines(snowQzkFile);
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 10));
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 9));
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 8));
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 7));
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 6));
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 5));
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 4));
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 3));
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 2));
|
|
|
+ qzkNewList.add(qzkList.get(qzkList.size() - 1));
|
|
|
+
|
|
|
+ String first = qzkNewList.get(0);
|
|
|
+ if (StringUtils.isEmpty(first)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String yyyyMMdd = DateUtil.parseLocalDateTime(first.split(",")[0], "yyyy-MM-dd").minusDays(1).format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
|
|
+ FileUtil.writeUtf8Lines(qzkNewList, downloadFilePath + "DomainSnow,qzk," + yyyyMMdd + "_12_192," + ensemble + "," + System.currentTimeMillis() + ".txt");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("e:{}", e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 获取昌都、曲孜卡的13个区域的降雨和温度数据
|
|
|
@@ -236,45 +310,9 @@ public class QxybDataCollectionTask implements InitializingBean {
|
|
|
} catch (Exception e) {
|
|
|
log.error("e:{}", e.getMessage());
|
|
|
}
|
|
|
- //融雪数据从本地获取
|
|
|
- String yyyyMMdd = DateUtil.format(new Date(), "yyyyMMdd");
|
|
|
- try {
|
|
|
- List<String> cdNewList = new LinkedList<>();
|
|
|
- if (new File(snowCdFile).exists()) {
|
|
|
- List<String> cdlist = FileUtil.readUtf8Lines(snowCdFile);
|
|
|
- cdNewList.add(cdlist.get(cdlist.size() - 7));
|
|
|
- cdNewList.add(cdlist.get(cdlist.size() - 6));
|
|
|
- cdNewList.add(cdlist.get(cdlist.size() - 5));
|
|
|
- cdNewList.add(cdlist.get(cdlist.size() - 4));
|
|
|
- cdNewList.add(cdlist.get(cdlist.size() - 3));
|
|
|
- cdNewList.add(cdlist.get(cdlist.size() - 2));
|
|
|
- cdNewList.add(cdlist.get(cdlist.size() - 1));
|
|
|
-
|
|
|
- FileUtil.writeUtf8Lines(cdNewList, downloadFilePath + "DomainSnow,cd," + yyyyMMdd + "_12_192," + ensemble + "," + System.currentTimeMillis() + ".txt");
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("e:{}", e.getMessage());
|
|
|
- }
|
|
|
- try {
|
|
|
- if (new File(snowQzkFile).exists()) {
|
|
|
- List<String> qzkNewList = new LinkedList<>();
|
|
|
- List<String> qzkList = FileUtil.readUtf8Lines(snowQzkFile);
|
|
|
- qzkNewList.add(qzkList.get(qzkList.size() - 7));
|
|
|
- qzkNewList.add(qzkList.get(qzkList.size() - 6));
|
|
|
- qzkNewList.add(qzkList.get(qzkList.size() - 5));
|
|
|
- qzkNewList.add(qzkList.get(qzkList.size() - 4));
|
|
|
- qzkNewList.add(qzkList.get(qzkList.size() - 3));
|
|
|
- qzkNewList.add(qzkList.get(qzkList.size() - 2));
|
|
|
- qzkNewList.add(qzkList.get(qzkList.size() - 1));
|
|
|
- FileUtil.writeUtf8Lines(qzkNewList, downloadFilePath + "DomainSnow,qzk," + yyyyMMdd + "_12_192," + ensemble + "," + System.currentTimeMillis() + ".txt");
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("e:{}", e.getMessage());
|
|
|
- }
|
|
|
} else {
|
|
|
log.error("获取到预报批次数据异常:{}", code);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|