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] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A2=84=E6=8A=A5=E6=96=B9?= =?UTF-8?q?=E6=A1=88=E4=BF=9D=E5=AD=98=E6=8E=A5=E5=8F=A3=EF=BC=9B=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=85=8D=E7=BD=AE=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=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