From f8651d12a560343cf426b4005a45499a726eb5a4 Mon Sep 17 00:00:00 2001 From: cxw <1520264117@qq.com> Date: Mon, 21 Oct 2024 09:16:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=AA=E6=B0=B4=E9=A2=84=E6=8A=A5=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyt/service/ForecastResultsService.java | 53 ++++++++++--------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java b/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java index eaf9a6d..fade810 100644 --- a/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java +++ b/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java @@ -192,7 +192,12 @@ public class ForecastResultsService extends ServiceImpl().in("stcd", stbs.stream().map(StStbprpB::getStcd).toArray(String[]::new)).ge("tm", startTime).le("tm", nowHourTime).orderBy(true, true, "tm"); // 获取预报数据 - pptnRFutureList = getForecastDrpData(nowHourTime, ""); + try { + pptnRFutureList = getForecastDrpData(nowHourTime, ""); + } catch (IllegalArgumentException e) { + isHaveFuturePPtn = false; + log.error("该时间无预报数据"); + } } List pptnRExistedList = stPptnRService.list(qwExisted); pptnRAllList.addAll(pptnRExistedList); @@ -253,9 +258,9 @@ public class ForecastResultsService extends ServiceImpl stZqrlBList = stZqrlBService.list(new QueryWrapper().eq("stcd", attResBase.getStcd())); + List stZqrlBList = stZqrlBService.list(new QueryWrapper().eq("stcd", attResBase.getStcd()).orderBy(true, true, "z")); // 库容曲线 - List zvarlBS = stZvarlBService.list(new QueryWrapper().eq("stcd", attResBase.getStcd())); + List zvarlBS = stZvarlBService.list(new QueryWrapper().eq("stcd", attResBase.getStcd()).orderBy(true, true, "rz")); // 水位历史数据 List rsvrRRealList = stRsvrRService.list(new QueryWrapper().eq("stcd", attResBase.getStcd()).ge("tm", startTime).le("tm", endTime)); List resultList = reorganizeRsvrRData(rsvrRRealList, dt); @@ -406,36 +411,32 @@ public class ForecastResultsService extends ServiceImpl gribList = forecastService.getGribData(tm, false); - //24小时每个网格的总量 - List total = gribList.stream().filter(o -> o.getTmRange().getInterval() == 24).collect(Collectors.toList()); - //24小时每个网格的逐小时雨量 - List detail = gribList.stream().filter(o -> o.getTmRange().getInterval() == 1).collect(Collectors.toList()); + List gribList = forecastService.getGribData(tm, false); + //24小时每个网格的总量 + List total = gribList.stream().filter(o -> o.getTmRange().getInterval() == 24).collect(Collectors.toList()); + //24小时每个网格的逐小时雨量 + List detail = gribList.stream().filter(o -> o.getTmRange().getInterval() == 1).collect(Collectors.toList()); // ForeRainVo vo = new ForeRainVo(); // vo.setStcd(stcd); // vo.setLgtd(stStbprpB.getLgtd()); // vo.setLttd(stStbprpB.getLttd()); // List data = forecastService.getData(vo, total, detail); - // 2024-10-14 改为获取水库整个面的降雨 - ForeRainStatVo vo = new ForeRainStatVo(); - String[] paramValue = forecastUseparam.getParamValue().split(",");// x1,y1,x2,y2 - vo.setGeom(buildRectangleGeoJson(Double.parseDouble(paramValue[0]), Double.parseDouble(paramValue[1]), Double.parseDouble(paramValue[2]), Double.parseDouble(paramValue[3]), total.get(0))); - List data = forecastService.getAreaData(vo, total, detail); - if (CollectionUtils.isNotEmpty(data)) { - for (ForeRainTimeVo foreRainTimeVo : data) { - // 只取当前时间之后的数据 - if(foreRainTimeVo.getTm().compareTo(now) > 0){ - StPptnR stPptnR = new StPptnR(); - stPptnR.setStcd(stcd); - stPptnR.setTm(foreRainTimeVo.getTm()); - stPptnR.setDrp(foreRainTimeVo.getDrp().toString()); - pptnRFutureList.add(stPptnR); - } + // 2024-10-14 改为获取水库整个面的降雨 + ForeRainStatVo vo = new ForeRainStatVo(); + String[] paramValue = forecastUseparam.getParamValue().split(",");// x1,y1,x2,y2 + vo.setGeom(buildRectangleGeoJson(Double.parseDouble(paramValue[0]), Double.parseDouble(paramValue[1]), Double.parseDouble(paramValue[2]), Double.parseDouble(paramValue[3]), total.get(0))); + List data = forecastService.getAreaData(vo, total, detail); + if (CollectionUtils.isNotEmpty(data)) { + for (ForeRainTimeVo foreRainTimeVo : data) { + // 只取当前时间之后的数据 + if (foreRainTimeVo.getTm().compareTo(now) > 0) { + StPptnR stPptnR = new StPptnR(); + stPptnR.setStcd(stcd); + stPptnR.setTm(foreRainTimeVo.getTm()); + stPptnR.setDrp(foreRainTimeVo.getDrp().toString()); + pptnRFutureList.add(stPptnR); } } - } catch (IllegalArgumentException e) { - e.printStackTrace(); } return pptnRFutureList; }