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; }