补水雨情数据逻辑优化

master
cxw 2024-10-18 11:35:04 +08:00
parent 957d07efb1
commit 2d6cbfd0cb
3 changed files with 21 additions and 5 deletions

View File

@ -341,7 +341,7 @@ public class DataTaskTSG {
try { try {
if (CollectionUtils.isNotEmpty(stcdLastPptnDatas)) { if (CollectionUtils.isNotEmpty(stcdLastPptnDatas)) {
for (StPptnR stPptnR : stcdLastPptnDatas) { for (StPptnR stPptnR : stcdLastPptnDatas) {
String stm = "2024-06-01 00:00:00";// 补数据的开始时间 String stm = "2024-01-01 00:00:00";// 补数据的开始时间
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
String url = jcskPath + jcskPathPptnRoute + stPptnR.getSource().toLowerCase(); String url = jcskPath + jcskPathPptnRoute + stPptnR.getSource().toLowerCase();
String stcd = stPptnR.getStcd(); String stcd = stPptnR.getStcd();
@ -355,9 +355,17 @@ public class DataTaskTSG {
if (stmIsBeforeEtm(etm, stm, "yyyy-MM-dd HH:mm:ss")) { if (stmIsBeforeEtm(etm, stm, "yyyy-MM-dd HH:mm:ss")) {
continue; continue;
} }
// 结束日期往前减4分钟防止数据重复
Calendar calendarEtm = Calendar.getInstance();
calendarEtm.setTime(sdf.parse(etm));
calendarEtm.add(Calendar.MINUTE, -4);
etm = sdf.format(calendarEtm.getTime());
// 开始时间往后推3天不超过结束日期 // 开始时间往后推3天不超过结束日期
while (stmIsBeforeEtm(stm, etm, "yyyy-MM-dd HH:mm:ss")) { while (stmIsBeforeEtm(stm, etm, "yyyy-MM-dd HH:mm:ss")) {
String newEtm = dateManipulation(stm, 3, "yyyy-MM-dd HH:mm:ss"); String newEtm = dateManipulation(stm, 3, "yyyy-MM-dd HH:mm:ss");
if(stmIsBeforeEtm(etm, newEtm, "yyyy-MM-dd HH:mm:ss")){
newEtm = etm;
}
Response resp = client.newCall(new Request.Builder().url(url).post(new FormBody.Builder().add("stcd", stcd).add("stm", stm).add("etm", newEtm).build()).header("Token", jcskToken).addHeader("Content-Type", "application/x-www" + Response resp = client.newCall(new Request.Builder().url(url).post(new FormBody.Builder().add("stcd", stcd).add("stm", stm).add("etm", newEtm).build()).header("Token", jcskToken).addHeader("Content-Type", "application/x-www" +
"-form-urlencoded").build()).execute(); "-form-urlencoded").build()).execute();
String respStr = resp.body().string(); String respStr = resp.body().string();
@ -451,7 +459,7 @@ public class DataTaskTSG {
for (StRsvrR stRsvrR : stcdLast) { for (StRsvrR stRsvrR : stcdLast) {
String sttp = stRsvrR.getSttp().toLowerCase(); String sttp = stRsvrR.getSttp().toLowerCase();
String source = stRsvrR.getSource().toLowerCase(); String source = stRsvrR.getSource().toLowerCase();
String stm = "2024-06-01 00:00:00";// 补数据的开始时间 String stm = "2024-01-01 00:00:00";// 补数据的开始时间
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
Date etmD = null; Date etmD = null;
if (ObjectUtils.isEmpty(stRsvrR.getEtm())) { if (ObjectUtils.isEmpty(stRsvrR.getEtm())) {
@ -471,8 +479,16 @@ public class DataTaskTSG {
} else { } else {
continue; continue;
} }
// 结束日期往前减4分钟防止数据重复
Calendar calendarEtm = Calendar.getInstance();
calendarEtm.setTime(sdf.parse(etm));
calendarEtm.add(Calendar.MINUTE, -4);
etm = sdf.format(calendarEtm.getTime());
while (stmIsBeforeEtm(stm, etm, "yyyy-MM-dd HH:mm:ss")) { while (stmIsBeforeEtm(stm, etm, "yyyy-MM-dd HH:mm:ss")) {
String newEtm = dateManipulation(stm, 3, "yyyy-MM-dd HH:mm:ss"); String newEtm = dateManipulation(stm, 3, "yyyy-MM-dd HH:mm:ss");
if(stmIsBeforeEtm(etm, newEtm, "yyyy-MM-dd HH:mm:ss")){
newEtm = etm;
}
Response resp = client.newCall(new Request.Builder().url(url) Response resp = client.newCall(new Request.Builder().url(url)
.post(new FormBody.Builder().add("stcd", stRsvrR.getStcd()) .post(new FormBody.Builder().add("stcd", stRsvrR.getStcd())
.add("stm", stm) .add("stm", stm)

View File

@ -108,8 +108,8 @@ public class PaDataTask {
// if(ObjectUtils.isEmpty(forecastPaLast)){ // if(ObjectUtils.isEmpty(forecastPaLast)){
// forecastPaLast = new ForecastPa(); // forecastPaLast = new ForecastPa();
// forecastPaLast.setStcd(skStcd); // forecastPaLast.setStcd(skStcd);
// forecastPaLast.setTm("2024-06-01"); // forecastPaLast.setTm("2024-01-01");
// forecastPaLast.setK(new BigDecimal(0.92)); // forecastPaLast.setK(new BigDecimal(0.97));
// forecastPaLast.setPa0(BigDecimal.ZERO); // forecastPaLast.setPa0(BigDecimal.ZERO);
// forecastPaLast.setIm(new BigDecimal(120)); // forecastPaLast.setIm(new BigDecimal(120));
// forecastPaLast.setPt0(BigDecimal.ZERO); // forecastPaLast.setPt0(BigDecimal.ZERO);

View File

@ -18,7 +18,7 @@
</select> </select>
<select id="getStcdFirstRsvrData" resultType="com.gunshi.project.xyt.model.StRsvrR"> <select id="getStcdFirstRsvrData" resultType="com.gunshi.project.xyt.model.StRsvrR">
SELECT stb.stcd, SELECT stb.stcd,
case UPPER(stb.sttp) when 'RR' then r.tm when 'ZZ' then r2.tm end stm, case UPPER(stb.sttp) when 'RR' then r.tm when 'ZZ' then r2.tm end etm,
stb.source, stb.source,
stb.sttp stb.sttp
FROM public.st_stbprp_b stb FROM public.st_stbprp_b stb