优化预报结果返回
parent
9a60fba2b3
commit
ff77d4b8b8
|
|
@ -128,6 +128,7 @@ public class ForecastProjectController {
|
|||
List<ForecastResults> resultList = forecastResultsService.list(new QueryWrapper<ForecastResults>().eq("project_id", projectId));
|
||||
if(CollectionUtils.isNotEmpty(resultList)) {
|
||||
forecastProject.setVoList(JSON.parseArray(JSON.toJSONString(resultList), ForecastResultVo.class));
|
||||
forecastResultsService.handleVoList(forecastProject);
|
||||
}
|
||||
return R.ok(forecastProject);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<ForecastResults> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<ForecastResultsMapper, F
|
|||
calendar.set(Calendar.MILLISECOND, 0);
|
||||
return date.before(calendar.getTime());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 处理voList,获取预报最大属性值
|
||||
* @param forecastProject
|
||||
* @return: void
|
||||
* @auther: cxw
|
||||
* @date: 2024-08-07, 周三, 15:52:19
|
||||
*/
|
||||
public void handleVoList(ForecastProject forecastProject) {
|
||||
Map<String, Object> paramMap = forecastUseparamService.getMap(new QueryWrapper<ForecastUseparam>().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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue