From ff77d4b8b8b4a621dd006069c913e723d8d66525 Mon Sep 17 00:00:00 2001 From: chenxiwang <1520264117@qq.com> Date: Wed, 7 Aug 2024 15:53:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A2=84=E6=8A=A5=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ForecastProjectController.java | 1 + .../controller/ForecastResultsController.java | 6 ++- .../xyt/service/ForecastResultsService.java | 40 +++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gunshi/project/xyt/controller/ForecastProjectController.java b/src/main/java/com/gunshi/project/xyt/controller/ForecastProjectController.java index a6b8ccc..8d1205c 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/ForecastProjectController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/ForecastProjectController.java @@ -128,6 +128,7 @@ public class ForecastProjectController { List resultList = forecastResultsService.list(new QueryWrapper().eq("project_id", projectId)); if(CollectionUtils.isNotEmpty(resultList)) { forecastProject.setVoList(JSON.parseArray(JSON.toJSONString(resultList), ForecastResultVo.class)); + forecastResultsService.handleVoList(forecastProject); } return R.ok(forecastProject); } diff --git a/src/main/java/com/gunshi/project/xyt/controller/ForecastResultsController.java b/src/main/java/com/gunshi/project/xyt/controller/ForecastResultsController.java index aa391d6..3120fcb 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/ForecastResultsController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/ForecastResultsController.java @@ -1,6 +1,7 @@ package com.gunshi.project.xyt.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RestController; import java.io.Serializable; import java.util.List; + /** * 描述: 预报_预测结果表 * author: cxw @@ -39,7 +41,6 @@ public class ForecastResultsController { @Autowired private ForecastResultsService service; - @Operation(summary = "新增") @PostMapping("/insert") public R insert(@Validated(Insert.class) @RequestBody ForecastResults dto) { @@ -93,6 +94,9 @@ public class ForecastResultsController { forecastProject.setForecastPeriod(forecastTask.getForecastPeriod()); forecastProject.setForecastWarm(forecastTask.getForecastWarm()); forecastProject.setVoList(voList); + if (CollectionUtils.isNotEmpty(voList)) { + service.handleVoList(forecastProject); + } return R.ok(forecastProject); } } 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 4975232..f2679b5 100644 --- a/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java +++ b/src/main/java/com/gunshi/project/xyt/service/ForecastResultsService.java @@ -14,6 +14,7 @@ import com.gunshi.project.xyt.grb.RainGrib2Layer; import com.gunshi.project.xyt.mapper.ForecastResultsMapper; import com.gunshi.project.xyt.model.AttResBase; import com.gunshi.project.xyt.model.ForecastPa; +import com.gunshi.project.xyt.model.ForecastProject; import com.gunshi.project.xyt.model.ForecastResults; import com.gunshi.project.xyt.model.ForecastTask; import com.gunshi.project.xyt.model.ForecastU; @@ -416,4 +417,43 @@ public class ForecastResultsService extends ServiceImpl paramMap = forecastUseparamService.getMap(new QueryWrapper().eq("param_code", "dt")); + if(paramMap != null){ + BigDecimal dt = new BigDecimal(paramMap.get("param_value").toString());// 时间间隔:小时h + BigDecimal ycMaxSwH = BigDecimal.ZERO;// 预报最高调洪水位 + BigDecimal ycMaxRkQ = BigDecimal.ZERO;// 预报最大入库流量 + BigDecimal ycMaxCkQ = BigDecimal.ZERO;// 预报最大下泄流量 + BigDecimal ycSumRkQ = BigDecimal.ZERO;// 预报入库流量累计和 + for (ForecastResultVo vo : forecastProject.getVoList()){ + BigDecimal ycSwHValue = vo.getYcSwHValue(); + if (ycSwHValue.compareTo(ycMaxSwH) > 0) { + ycMaxSwH = ycSwHValue; + } + BigDecimal ycRkQValue = vo.getYcRkQValue(); + if (ycRkQValue.compareTo(ycMaxRkQ) > 0) { + ycMaxRkQ = ycRkQValue; + } + BigDecimal ycCkQValue = vo.getYcCkQValue(); + if (ycCkQValue.compareTo(ycMaxCkQ) > 0) { + ycMaxCkQ = ycCkQValue; + } + ycSumRkQ = ycSumRkQ.add(ycRkQValue); + } + // 预报洪水总量(万m³)=预报入库流量累计和 X (dt*60*60) / 10000 + BigDecimal ycSumFlood = ycSumRkQ.multiply((dt.multiply(new BigDecimal(3600)))).divide(new BigDecimal(10000), 6, BigDecimal.ROUND_HALF_UP).stripTrailingZeros(); + forecastProject.setYcMaxSwH(ycMaxSwH); + forecastProject.setYcMaxRkQ(ycMaxRkQ); + forecastProject.setYcMaxCkQ(ycMaxCkQ); + forecastProject.setYcSumFlood(ycSumFlood); + } + } }