gunshi-project-ss/src/main/java/com/gunshi/project/hsz/controller/ReservoirWaterController.java

162 lines
6.5 KiB
Java
Raw Normal View History

2025-07-17 15:26:39 +08:00
package com.gunshi.project.hsz.controller;
2024-07-08 17:41:17 +08:00
2025-03-28 17:19:17 +08:00
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
2024-07-15 17:11:36 +08:00
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
2024-07-15 16:58:18 +08:00
import com.gunshi.core.annotation.Get;
2024-07-08 17:41:17 +08:00
import com.gunshi.core.annotation.Post;
import com.gunshi.core.result.R;
2025-11-05 17:19:05 +08:00
import com.gunshi.project.hsz.common.model.StPptnR;
2025-11-06 11:35:41 +08:00
import com.gunshi.project.hsz.common.model.StRsvrR;
import com.gunshi.project.hsz.common.model.StStbprpB;
2025-07-17 15:26:39 +08:00
import com.gunshi.project.hsz.entity.so.DataQueryCommonSo;
import com.gunshi.project.hsz.entity.so.PicQuerySo;
import com.gunshi.project.hsz.entity.so.ReservoirWaterCommonSo;
import com.gunshi.project.hsz.entity.vo.*;
import com.gunshi.project.hsz.model.*;
import com.gunshi.project.hsz.service.*;
2024-07-15 16:58:18 +08:00
import io.swagger.v3.oas.annotations.media.Schema;
2024-07-08 17:41:17 +08:00
import io.swagger.v3.oas.annotations.tags.Tag;
2025-03-28 17:19:17 +08:00
import org.apache.commons.collections4.CollectionUtils;
2024-07-08 17:41:17 +08:00
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
2024-07-15 16:58:18 +08:00
import org.springframework.web.bind.annotation.RequestParam;
2024-07-08 17:41:17 +08:00
import org.springframework.web.bind.annotation.RestController;
2025-03-28 17:19:17 +08:00
import java.math.BigDecimal;
import java.util.Calendar;
2024-07-08 17:41:17 +08:00
import java.util.List;
/**
* Description:
* Created by wanyan on 2024/2/20
*
* @author wanyan
* @version 1.0
*/
@RestController
@RequestMapping("/reservoir/water")
@Tag(name = "水库水情")
public class ReservoirWaterController {
@Autowired
private ReservoirWaterService reservoirWaterService;
2025-03-28 17:19:17 +08:00
@Autowired
private RealRainService realRainService;
@Autowired
private StWaterRRealService stWaterRRealService;
@Autowired
private ResMonthEcoFlowService resMonthEcoFlowService;
@Autowired
private StRsvrRService stRsvrRService;
@Autowired
private StPptnRService stPptnRService;
@Autowired
private RiverWaterService riverWaterService;
2024-07-08 17:41:17 +08:00
@Post(path = "/rz", summary = "水库水位")
public R<StRsvrVo> rz(@RequestBody ReservoirWaterCommonSo reservoirWaterCommonSo) {
return R.ok(reservoirWaterService.rz(reservoirWaterCommonSo));
}
@Post(path = "/list", summary = "水库水情列表")
public R<List<AttResBaseVo>> list() {
return R.ok(reservoirWaterService.list());
}
2025-04-01 11:24:38 +08:00
@Post(path = "/listV2", summary = "水库水情列表")
public R<List<AttResBaseVo>> listV2() {
return R.ok(reservoirWaterService.listV2());
}
2024-07-15 16:58:18 +08:00
@Get(path = "/image/channel", summary = "图像监测视角下拉")
public R<List<StStbprpB>> channel(@Schema(name = "resCode") @RequestParam("resCode") String resCode) {
return R.ok(reservoirWaterService.channel(resCode));
}
2024-07-15 17:11:36 +08:00
@Post(path = "/image/info", summary = "图片信息")
public R<Page<StImgR>> imageInfo(@RequestBody @Validated PicQuerySo picQuerySo) {
return R.ok(reservoirWaterService.imageInfo(picQuerySo));
}
2024-07-08 17:41:17 +08:00
@Post(path = "/real/img", summary = "水库实时图像")
public R<List<StImgRReal>> realImg(@RequestBody ReservoirWaterCommonSo reservoirWaterCommonSo) {
return R.ok(reservoirWaterService.realImg(reservoirWaterCommonSo));
}
@Post(path = "/monitor/data", summary = "监测数据")
public R<List<AttResMonitorVo>> monitorData(@RequestBody @Validated DataQueryCommonSo dataQueryCommonSo) {
return R.ok(reservoirWaterService.monitorData(dataQueryCommonSo));
}
@Post(path = "/data", summary = "闸阀总览-库容曲线")
public R<List<AttResMonitorVo>> data(@RequestBody @Validated DataQueryCommonSo dataQueryCommonSo) {
2025-10-11 17:58:19 +08:00
dataQueryCommonSo.setStcd("232");//黑石咀水库
return R.ok(reservoirWaterService.data(dataQueryCommonSo));
}
2025-03-28 17:19:17 +08:00
@Post(path = "/waterInfo", summary = "闸阀总览-库容曲线")
public R<AttResMonitorVo> waterInfo(@RequestBody DataQueryCommonSo dataQueryCommonSo) {
AttResMonitorVo attResMonitorVo = new AttResMonitorVo();
LambdaQueryWrapper<StRsvrR> qw = new LambdaQueryWrapper<>();
2025-04-09 18:53:26 +08:00
qw.eq(StRsvrR::getStcd,dataQueryCommonSo.getStcd()).orderByDesc(StRsvrR::getTm).last(" limit 1");
2025-03-28 17:19:17 +08:00
List<StRsvrR> list1 = stRsvrRService.list(qw);
if(CollectionUtils.isNotEmpty(list1)){
attResMonitorVo.setRz(new BigDecimal(list1.get(0).getRz()));
attResMonitorVo.setTm(list1.get(0).getTm());
}
LambdaQueryWrapper<StPptnR> qw2= new LambdaQueryWrapper<>();
2025-04-10 16:47:01 +08:00
qw2.eq(StPptnR::getStcd,dataQueryCommonSo.getStcd()).orderByDesc(StPptnR::getTm).last(" limit 1");
2025-03-28 17:19:17 +08:00
List<StPptnR> list3 = stPptnRService.list(qw2);
2025-04-09 18:53:26 +08:00
if(CollectionUtils.isNotEmpty(list3)){
2025-04-10 16:47:01 +08:00
attResMonitorVo.setTodayRainNum(new BigDecimal(list3.get(0).getDrp()));
2025-03-28 17:19:17 +08:00
attResMonitorVo.setTodayRainNumTm(list3.get(0).getTm());
}
List<StWaterRReal> list2 = stWaterRRealService.listRelated();
if(CollectionUtils.isNotEmpty(list2)){
// 获取当月核定流量
ResMonthEcoFlow resMonthEcoFlow = resMonthEcoFlowService.getOne(new QueryWrapper<ResMonthEcoFlow>().eq("month", Calendar.getInstance().get(Calendar.MONTH) + 1));
if(ObjectUtils.isNotEmpty(resMonthEcoFlow)){
for(StWaterRReal real : list2){
real.setResMonthEcoFlow(resMonthEcoFlow);
}
}
StWaterRReal stWaterRReal = list2.stream().max((o1, o2) -> o1.getTm().compareTo(o2.getTm())).orElse(new StWaterRReal());
attResMonitorVo.setOutPowerNum(stWaterRReal.getQ());
attResMonitorVo.setOutPowerNumTm(stWaterRReal.getTm());
}
return R.ok(attResMonitorVo);
}
2024-10-09 15:35:16 +08:00
@Post(path = "/data/page", summary = "分页库容曲线")
public R<Page<AttResMonitorVo>> dataPage(@RequestBody @Validated PicQuerySo picQuerySo) {
return R.ok(reservoirWaterService.dataPage(picQuerySo));
}
2024-07-15 16:58:18 +08:00
@Get(path = "/detail", summary = "监测详细数据(下方表格)")
public R<AttRvMonitorDetailVo> detail(@Schema(name = "stcd") @RequestParam("stcd") String stcd) {
AttRvMonitorDetailVo detail;
List<String> riverStcd = riverWaterService.getRiverStcd();
if(riverStcd.contains(stcd)){
detail = riverWaterService.detail(stcd);
}else{
detail = reservoirWaterService.detail(stcd);
}
return R.ok(detail);
2024-07-15 16:58:18 +08:00
}
2024-07-08 17:41:17 +08:00
}