Browse Source

add:水库总览

release-sy-v1.0.0
“lyd” 1 month ago
parent
commit
7b3709636f
  1. 4
      shuili-system/src/main/java/com/kms/yg/cz/controller/ReservoirOverviewDataController.java
  2. 13
      shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java
  3. 138
      shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java
  4. 121
      shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/att/AttDamBaseJsonMolde.java
  5. 41
      shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/att/AttResRsppJsonModel.java
  6. 150
      shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/att/AttResSwJsonMode.java
  7. 71
      shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/att/RelStResJsonMode.java
  8. 24
      shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkAttDamBase.java
  9. 14
      shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkRelStRes.java
  10. 62
      shuili-system/src/main/java/com/kms/yxgh/common/controller/ReservoirOverviewController.java
  11. 2
      shuili-system/src/main/java/com/kms/yxgh/common/service/BsSgcSkStatisticsService.java
  12. 4
      sql/sy/v1.6.0/增量脚本/v1.6.2-update.sql

4
shuili-system/src/main/java/com/kms/yg/cz/controller/ReservoirOverviewDataController.java

@ -17,13 +17,13 @@ import org.springframework.web.bind.annotation.RestController;
*/ */
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@RequestMapping("/run/sk/data") @RequestMapping("/run/sk/statistics")
public class ReservoirOverviewDataController { public class ReservoirOverviewDataController {
private final MonitorService monitorService; private final MonitorService monitorService;
@PostMapping("/preview") @PostMapping("/view")
@ApiOperation("水库总览") @ApiOperation("水库总览")
public Response<AttResTaskViewDto> getPreview(@RequestBody AttResTaskViewDto dto) { public Response<AttResTaskViewDto> getPreview(@RequestBody AttResTaskViewDto dto) {
return Response.ok(monitorService.getPreview(dto)); return Response.ok(monitorService.getPreview(dto));

13
shuili-system/src/main/java/com/kms/yg/cz/enmu/MonitorSourceEnum.java

@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.kms.yg.cz.dto.MonitorQueDto; import com.kms.yg.cz.dto.MonitorQueDto;
import com.kms.yg.sk.domain.AttResRspp; import com.kms.yg.sk.domain.AttResRspp;
import com.kms.yxgh.base.domain.monitor.att.AttResRsppJsonModel;
import com.kms.yxgh.base.domain.monitor.att.AttResSwJsonMode;
import com.kms.yxgh.base.domain.monitor.*; import com.kms.yxgh.base.domain.monitor.*;
import com.kms.yxgh.base.domain.sk.AttResSw;
import com.kms.yxgh.base.domain.sk.SkAttDamBase;
import com.kms.yxgh.base.domain.sk.SkRelStRes;
import lombok.Data; import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -49,10 +50,10 @@ public enum MonitorSourceEnum {
MS_DSM_PR("应力监测表", MsDsmPr.class), MS_DSM_PR("应力监测表", MsDsmPr.class),
MS_DSM_ST("应变监测表", MsDsmSt.class), MS_DSM_ST("应变监测表", MsDsmSt.class),
MS_HDM_WAS("堰闸水情监测表", MsHdmWas.class), MS_HDM_WAS("堰闸水情监测表", MsHdmWas.class),
ATT_RES_SW("水库溢洪道表", AttResSw.class),
ATT_RES_SW("水库溢洪道表", AttResSwJsonMode.class), ATT_RES_RSPP("水库溢洪道表", AttResRspp.class),
ATT_RES_RSPP("水库溢洪道表", AttResRsppJsonModel.class) ATT_DAM_BASE("水库大坝基础信息表", SkAttDamBase.class),
DWS_REL_ST_RES("代表站", SkRelStRes.class),
; ;
private final String zhName; private final String zhName;

138
shuili-system/src/main/java/com/kms/yg/cz/service/MonitorService.java

@ -2,7 +2,6 @@ package com.kms.yg.cz.service;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kms.yg.cz.domain.MonitorConfig; import com.kms.yg.cz.domain.MonitorConfig;
@ -14,14 +13,16 @@ import com.kms.yg.cz.enmu.*;
import com.kms.yg.cz.enmu.MonitorTypeEnum; import com.kms.yg.cz.enmu.MonitorTypeEnum;
import com.kms.yg.cz.mapper.MonitorConfigMapper; import com.kms.yg.cz.mapper.MonitorConfigMapper;
import com.kms.yg.sk.domain.AttResRspp; import com.kms.yg.sk.domain.AttResRspp;
import com.kms.yxgh.base.domain.monitor.att.AttResRsppJsonModel;
import com.kms.yxgh.base.domain.monitor.att.AttResSwJsonMode;
import com.kms.yg.sk.dto.AttResTaskViewDto; import com.kms.yg.sk.dto.AttResTaskViewDto;
import com.kms.yxgh.base.domain.monitor.MsHdmObp; import com.kms.yxgh.base.domain.monitor.MsHdmObp;
import com.kms.yxgh.base.domain.monitor.MsHdmRsvr; import com.kms.yxgh.base.domain.monitor.MsHdmRsvr;
import com.kms.yxgh.base.domain.monitor.MsHdmRsvrav; import com.kms.yxgh.base.domain.monitor.MsHdmRsvrav;
import com.kms.yxgh.base.domain.monitor.MsHdmRsvrevs; import com.kms.yxgh.base.domain.monitor.MsHdmRsvrevs;
import com.kms.yxgh.base.domain.sk.AttResSw;
import com.kms.yxgh.base.domain.sk.SkAttDamBase;
import com.kms.yxgh.base.domain.sk.SkRelStRes;
import com.kms.yxgh.common.dto.OperatorDto; import com.kms.yxgh.common.dto.OperatorDto;
import com.kms.yxgh.common.service.BsSgcSkStatisticsService;
import com.kms.yxgh.util.BeanCopyUtils; import com.kms.yxgh.util.BeanCopyUtils;
import com.kms.yxgh.util.DataCenterRestTemplateUtils; import com.kms.yxgh.util.DataCenterRestTemplateUtils;
import com.shuili.common.utils.StringUtils; import com.shuili.common.utils.StringUtils;
@ -29,6 +30,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@ -52,12 +54,24 @@ public class MonitorService {
@Value("${dataSync.url:}") @Value("${dataSync.url:}")
private String dataSyncUrl; private String dataSyncUrl;
@Value("#{${dataSync.paths:{}}}") @Value("#{${dataSync.paths:{}}}")
private Map<String, String> paths = new HashMap<>(); private Map<String, String> paths = new HashMap<>();
// todo 临时
private void initPath (Map<String, String> map) {
paths.put("att_res_sw","/ZHSL_ZY/jck/yggx/dws_att_res_sw");
paths.put("att_res_rspp","/ZHSL_ZY/jck/ytjgx/dws_att_res_rspp");
paths.put("att_dam_base","/ZHSL_ZY/jck/yggx/dws_att_dam_base");
paths.put("ms_hdm_rsvr","/ZHSL_ZY/bzjck/ms_hdm_rsvr");
paths.put("dws_rel_st_res","/ZHSL_ZY/jck/ytjgx/dws_rel_st_res");
paths.put("ms_hdm_obp","/ZHSL_ZY/bzjck/ms_hdm_obp");
}
public IPage<Object> pageQuery(MonitorQueDto queDto) { public IPage<Object> pageQuery(MonitorQueDto queDto) {
MonitorSourceEnum table = queDto.getMonitorType(); MonitorSourceEnum table = queDto.getMonitorType();
String path = paths.get(table.getTableName()); String path = paths.get(table.getTableName());
// todo 水库总揽临时 等淮哥来
initPath(paths);
if (path == null) { if (path == null) {
log.error("未找到对应的路径配置, table:{}", table); log.error("未找到对应的路径配置, table:{}", table);
return table.getMockData(queDto); return table.getMockData(queDto);
@ -288,33 +302,115 @@ public class MonitorService {
MonitorQueDto sp=new MonitorQueDto(); MonitorQueDto sp=new MonitorQueDto();
sp.setResCode(dto.getResCode()); sp.setResCode(dto.getResCode());
CompletableFuture<AttResSwJsonMode> currentWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(ATT_RES_SW, sp)); CompletableFuture<AttResSw> currentWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.ATT_RES_SW, sp));
AttResSwJsonMode attResSw = currentWatterFuture.join(); AttResSw attResSw = currentWatterFuture.join();
// 堰顶高程 // 堰顶高程
if (!Objects.isNull(attResSw)) { if (!Objects.isNull(attResSw)) {
attResTaskViewDto.setElevationWeirCrest(attResSw.getWrcrel()); attResTaskViewDto.setElevationWeirCrest(attResSw.getWrcrel());
} }
// 设计洪水位、校核洪水位 // 设计洪水位、校核洪水位
CompletableFuture<AttResRsppJsonModel> attResRsppJsonModelFuture = CompletableFuture.supplyAsync(() -> queryDataOne(ATT_RES_RSPP, sp)); CompletableFuture<AttResRspp> attResRsppJsonModelFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.ATT_RES_RSPP, sp));
AttResRsppJsonModel attResRsppJsonModel = attResRsppJsonModelFuture.join(); AttResRspp attResRsppJsonModel = attResRsppJsonModelFuture.join();
if (!Objects.isNull(attResRsppJsonModel)) { if (!Objects.isNull(attResRsppJsonModel)) {
attResTaskViewDto.setDesignLevel(attResRsppJsonModel.getDsfllv()); attResTaskViewDto.setDesignLevel(attResRsppJsonModel.getDsfllv());
attResTaskViewDto.setCheckWaterLevel(attResRsppJsonModel.getChfllv()); attResTaskViewDto.setCheckWaterLevel(attResRsppJsonModel.getChfllv());
} }
// 坝顶高程
CompletableFuture<List<SkAttDamBase>> attDamBaseJsonMoldeFuture = CompletableFuture.supplyAsync(() -> queryDataList(MonitorSourceEnum.ATT_DAM_BASE, sp));
List<SkAttDamBase> attDamBaseJsonMoldeList = attDamBaseJsonMoldeFuture.join();
if (!CollectionUtils.isEmpty(attDamBaseJsonMoldeList)) {
attDamBaseJsonMoldeList.stream()
.map(SkAttDamBase::getDamTopElev)
.filter(e-> !StringUtils.isNotEmpty(e))
.mapToDouble(Double::parseDouble)
.max()
.ifPresent(aDouble -> attResTaskViewDto.setCrestElevation(String.format("%.2f", aDouble)));
}
// 代表站
CompletableFuture<SkRelStRes> relStResJsonModeFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.DWS_REL_ST_RES, sp));
SkRelStRes relStResJsonMode = relStResJsonModeFuture.join();
if (Objects.isNull(relStResJsonMode)) {
return attResTaskViewDto;
}
attResTaskViewDto.setStationName(relStResJsonMode.getStName());
attResTaskViewDto.setStationCode(relStResJsonMode.getStCode());
//
// CompletableFuture<MsHdmRsvr> currentWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MS_HDM_RSVR, sp));
//
// CompletableFuture<MsHdmRsvrav> avWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVRAV, sp));
// CompletableFuture<MsHdmRsvrevs> mxWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVREVS, sp));
// CompletableFuture<List<MsHdmObp>> currentFlowFuture = CompletableFuture.supplyAsync(() -> queryDataList(MonitorSourceEnum.MS_HDM_OBP, sp));
// CompletableFuture.allOf(currentWatterFuture, avWatterFuture, mxWatterFuture, currentFlowFuture).join();
//
// MsHdmRsvr currentWatter = currentWatterFuture.join();
// MsHdmRsvrav avWatter = avWatterFuture.join();
// MsHdmRsvrevs mxWatter = mxWatterFuture.join();
// List<MsHdmObp> currentFlow = currentFlowFuture.join();
return null; // 当前水位
sp.setStcd(relStResJsonMode.getStCode());
sp.setStartTime(BsSgcSkStatisticsService.getStartOfDay());
sp.setEndTime(BsSgcSkStatisticsService.getStartOfNextDay());
CompletableFuture<List<MsHdmRsvr>> msHdmRsvrFuture = CompletableFuture.supplyAsync(() -> queryDataList(MonitorSourceEnum.MS_HDM_RSVR, sp));
List<MsHdmRsvr> msHdmRsvrFutureList = msHdmRsvrFuture.join();
if (!CollectionUtils.isEmpty(msHdmRsvrFutureList)) {
// 当前水位
MsHdmRsvr msHdmRsvr = msHdmRsvrFutureList.stream()
.filter(e->!Objects.isNull(e.getTm()))
.max(Comparator.comparing(MsHdmRsvr::getTm)).orElse(null);
if (!Objects.isNull(msHdmRsvr)) {
attResTaskViewDto.setCurrentWaterLevel(msHdmRsvr.getRz());
// 入库流量
attResTaskViewDto.setIncomingFlow(msHdmRsvr.getInq());
// 出库流量
attResTaskViewDto.setOutboundFlow(msHdmRsvr.getOtq());
}
}
// 去年今日
sp.setStartTime(BsSgcSkStatisticsService.getLastYearTodayStartOfDay());
sp.setEndTime(BsSgcSkStatisticsService.getLastYearTomorrowStartOfDay());
CompletableFuture<List<MsHdmRsvr>> msHdmRsvrLastFuture = CompletableFuture.supplyAsync(() -> queryDataList(MonitorSourceEnum.MS_HDM_RSVR, sp));
List<MsHdmRsvr> msHdmRsvrLastFutureList = msHdmRsvrLastFuture.join();
if (!CollectionUtils.isEmpty(msHdmRsvrLastFutureList)) {
MsHdmRsvr msHdmRsvr = msHdmRsvrFutureList.stream()
.filter(e->!Objects.isNull(e.getTm()))
.max(Comparator.comparing(MsHdmRsvr::getTm)).orElse(null);
if (!Objects.isNull(msHdmRsvr)) {
// 去年今日
attResTaskViewDto.setLastYearToday(msHdmRsvr.getRz());
}
}
// 近一个小时
sp.setStartTime(BsSgcSkStatisticsService.getTimeBeforeHours(1));
sp.setEndTime(BsSgcSkStatisticsService.getCurrentTime());
CompletableFuture<List<MsHdmObp>> msHdmObpOneListFuture = CompletableFuture.supplyAsync(() -> queryDataList(MS_HDM_OBP, sp));
List<MsHdmObp> msHdmObpOneList = msHdmObpOneListFuture.join();
if (!CollectionUtils.isEmpty(msHdmObpOneList)) {
// 近一个小时
attResTaskViewDto.setNearlyAnHour(BsSgcSkStatisticsService.getSum(msHdmObpOneList));
}
// 近6个小时
sp.setStartTime(BsSgcSkStatisticsService.getTimeBeforeHours(6));
sp.setEndTime(BsSgcSkStatisticsService.getCurrentTime());
CompletableFuture<List<MsHdmObp>> msHdmObpSixListFuture = CompletableFuture.supplyAsync(() -> queryDataList(MS_HDM_OBP, sp));
List<MsHdmObp> msHdmObpSixList = msHdmObpSixListFuture.join();
if (!CollectionUtils.isEmpty(msHdmObpSixList)) {
// 近6个小时
attResTaskViewDto.setNearlySixHours(BsSgcSkStatisticsService.getSum(msHdmObpSixList));
}
// 近9个小时
sp.setStartTime(BsSgcSkStatisticsService.getTimeBeforeHours(9));
sp.setEndTime(BsSgcSkStatisticsService.getCurrentTime());
CompletableFuture<List<MsHdmObp>> msHdmObpNineListFuture = CompletableFuture.supplyAsync(() -> queryDataList(MS_HDM_OBP, sp));
List<MsHdmObp> msHdmObpNineList = msHdmObpNineListFuture.join();
if (!CollectionUtils.isEmpty(msHdmObpNineList)) {
// 近9个小时
attResTaskViewDto.setNearlyNineHours(BsSgcSkStatisticsService.getSum(msHdmObpNineList));
}
// 近12个小时
sp.setStartTime(BsSgcSkStatisticsService.getTimeBeforeHours(12));
sp.setEndTime(BsSgcSkStatisticsService.getCurrentTime());
CompletableFuture<List<MsHdmObp>> msHdmObpTwelveListFuture = CompletableFuture.supplyAsync(() -> queryDataList(MS_HDM_OBP, sp));
List<MsHdmObp> msHdmObpTwelveList = msHdmObpTwelveListFuture.join();
if (!CollectionUtils.isEmpty(msHdmObpTwelveList)) {
// 近12个小时
attResTaskViewDto.setNearlyTwelveHours(BsSgcSkStatisticsService.getSum(msHdmObpNineList));
}
return attResTaskViewDto;
} }
} }

121
shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/att/AttDamBaseJsonMolde.java

@ -1,121 +0,0 @@
package com.kms.yxgh.base.domain.monitor.att;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@TableName("att_dam_base")
@Data
@ApiModel("水库大坝基础信息表")
public class AttDamBaseJsonMolde {
/**
* 大坝代码
*/
@ApiModelProperty("大坝代码")
@JSONField(name = "DAM_CODE")
private String damCode;
/**
* 大坝名称
*/
@ApiModelProperty("大坝名称")
@JSONField(name = "DAM_NAME")
private String damName;
/**
* 水库代码
*/
@ApiModelProperty("水库代码")
@JSONField(name = "RES_CODE")
private String resCode;
/**
* 水库大坝中点经度
*/
@ApiModelProperty("水库大坝中点经度")
@JSONField(name = "DAM_START_LONG")
private String damStartLong;
/**
* 水库大坝中点纬度
*/
@ApiModelProperty("水库大坝中点纬度")
@JSONField(name = "DAM_START_LAT")
private String damStartLat;
@ApiModelProperty("大坝所在位置")
@JSONField(name = "DAM_LOC")
private String damLoc;
@ApiModelProperty("是否主坝")
@JSONField(name = "IF_MAIN_DAM")
private String ifMainDam;
@ApiModelProperty("是否溢流坝")
@JSONField(name = "IF_YL_DAM")
private String ifYlDam;
@ApiModelProperty("工程等别")
@JSONField(name = "ENG_GRAD")
private String engGrad;
@ApiModelProperty("大坝级别")
@JSONField(name = "DAM_GRAD")
private String damGrad;
@ApiModelProperty("最大坝高")
@JSONField(name = "DAM_MAX_HEIG")
private String damMaxHeig;
@ApiModelProperty("坝顶长度")
@JSONField(name = "DAM_TOP_LEN")
private String damTopLen;
@ApiModelProperty("坝顶宽度")
@JSONField(name = "DAM_TOP_WID")
private String damTopWid;
@ApiModelProperty("高程系统")
@JSONField(name = "ELEV_SYS")
private String elevSys;
@ApiModelProperty("高程转换值")
@JSONField(name = "ELEV_SYS_CONVER")
private String elevSysConver;
@ApiModelProperty("坝顶高程")
@JSONField(name = "DAM_TOP_ELEV")
private String damTopElev;
@ApiModelProperty("防浪墙顶高程")
@JSONField(name = "WVWLTPEL")
private String wvwltpel;
@ApiModelProperty("大坝材料类型")
@JSONField(name = "DAM_TYPE_MAT")
private String damTypeMat;
@ApiModelProperty("大坝结构类型")
@JSONField(name = "DAM_TYPE_STR")
private String damTypeStr;
@ApiModelProperty("大坝概况")
@JSONField(name = "DAM_OV")
private String damOv;
@ApiModelProperty("备注")
@JSONField(name = "NOTE")
private String note;
@ApiModelProperty("记录更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(name = "UPDATE_DATE", format = "yyyy-MM-dd HH:mm:ss")
private Date updateDate;
}

41
shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/att/AttResRsppJsonModel.java

@ -1,41 +0,0 @@
package com.kms.yxgh.base.domain.monitor.att;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.shuili.common.annotation.Excel;
import com.shuili.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 请填写功能名称对象 att_res_rspp
*
* @author kms
* @date 2024-04-24
*/
@TableName("att_res_rspp")
@Data
@ApiModel("水库主要特征")
public class AttResRsppJsonModel {
/**
* 设计洪水位
*/
@JSONField(name = "dsfllv")
@ApiModelProperty("设计洪水位")
private String dsfllv;
/**
* 校核洪水位
*/
@ApiModelProperty("校核洪水位")
@JSONField(name = "chfllv")
private String chfllv;
}

150
shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/att/AttResSwJsonMode.java

@ -1,150 +0,0 @@
package com.kms.yxgh.base.domain.monitor.att;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 请填写功能名称对象 ATT_RES_SW
*
* @author kms
* @date 2024-04-24
*/
@TableName("att_res_sw")
@Data
@ApiModel("水库溢洪道表")
public class AttResSwJsonMode {
/**
* 水库编码
*/
@ApiModelProperty("水库编码")
@JSONField(name = "RES_CODE")
private String resCode;
/**
* 溢洪道名称
*/
@ApiModelProperty("溢洪道名称")
@JSONField(name = "SWNM")
private String swnm;
/**
* 布置位置
*/
@ApiModelProperty("布置位置")
@JSONField(name = "LYPS")
private String lyps;
/**
* 控制方式
*/
@ApiModelProperty("控制方式")
@JSONField(name = "CRMT")
private String crmt;
/**
* 堰顶高程
*/
@ApiModelProperty("堰顶高程")
@JSONField(name = "WRCREL")
private String wrcrel;
/**
* 堰顶净宽
*/
@ApiModelProperty("堰顶净宽")
@JSONField(name = "WRCRNTWD")
private String wrcrntwd;
/**
* 溢流堰型式
*/
@ApiModelProperty("溢流堰型式")
@JSONField(name = "OFWRST")
private String ofwrst;
/**
* 闸门型式
*/
@ApiModelProperty("闸门型式")
@JSONField(name = "GTST")
private String gtst;
/**
* 闸门尺寸
*/
@ApiModelProperty("闸门尺寸")
@JSONField(name = "GTSZ")
private String gtsz;
/**
* 闸门数量
*/
@ApiModelProperty("闸门数量")
@JSONField(name = "GTAM")
private String gtam;
/**
* 最大泄量
*/
@ApiModelProperty("最大泄量")
@JSONField(name = "MAXDS")
private String maxds;
/**
* 消能型式
*/
@ApiModelProperty("消能型式")
@JSONField(name = "ENDSST")
private String endsst;
/**
* 启闭设备
*/
@ApiModelProperty("启闭设备")
@JSONField(name = "HSEQ")
private String hseq;
/**
* 启闭机数量
*/
@ApiModelProperty("启闭机数量")
@JSONField(name = "HSGRAM")
private String hsgram;
/**
* 电源条件
*/
@ApiModelProperty("电源条件")
@JSONField(name = "PWSPCN")
private String pwspcn;
/**
* 备注
*/
@ApiModelProperty("备注")
@JSONField(name = "NOTE")
private String note;
/**
* 修改时间
*/
@ApiModelProperty("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(name = "UPDATE_DATE", format = "yyyy-MM-dd HH:mm:ss")
private Date updateDate;
}

71
shuili-system/src/main/java/com/kms/yxgh/base/domain/monitor/att/RelStResJsonMode.java

@ -1,71 +0,0 @@
package com.kms.yxgh.base.domain.monitor.att;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@TableName("rel_st_res")
@Data
@ApiModel("代表站")
public class RelStResJsonMode {
private static final long serialVersionUID = 1L;
/**
* 水库编码
*/
@ApiModelProperty("类型标识 1代表站")
@JSONField(name = "FLAG")
private String flag;
/**
* 水库编码
*/
@ApiModelProperty("水库编码")
@JSONField(name = "RES_CODE")
private String resCode;
/**
* 水库名称
*/
@ApiModelProperty("水库名称")
@JSONField(name = "RES_NAME")
private String resName;
/**
* 河流代码
*/
@ApiModelProperty("测站代码")
@JSONField(name = "ST_CODE")
private String stCode;
/**
* 河流名称
*/
@ApiModelProperty("测站名称")
@JSONField(name = "ST_NAME")
private String stName;
/**
* 关系建立时间
*/
@ApiModelProperty("关系建立时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(name = "FROM_DATE", format = "yyyy-MM-dd HH:mm:ss")
private Date fromDate;
/**
* 关系终止时间
*/
@ApiModelProperty("关系终止时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(name = "TO_DATE", format = "yyyy-MM-dd HH:mm:ss")
private Date toDate;
}

24
shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkAttDamBase.java

@ -1,5 +1,6 @@
package com.kms.yxgh.base.domain.sk; package com.kms.yxgh.base.domain.sk;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
@ -17,81 +18,104 @@ public class SkAttDamBase {
* 大坝代码 * 大坝代码
*/ */
@ApiModelProperty("大坝代码") @ApiModelProperty("大坝代码")
@JSONField(name = "DAM_CODE")
private String damCode; private String damCode;
/** /**
* 大坝名称 * 大坝名称
*/ */
@ApiModelProperty("大坝名称") @ApiModelProperty("大坝名称")
@JSONField(name = "DAM_NAME")
private String damName; private String damName;
/** /**
* 水库代码 * 水库代码
*/ */
@ApiModelProperty("水库代码") @ApiModelProperty("水库代码")
@JSONField(name = "RES_CODE")
private String resCode; private String resCode;
/** /**
* 水库大坝中点经度 * 水库大坝中点经度
*/ */
@ApiModelProperty("水库大坝中点经度") @ApiModelProperty("水库大坝中点经度")
@JSONField(name = "DAM_START_LONG")
private String damStartLong; private String damStartLong;
/** /**
* 水库大坝中点纬度 * 水库大坝中点纬度
*/ */
@ApiModelProperty("水库大坝中点纬度") @ApiModelProperty("水库大坝中点纬度")
@JSONField(name = "DAM_START_LAT")
private String damStartLat; private String damStartLat;
@ApiModelProperty("大坝所在位置") @ApiModelProperty("大坝所在位置")
@JSONField(name = "DAM_LOC")
private String damLoc; private String damLoc;
@ApiModelProperty("是否主坝") @ApiModelProperty("是否主坝")
@JSONField(name = "IF_MAIN_DAM")
private String ifMainDam; private String ifMainDam;
@ApiModelProperty("是否溢流坝") @ApiModelProperty("是否溢流坝")
@JSONField(name = "IF_YL_DAM")
private String ifYlDam; private String ifYlDam;
@ApiModelProperty("工程等别") @ApiModelProperty("工程等别")
@JSONField(name = "ENG_GRAD")
private String engGrad; private String engGrad;
@ApiModelProperty("大坝级别") @ApiModelProperty("大坝级别")
@JSONField(name = "DAM_GRAD")
private String damGrad; private String damGrad;
@ApiModelProperty("最大坝高") @ApiModelProperty("最大坝高")
@JSONField(name = "DAM_MAX_HEIG")
private String damMaxHeig; private String damMaxHeig;
@ApiModelProperty("坝顶长度") @ApiModelProperty("坝顶长度")
@JSONField(name = "DAM_TOP_LEN")
private String damTopLen; private String damTopLen;
@ApiModelProperty("坝顶宽度") @ApiModelProperty("坝顶宽度")
@JSONField(name = "DAM_TOP_WID")
private String damTopWid; private String damTopWid;
@ApiModelProperty("高程系统") @ApiModelProperty("高程系统")
@JSONField(name = "ELEV_SYS")
private String elevSys; private String elevSys;
@ApiModelProperty("高程转换值") @ApiModelProperty("高程转换值")
@JSONField(name = "ELEV_SYS_CONVER")
private String elevSysConver; private String elevSysConver;
@ApiModelProperty("坝顶高程") @ApiModelProperty("坝顶高程")
@JSONField(name = "DAM_TOP_ELEV")
private String damTopElev; private String damTopElev;
@ApiModelProperty("防浪墙顶高程") @ApiModelProperty("防浪墙顶高程")
@JSONField(name = "WVWLTPEL")
private String wvwltpel; private String wvwltpel;
@ApiModelProperty("大坝材料类型") @ApiModelProperty("大坝材料类型")
@JSONField(name = "DAM_TYPE_MAT")
private String damTypeMat; private String damTypeMat;
@ApiModelProperty("大坝结构类型") @ApiModelProperty("大坝结构类型")
@JSONField(name = "DAM_TYPE_STR")
private String damTypeStr; private String damTypeStr;
@ApiModelProperty("大坝概况") @ApiModelProperty("大坝概况")
@JSONField(name = "DAM_OV")
private String damOv; private String damOv;
@ApiModelProperty("备注") @ApiModelProperty("备注")
@JSONField(name = "NOTE")
private String note; private String note;
@ApiModelProperty("记录更新时间") @ApiModelProperty("记录更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(name = "UPDATE_DATE", format = "yyyy-MM-dd HH:mm:ss")
private Date updateDate; private Date updateDate;
} }

14
shuili-system/src/main/java/com/kms/yxgh/base/domain/sk/SkRelStRes.java

@ -1,11 +1,12 @@
package com.kms.yxgh.base.domain.sk; package com.kms.yxgh.base.domain.sk;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
@TableName("rel_st_res") @TableName("dw_rel_st_res")
@Data @Data
@ApiModel("代表站") @ApiModel("代表站")
public class SkRelStRes { public class SkRelStRes {
@ -17,44 +18,51 @@ public class SkRelStRes {
* 水库编码 * 水库编码
*/ */
@ApiModelProperty("类型标识 1代表站") @ApiModelProperty("类型标识 1代表站")
@JSONField(name = "FLAG")
private String flag; private String flag;
/** /**
* 水库编码 * 水库编码
*/ */
@ApiModelProperty("水库编码") @ApiModelProperty("水库编码")
@JSONField(name = "RES_CODE")
private String resCode; private String resCode;
/** /**
* 水库名称 * 水库名称
*/ */
@ApiModelProperty("水库名称") @ApiModelProperty("水库名称")
@JSONField(name = "RES_NAME")
private String resName; private String resName;
/** /**
* 河流代码 * 河流代码
*/ */
@ApiModelProperty("测站代码") @ApiModelProperty("测站代码")
@JSONField(name = "ST_CODE")
private String stCode; private String stCode;
/** /**
* 河流名称 * 河流名称
*/ */
@ApiModelProperty("测站名称") @ApiModelProperty("测站名称")
@JSONField(name = "ST_NAME")
private String stName; private String stName;
/** /**
* 关系建立时间 * 关系建立时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("关系建立时间") @ApiModelProperty("关系建立时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(name = "FROM_DATE", format = "yyyy-MM-dd HH:mm:ss")
private Date fromDate; private Date fromDate;
/** /**
* 关系终止时间 * 关系终止时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("关系终止时间") @ApiModelProperty("关系终止时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(name = "TO_DATE", format = "yyyy-MM-dd HH:mm:ss")
private Date toDate; private Date toDate;
} }

62
shuili-system/src/main/java/com/kms/yxgh/common/controller/ReservoirOverviewController.java

@ -1,31 +1,31 @@
package com.kms.yxgh.common.controller; //package com.kms.yxgh.common.controller;
//
import com.kms.yg.sk.dto.AttResTaskViewDto; //import com.kms.yg.sk.dto.AttResTaskViewDto;
import com.kms.yxgh.base.Response; //import com.kms.yxgh.base.Response;
import com.kms.yxgh.common.service.BsSgcSkStatisticsService; //import com.kms.yxgh.common.service.BsSgcSkStatisticsService;
import io.swagger.annotations.ApiOperation; //import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; //import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping; //import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; //import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; //import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; //import org.springframework.web.bind.annotation.RestController;
//
/** /// **
* @author lyd // * @author lyd
* @company 数元科技有限公司 // * @company 数元科技有限公司
* @create 2025-03-19 9:34 // * @create 2025-03-19 9:34
*/ // */
@RestController //@RestController
@AllArgsConstructor //@AllArgsConstructor
@RequestMapping("/run/sk/statistics") //@RequestMapping("/run/sk/statistics")
public class ReservoirOverviewController { //public class ReservoirOverviewController {
//
private final BsSgcSkStatisticsService bsSgcSkStatisticsService; // private final BsSgcSkStatisticsService bsSgcSkStatisticsService;
//
@PostMapping("/view") // @PostMapping("/view")
@ApiOperation("水库总览") // @ApiOperation("水库总览")
public Response<AttResTaskViewDto> getView(@RequestBody AttResTaskViewDto dto) { // public Response<AttResTaskViewDto> getView(@RequestBody AttResTaskViewDto dto) {
return Response.ok(bsSgcSkStatisticsService.getView(dto)); // return Response.ok(bsSgcSkStatisticsService.getView(dto));
} // }
//
} //}

2
shuili-system/src/main/java/com/kms/yxgh/common/service/BsSgcSkStatisticsService.java

@ -166,7 +166,7 @@ public class BsSgcSkStatisticsService {
return view; return view;
} }
private String getSum(List<MsHdmObp> list) { public static String getSum(List<MsHdmObp> list) {
// 使用 Stream API 处理 // 使用 Stream API 处理
BigDecimal sum = list.stream() BigDecimal sum = list.stream()
.map(MsHdmObp::getDrp) .map(MsHdmObp::getDrp)

4
sql/sy/v1.6.0/增量脚本/v1.6.2-update.sql

@ -56,4 +56,6 @@ create table att_dam_base (
dam_ov varchar(3000) default null comment '大坝概况', dam_ov varchar(3000) default null comment '大坝概况',
note varchar(256) default null comment '备注', note varchar(256) default null comment '备注',
update_date datetime not null comment '记录更新时间' update_date datetime not null comment '记录更新时间'
)engine=innodb auto_increment=1 default charset=utf8mb4 collate=utf8mb4_general_ci row_format=dynamic comment='水库大坝基础信息表'; )engine=innodb auto_increment=1 default charset=utf8mb4 collate=utf8mb4_general_ci row_format=dynamic comment='水库大坝基础信息表';
ALTER TABLE rel_st_res RENAME TO dws_rel_st_res;
Loading…
Cancel
Save