From 9042da10636666f51437481023fa5923704cba1d Mon Sep 17 00:00:00 2001 From: chenxiwang <1520264117@qq.com> Date: Thu, 29 Aug 2024 09:28:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dppar=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E3=80=81=E4=BF=9D=E5=AD=98=E7=9A=84r?= =?UTF-8?q?=E5=8F=96=E5=80=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/xyt/model/ForecastPPaR.java | 2 +- .../xyt/service/ForecastPPaRService.java | 33 ++++++++++--------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/gunshi/project/xyt/model/ForecastPPaR.java b/src/main/java/com/gunshi/project/xyt/model/ForecastPPaR.java index c353dd9..34834e3 100644 --- a/src/main/java/com/gunshi/project/xyt/model/ForecastPPaR.java +++ b/src/main/java/com/gunshi/project/xyt/model/ForecastPPaR.java @@ -19,7 +19,7 @@ import java.math.BigDecimal; @EqualsAndHashCode(callSuper = true) @Schema(description="预报_降雨径流关系表") @Data -@TableName("public.forecast_p_pa_r") +@TableName("public.forecast_p_pa_r_copy1") public class ForecastPPaR extends GenericPageParams implements Serializable { public final static String thisTableName = "ForecastPPaR"; 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 76cf29d..63658f9 100644 --- a/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java +++ b/src/main/java/com/gunshi/project/xyt/service/ForecastPPaRService.java @@ -46,14 +46,14 @@ public class ForecastPPaRService extends ServiceImpl 0) { Im = new BigDecimal(paramMap.get("param_value").toString()); } else { - Im = BigDecimal.ZERO; + Im = BigDecimal.valueOf(120.0); } List forecastPPaRList = this.list(); 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())); + Map rSumMap = forecastPPaRList.stream().collect(Collectors.toMap(k -> k.getPsum() + "-" + k.getPa(), value -> value.getRsum())); // 如果pa最大值超过了Im,截取到Im的 if (maxPa.compareTo(Im) > 0) { paList = paList.stream().filter(bd -> bd.compareTo(Im) <= 0).collect(Collectors.toList()); @@ -68,11 +68,11 @@ public class ForecastPPaRService extends ServiceImpl paStr = new ArrayList<>(); List pStr = new ArrayList<>(); - Map rMap = new HashMap<>(); + Map rSumMap = new HashMap<>(); // 行 for (int i = 0; i < PPaRList.size(); i++) { String[] paArr = PPaRList.get(i); @@ -109,28 +109,31 @@ public class ForecastPPaRService extends ServiceImpl 0 && j > 0) { - rMap.put(p + "-" + paStr.get(j - 1), new BigDecimal(paArr[j])); + rSumMap.put(p + "-" + paStr.get(j - 1), new BigDecimal(paArr[j])); } } } // 组装数据 - if (paStr.size() > 0 && pStr.size() > 0 && rMap.size() > 0) { + if (paStr.size() > 0 && pStr.size() > 0 && rSumMap.size() > 0) { List forecastPPaRList = new ArrayList<>(); // 外层pa for (String pa : paStr) { - // 循环一次pa,rSum需要重置 - BigDecimal rSum = BigDecimal.ZERO; + // 循环一次pa,r需要重置 + BigDecimal r = BigDecimal.ZERO; + BigDecimal lastRSum = BigDecimal.ZERO; // 内层p for (String p : pStr) { ForecastPPaR forecastPPaR = new ForecastPPaR(); - BigDecimal r = rMap.get(p + "-" + pa); - forecastPPaR.setR(r.stripTrailingZeros()); - forecastPPaR.setPsum(new BigDecimal(p).stripTrailingZeros()); - // 循环累加 - rSum = rSum.add(r); + BigDecimal rSum = rSumMap.get(p + "-" + pa); forecastPPaR.setRsum(rSum.stripTrailingZeros()); + forecastPPaR.setPsum(new BigDecimal(p).stripTrailingZeros()); + // 循环累减 + r = rSum.subtract(lastRSum); + // 赋值 + lastRSum = rSum; + forecastPPaR.setR(r.stripTrailingZeros()); forecastPPaR.setPa(new BigDecimal(pa).stripTrailingZeros()); forecastPPaRList.add(forecastPPaR); }