优化预报结果返回
parent
9a60fba2b3
commit
ff77d4b8b8
|
|
@ -128,6 +128,7 @@ public class ForecastProjectController {
|
||||||
List<ForecastResults> resultList = forecastResultsService.list(new QueryWrapper<ForecastResults>().eq("project_id", projectId));
|
List<ForecastResults> resultList = forecastResultsService.list(new QueryWrapper<ForecastResults>().eq("project_id", projectId));
|
||||||
if(CollectionUtils.isNotEmpty(resultList)) {
|
if(CollectionUtils.isNotEmpty(resultList)) {
|
||||||
forecastProject.setVoList(JSON.parseArray(JSON.toJSONString(resultList), ForecastResultVo.class));
|
forecastProject.setVoList(JSON.parseArray(JSON.toJSONString(resultList), ForecastResultVo.class));
|
||||||
|
forecastResultsService.handleVoList(forecastProject);
|
||||||
}
|
}
|
||||||
return R.ok(forecastProject);
|
return R.ok(forecastProject);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.gunshi.project.xyt.controller;
|
package com.gunshi.project.xyt.controller;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
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.ObjectUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 描述: 预报_预测结果表
|
* 描述: 预报_预测结果表
|
||||||
* author: cxw
|
* author: cxw
|
||||||
|
|
@ -39,7 +41,6 @@ public class ForecastResultsController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ForecastResultsService service;
|
private ForecastResultsService service;
|
||||||
|
|
||||||
|
|
||||||
@Operation(summary = "新增")
|
@Operation(summary = "新增")
|
||||||
@PostMapping("/insert")
|
@PostMapping("/insert")
|
||||||
public R<ForecastResults> insert(@Validated(Insert.class) @RequestBody ForecastResults dto) {
|
public R<ForecastResults> insert(@Validated(Insert.class) @RequestBody ForecastResults dto) {
|
||||||
|
|
@ -93,6 +94,9 @@ public class ForecastResultsController {
|
||||||
forecastProject.setForecastPeriod(forecastTask.getForecastPeriod());
|
forecastProject.setForecastPeriod(forecastTask.getForecastPeriod());
|
||||||
forecastProject.setForecastWarm(forecastTask.getForecastWarm());
|
forecastProject.setForecastWarm(forecastTask.getForecastWarm());
|
||||||
forecastProject.setVoList(voList);
|
forecastProject.setVoList(voList);
|
||||||
|
if (CollectionUtils.isNotEmpty(voList)) {
|
||||||
|
service.handleVoList(forecastProject);
|
||||||
|
}
|
||||||
return R.ok(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.mapper.ForecastResultsMapper;
|
||||||
import com.gunshi.project.xyt.model.AttResBase;
|
import com.gunshi.project.xyt.model.AttResBase;
|
||||||
import com.gunshi.project.xyt.model.ForecastPa;
|
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.ForecastResults;
|
||||||
import com.gunshi.project.xyt.model.ForecastTask;
|
import com.gunshi.project.xyt.model.ForecastTask;
|
||||||
import com.gunshi.project.xyt.model.ForecastU;
|
import com.gunshi.project.xyt.model.ForecastU;
|
||||||
|
|
@ -416,4 +417,43 @@ public class ForecastResultsService extends ServiceImpl<ForecastResultsMapper, F
|
||||||
calendar.set(Calendar.MILLISECOND, 0);
|
calendar.set(Calendar.MILLISECOND, 0);
|
||||||
return date.before(calendar.getTime());
|
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