修复参数配置分页接口;增加ppar表数列表接口
parent
7e5c99ca27
commit
9a60fba2b3
|
|
@ -59,12 +59,8 @@ public class ForecastPPaRController {
|
||||||
|
|
||||||
@Operation(summary = "列表")
|
@Operation(summary = "列表")
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
public R<List<String[]>> list(@RequestBody @Validated ForecastPPaR forecastPPaR) {
|
public R<List<String[]>> list() {
|
||||||
// QueryWrapper<ForecastPPaR> wrapper = new QueryWrapper<ForecastPPaR>();
|
List<String[]> PPaRList = service.handleList();
|
||||||
// if(StringUtils.isNotBlank(forecastPPaR.getSortField())){
|
|
||||||
// wrapper.orderBy(true, ObjectUtils.isEmpty(forecastPPaR.getIsAsc()) ? false : forecastPPaR.getIsAsc(), forecastPPaR.getSortField());
|
|
||||||
// }
|
|
||||||
List<String[]> PPaRList = service.handleList(forecastPPaR);
|
|
||||||
return R.ok(PPaRList);
|
return R.ok(PPaRList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -148,4 +148,31 @@ public class ForecastProject extends GenericPageParams implements Serializable {
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<ForecastResultVo> voList;
|
private List<ForecastResultVo> 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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,6 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
import com.gunshi.core.dateformat.DateFormatString;
|
import com.gunshi.core.dateformat.DateFormatString;
|
||||||
import com.gunshi.project.xyt.entity.page.GenericPageParams;
|
import com.gunshi.project.xyt.entity.page.GenericPageParams;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import jakarta.validation.constraints.Size;
|
import jakarta.validation.constraints.Size;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
@ -47,8 +45,6 @@ public class ForecastUseparam extends GenericPageParams implements Serializable
|
||||||
@TableField(value="param_name")
|
@TableField(value="param_name")
|
||||||
@Schema(description="参数名称")
|
@Schema(description="参数名称")
|
||||||
@Size(max = 255,message = "参数名称最大长度要小于 255")
|
@Size(max = 255,message = "参数名称最大长度要小于 255")
|
||||||
@NotBlank(message = "参数名称不能为空")
|
|
||||||
@NotNull(message = "参数名称不能为空")
|
|
||||||
private String paramName;
|
private String paramName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -57,8 +53,6 @@ public class ForecastUseparam extends GenericPageParams implements Serializable
|
||||||
@TableField(value="param_code")
|
@TableField(value="param_code")
|
||||||
@Schema(description="参数名")
|
@Schema(description="参数名")
|
||||||
@Size(max = 255,message = "参数名最大长度要小于 255")
|
@Size(max = 255,message = "参数名最大长度要小于 255")
|
||||||
@NotBlank(message = "参数名不能为空")
|
|
||||||
@NotNull(message = "参数名不能为空")
|
|
||||||
private String paramCode;
|
private String paramCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -34,29 +34,48 @@ public class ForecastPPaRService extends ServiceImpl<ForecastPPaRMapper, Forecas
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description: 获取列表
|
* @description: 获取列表
|
||||||
* @param forecastPPaR
|
|
||||||
* @return: java.util.List<java.lang.String[]>
|
* @return: java.util.List<java.lang.String[]>
|
||||||
* @auther: cxw
|
* @auther: cxw
|
||||||
* @date: 2024-08-07, 周三, 11:11:42
|
* @date: 2024-08-07, 周三, 11:11:42
|
||||||
*/
|
*/
|
||||||
public List<String[]> handleList(ForecastPPaR forecastPPaR) {
|
public List<String[]> handleList() {
|
||||||
List<String[]> PPaRList = new ArrayList<>();
|
List<String[]> PPaRList = new ArrayList<>();
|
||||||
// 获取Im值,限制pa
|
// 获取Im值,限制pa
|
||||||
BigDecimal Im = BigDecimal.ZERO;
|
BigDecimal Im;
|
||||||
Map<String, Object> paramMap = forecastUseparamService.getMap(new QueryWrapper<ForecastUseparam>().eq("param_code", "Im"));
|
Map<String, Object> paramMap = forecastUseparamService.getMap(new QueryWrapper<ForecastUseparam>().eq("param_code", "Im"));
|
||||||
if(paramMap != null && paramMap.size() > 0){
|
if (paramMap != null && paramMap.size() > 0) {
|
||||||
Im = new BigDecimal(paramMap.get("Im").toString());
|
Im = new BigDecimal(paramMap.get("param_value").toString());
|
||||||
|
} else {
|
||||||
|
Im = BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
List<ForecastPPaR> forecastPPaRList = this.list();
|
List<ForecastPPaR> forecastPPaRList = this.list();
|
||||||
if(CollectionUtils.isNotEmpty(forecastPPaRList)){
|
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);
|
BigDecimal maxPa = forecastPPaRList.stream().map(ForecastPPaR::getPa).reduce(BigDecimal.ZERO, BigDecimal::max);
|
||||||
List<BigDecimal> pList = forecastPPaRList.stream().map(ForecastPPaR::getPsum).distinct().sorted().collect(Collectors.toList());
|
List<BigDecimal> pList = forecastPPaRList.stream().map(ForecastPPaR::getPsum).distinct().sorted().collect(Collectors.toList());
|
||||||
List<BigDecimal> paList = forecastPPaRList.stream().map(ForecastPPaR::getPa).distinct().sorted().collect(Collectors.toList());
|
List<BigDecimal> paList = forecastPPaRList.stream().map(ForecastPPaR::getPa).distinct().sorted().collect(Collectors.toList());
|
||||||
Map<String, BigDecimal> rMap = forecastPPaRList.stream().collect(Collectors.toMap(k -> k.getPsum() + "-" + k.getPa(), value -> value.getR()));
|
Map<String, BigDecimal> 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<String> 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;
|
return PPaRList;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue