From a8a5e3574083b0e0ff8d670ca5d1f92f05b1f22b Mon Sep 17 00:00:00 2001 From: chenxiwang <1520264117@qq.com> Date: Wed, 7 Aug 2024 13:18:57 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A2=84=E6=8A=A5?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E4=BF=9D=E5=AD=98=E6=8E=A5=E5=8F=A3=EF=BC=9B?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ForecastPPaRController.java | 17 ++++--- .../xyt/service/ForecastPPaRService.java | 49 ++++++++++++++++--- .../xyt/service/ForecastProjectService.java | 1 + 3 files changed, 53 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/gunshi/project/xyt/controller/ForecastPPaRController.java b/src/main/java/com/gunshi/project/xyt/controller/ForecastPPaRController.java index 50032ed..5b4d616 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/ForecastPPaRController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/ForecastPPaRController.java @@ -59,12 +59,13 @@ public class ForecastPPaRController { @Operation(summary = "列表") @PostMapping("/list") - public R> list(@RequestBody @Validated ForecastPPaR forecastPPaR) { - QueryWrapper wrapper = new QueryWrapper(); - if(StringUtils.isNotBlank(forecastPPaR.getSortField())){ - wrapper.orderBy(true, ObjectUtils.isEmpty(forecastPPaR.getIsAsc()) ? false : forecastPPaR.getIsAsc(), forecastPPaR.getSortField()); - } - return R.ok(service.list(wrapper)); + public R> list(@RequestBody @Validated ForecastPPaR forecastPPaR) { +// QueryWrapper wrapper = new QueryWrapper(); +// if(StringUtils.isNotBlank(forecastPPaR.getSortField())){ +// wrapper.orderBy(true, ObjectUtils.isEmpty(forecastPPaR.getIsAsc()) ? false : forecastPPaR.getIsAsc(), forecastPPaR.getSortField()); +// } + List PPaRList = service.handleList(forecastPPaR); + return R.ok(PPaRList); } @Operation(summary = "分页") @@ -79,8 +80,8 @@ public class ForecastPPaRController { @Operation(summary = "批量保存") @PostMapping("/saveBatch") - public R saveBatch(@RequestBody String[][] PPaRList) { - if (PPaRList.length == 0) { + public R saveBatch(@RequestBody List PPaRList) { + if (PPaRList.size() == 0) { throw new IllegalArgumentException("数据格式不正确"); } boolean result = service.handleSaveBatch(PPaRList); diff --git a/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java b/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java index e986179..0c245ee 100644 --- a/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java +++ b/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java @@ -1,10 +1,13 @@ package com.gunshi.project.xyt.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gunshi.project.xyt.mapper.ForecastPPaRMapper; import com.gunshi.project.xyt.model.ForecastPPaR; +import com.gunshi.project.xyt.model.ForecastUseparam; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -13,6 +16,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 描述: 预报_降雨径流关系表 @@ -25,6 +29,38 @@ import java.util.Map; public class ForecastPPaRService extends ServiceImpl { + @Autowired + private ForecastUseparamService forecastUseparamService; + + /** + * @description: 获取列表 + * @param forecastPPaR + * @return: java.util.List + * @auther: cxw + * @date: 2024-08-07, 周三, 11:11:42 + */ + public List handleList(ForecastPPaR forecastPPaR) { + List PPaRList = new ArrayList<>(); + // 获取Im值,限制pa + BigDecimal Im = BigDecimal.ZERO; + Map paramMap = forecastUseparamService.getMap(new QueryWrapper().eq("param_code", "Im")); + if(paramMap != null && paramMap.size() > 0){ + Im = new BigDecimal(paramMap.get("Im").toString()); + } + List forecastPPaRList = this.list(); + if(CollectionUtils.isNotEmpty(forecastPPaRList)){ + BigDecimal maxP = forecastPPaRList.stream().map(ForecastPPaR::getPsum).reduce(BigDecimal.ZERO, BigDecimal::max); + BigDecimal maxPa = forecastPPaRList.stream().map(ForecastPPaR::getPa).reduce(BigDecimal.ZERO, BigDecimal::max); + List pList = forecastPPaRList.stream().map(ForecastPPaR::getPsum).distinct().sorted().collect(Collectors.toList()); + List paList = forecastPPaRList.stream().map(ForecastPPaR::getPa).distinct().sorted().collect(Collectors.toList()); + Map rMap = forecastPPaRList.stream().collect(Collectors.toMap(k -> k.getPsum() + "-" + k.getPa(), value -> value.getR())); + + + + } + return PPaRList; + } + /** * @description: 处理批量保存 * @param PPaRList @@ -32,30 +68,31 @@ public class ForecastPPaRService extends ServiceImpl PPaRList) { Boolean ret = false; List paStr = new ArrayList<>(); List pStr = new ArrayList<>(); Map rMap = new HashMap<>(); // 行 - for (int i = 0; i < PPaRList.length; i++) { + for (int i = 0; i < PPaRList.size(); i++) { + String[] paArr = PPaRList.get(i); String p = ""; // 列 - for (int j = 0; j < PPaRList[i].length; j++) { + for (int j = 0; j < paArr.length; j++) { String pa = ""; // 第一行:pa if(i == 0 && j > 0){ - pa = PPaRList[i][j]; + pa = paArr[j]; paStr.add(pa); } // 第一列:p if(i > 0 && j == 0){ - p = PPaRList[i][j]; + p = paArr[j]; pStr.add(p); } // rMap:key=P-Pa if (i > 0 && j > 0) { - rMap.put(p + "-" + paStr.get(j - 1), new BigDecimal(PPaRList[i][j])); + rMap.put(p + "-" + paStr.get(j - 1), new BigDecimal(paArr[j])); } } } diff --git a/src/main/java/com/gunshi/project/xyt/service/ForecastProjectService.java b/src/main/java/com/gunshi/project/xyt/service/ForecastProjectService.java index bf9e4ed..35bdc9c 100644 --- a/src/main/java/com/gunshi/project/xyt/service/ForecastProjectService.java +++ b/src/main/java/com/gunshi/project/xyt/service/ForecastProjectService.java @@ -58,6 +58,7 @@ public class ForecastProjectService extends ServiceImpl Date: Wed, 7 Aug 2024 14:11:09 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gunshi/project/xyt/entity/vo/ForecastResultVo.java | 1 - .../java/com/gunshi/project/xyt/model/ForecastResults.java | 4 ++-- .../java/com/gunshi/project/xyt/schedule/TaskGroupJob.java | 7 +++++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gunshi/project/xyt/entity/vo/ForecastResultVo.java b/src/main/java/com/gunshi/project/xyt/entity/vo/ForecastResultVo.java index 005ff6f..2624c4a 100644 --- a/src/main/java/com/gunshi/project/xyt/entity/vo/ForecastResultVo.java +++ b/src/main/java/com/gunshi/project/xyt/entity/vo/ForecastResultVo.java @@ -5,7 +5,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; -import java.util.Date; /** *@description 预测结果VO diff --git a/src/main/java/com/gunshi/project/xyt/model/ForecastResults.java b/src/main/java/com/gunshi/project/xyt/model/ForecastResults.java index 723f4e8..69b14ed 100644 --- a/src/main/java/com/gunshi/project/xyt/model/ForecastResults.java +++ b/src/main/java/com/gunshi/project/xyt/model/ForecastResults.java @@ -1,6 +1,7 @@ package com.gunshi.project.xyt.model; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -9,8 +10,6 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.gunshi.core.dateformat.DateFormatString; import com.gunshi.project.xyt.entity.page.GenericPageParams; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Size; import lombok.Data; import java.io.Serializable; @@ -44,6 +43,7 @@ public class ForecastResults extends GenericPageParams implements Serializable { @TableField(value="tm") @Schema(description="时间") @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8") + @JSONField(format = DateFormatString.YYYY_MM_DD_HH_MM_SS) private Date tm; /** diff --git a/src/main/java/com/gunshi/project/xyt/schedule/TaskGroupJob.java b/src/main/java/com/gunshi/project/xyt/schedule/TaskGroupJob.java index 81776c2..9132604 100644 --- a/src/main/java/com/gunshi/project/xyt/schedule/TaskGroupJob.java +++ b/src/main/java/com/gunshi/project/xyt/schedule/TaskGroupJob.java @@ -92,7 +92,7 @@ public class TaskGroupJob implements Job { Map map = forecastUseparamService.getMap(new QueryWrapper().eq("param_code", "ydgdyjz"));// 获取安全值 AttResBase attResBase = attResBaseService.getOne(new QueryWrapper<>());// 获取堰顶高程 if (MapUtil.isNotEmpty(map) && ObjectUtils.isNotEmpty(attResBase) && ObjectUtils.isNotEmpty(attResBase.getWcrstel())) { - BigDecimal ydgdyjz = new BigDecimal(map.get("ydgdyjz").toString()); + BigDecimal ydgdyjz = new BigDecimal(map.get("param_value").toString()); BigDecimal wcrstel = attResBase.getWcrstel(); Boolean isSave = false; for (ForecastResultVo vo : voList) { @@ -117,7 +117,10 @@ public class TaskGroupJob implements Job { forecastProject.setTimeInterval(forecastTask.getTimeInterval()); forecastProject.setTaskId(forecastTask.getId()); forecastProject.setVoList(voList); - forecastProjectService.saveForecastResults(forecastProject); + boolean save = forecastProjectService.save(forecastProject); + if (save) { + forecastProjectService.saveForecastResults(forecastProject); + } } } } From 9a60fba2b35e48cec62aacf16f6f6e49b7a223a3 Mon Sep 17 00:00:00 2001 From: chenxiwang <1520264117@qq.com> Date: Wed, 7 Aug 2024 15:32:41 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=88=86=E9=A1=B5=E6=8E=A5=E5=8F=A3=EF=BC=9B?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0ppar=E8=A1=A8=E6=95=B0=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ForecastPPaRController.java | 8 +--- .../project/xyt/model/ForecastProject.java | 27 ++++++++++++ .../project/xyt/model/ForecastUseparam.java | 6 --- .../xyt/service/ForecastPPaRService.java | 41 ++++++++++++++----- 4 files changed, 59 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/gunshi/project/xyt/controller/ForecastPPaRController.java b/src/main/java/com/gunshi/project/xyt/controller/ForecastPPaRController.java index 5b4d616..f3f2653 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/ForecastPPaRController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/ForecastPPaRController.java @@ -59,12 +59,8 @@ public class ForecastPPaRController { @Operation(summary = "列表") @PostMapping("/list") - public R> list(@RequestBody @Validated ForecastPPaR forecastPPaR) { -// QueryWrapper wrapper = new QueryWrapper(); -// if(StringUtils.isNotBlank(forecastPPaR.getSortField())){ -// wrapper.orderBy(true, ObjectUtils.isEmpty(forecastPPaR.getIsAsc()) ? false : forecastPPaR.getIsAsc(), forecastPPaR.getSortField()); -// } - List PPaRList = service.handleList(forecastPPaR); + public R> list() { + List PPaRList = service.handleList(); return R.ok(PPaRList); } diff --git a/src/main/java/com/gunshi/project/xyt/model/ForecastProject.java b/src/main/java/com/gunshi/project/xyt/model/ForecastProject.java index b26661b..528dbd0 100644 --- a/src/main/java/com/gunshi/project/xyt/model/ForecastProject.java +++ b/src/main/java/com/gunshi/project/xyt/model/ForecastProject.java @@ -148,4 +148,31 @@ public class ForecastProject extends GenericPageParams implements Serializable { @TableField(exist = false) private List voList; + /** + * 预报最高调洪水位(m) + */ + @Schema(description = "预报最高调洪水位(m)") + @TableField(exist = false) + private BigDecimal ycMaxSwH; + + /** + * 预报最大入库流量(m³/s) + */ + @Schema(description = "预报最大入库流量") + @TableField(exist = false) + private BigDecimal ycMaxRkQ; + + /** + * 预报最大下泄流量(m³/s) + */ + @Schema(description = "预报最大下泄流量(m³/s)") + @TableField(exist = false) + private BigDecimal ycMaxCkQ; + + /** + * 预报洪水总量(万m³) + */ + @Schema(description = "预报洪水总量(万m³)") + @TableField(exist = false) + private BigDecimal ycSumFlood; } diff --git a/src/main/java/com/gunshi/project/xyt/model/ForecastUseparam.java b/src/main/java/com/gunshi/project/xyt/model/ForecastUseparam.java index 5376ee6..c972315 100644 --- a/src/main/java/com/gunshi/project/xyt/model/ForecastUseparam.java +++ b/src/main/java/com/gunshi/project/xyt/model/ForecastUseparam.java @@ -11,8 +11,6 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.gunshi.core.dateformat.DateFormatString; import com.gunshi.project.xyt.entity.page.GenericPageParams; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; @@ -47,8 +45,6 @@ public class ForecastUseparam extends GenericPageParams implements Serializable @TableField(value="param_name") @Schema(description="参数名称") @Size(max = 255,message = "参数名称最大长度要小于 255") - @NotBlank(message = "参数名称不能为空") - @NotNull(message = "参数名称不能为空") private String paramName; /** @@ -57,8 +53,6 @@ public class ForecastUseparam extends GenericPageParams implements Serializable @TableField(value="param_code") @Schema(description="参数名") @Size(max = 255,message = "参数名最大长度要小于 255") - @NotBlank(message = "参数名不能为空") - @NotNull(message = "参数名不能为空") private String paramCode; /** diff --git a/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java b/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java index 0c245ee..76cf29d 100644 --- a/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java +++ b/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java @@ -34,29 +34,48 @@ public class ForecastPPaRService extends ServiceImpl * @auther: cxw * @date: 2024-08-07, 周三, 11:11:42 */ - public List handleList(ForecastPPaR forecastPPaR) { + public List handleList() { List PPaRList = new ArrayList<>(); - // 获取Im值,限制pa - BigDecimal Im = BigDecimal.ZERO; + // 获取Im值,限制pa + BigDecimal Im; Map paramMap = forecastUseparamService.getMap(new QueryWrapper().eq("param_code", "Im")); - if(paramMap != null && paramMap.size() > 0){ - Im = new BigDecimal(paramMap.get("Im").toString()); + if (paramMap != null && paramMap.size() > 0) { + Im = new BigDecimal(paramMap.get("param_value").toString()); + } else { + Im = BigDecimal.ZERO; } List forecastPPaRList = this.list(); - if(CollectionUtils.isNotEmpty(forecastPPaRList)){ - BigDecimal maxP = forecastPPaRList.stream().map(ForecastPPaR::getPsum).reduce(BigDecimal.ZERO, BigDecimal::max); + if (CollectionUtils.isNotEmpty(forecastPPaRList)) { BigDecimal maxPa = forecastPPaRList.stream().map(ForecastPPaR::getPa).reduce(BigDecimal.ZERO, BigDecimal::max); List pList = forecastPPaRList.stream().map(ForecastPPaR::getPsum).distinct().sorted().collect(Collectors.toList()); List paList = forecastPPaRList.stream().map(ForecastPPaR::getPa).distinct().sorted().collect(Collectors.toList()); Map rMap = forecastPPaRList.stream().collect(Collectors.toMap(k -> k.getPsum() + "-" + k.getPa(), value -> value.getR())); - - - + // 如果pa最大值超过了Im,截取到Im的 + if (maxPa.compareTo(Im) > 0) { + paList = paList.stream().filter(bd -> bd.compareTo(Im) <= 0).collect(Collectors.toList()); + } + List sList = new ArrayList<>(); + // 先添加第一行的Pa + sList.add("P/R/Pa"); + sList.addAll(paList.stream().map(BigDecimal::toString).collect(Collectors.toList())); + PPaRList.add(sList.toArray(new String[0])); + for (int i = 0; i < pList.size(); i++) { + sList = new ArrayList<>(); + BigDecimal p = pList.get(i); + for (int j = 0; j < paList.size(); j++) { + BigDecimal pa = paList.get(j); + // 每次添加r时,先添加p + if (j == 0) { + sList.add(String.valueOf(p)); + } + sList.add(rMap.get(p + "-" + pa).stripTrailingZeros().toString()); + } + PPaRList.add(sList.toArray(new String[0])); + } } return PPaRList; } 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 4/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A2=84=E6=8A=A5?= =?UTF-8?q?=E7=BB=93=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); + } + } }