16 changed files with 824 additions and 2 deletions
@ -0,0 +1,134 @@ |
|||
package com.kms.yg.sk.domain; |
|||
|
|||
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_SW |
|||
* |
|||
* @author kms |
|||
* @date 2024-04-24 |
|||
*/ |
|||
@TableName("att_res_sw") |
|||
@Data |
|||
@ApiModel("水库溢洪道表") |
|||
public class AttResSw { |
|||
|
|||
|
|||
/** |
|||
* 水库编码 |
|||
*/ |
|||
@ApiModelProperty("水库编码") |
|||
private String resCode; |
|||
|
|||
/** |
|||
* 溢洪道名称 |
|||
*/ |
|||
@ApiModelProperty("溢洪道名称") |
|||
private String swnm; |
|||
|
|||
/** |
|||
* 布置位置 |
|||
*/ |
|||
@ApiModelProperty("布置位置") |
|||
private String lyps; |
|||
|
|||
/** |
|||
* 控制方式 |
|||
*/ |
|||
@ApiModelProperty("控制方式") |
|||
private String crmt; |
|||
|
|||
|
|||
/** |
|||
* 堰顶高程 |
|||
*/ |
|||
@ApiModelProperty("堰顶高程") |
|||
private String wrcrel; |
|||
|
|||
/** |
|||
* 堰顶净宽 |
|||
*/ |
|||
@ApiModelProperty("堰顶净宽") |
|||
private String wrcrntwd; |
|||
|
|||
/** |
|||
* 溢流堰型式 |
|||
*/ |
|||
@ApiModelProperty("溢流堰型式") |
|||
private String ofwrst; |
|||
|
|||
/** |
|||
* 闸门型式 |
|||
*/ |
|||
@ApiModelProperty("闸门型式") |
|||
private String gtst; |
|||
|
|||
|
|||
/** |
|||
* 闸门尺寸 |
|||
*/ |
|||
@ApiModelProperty("闸门尺寸") |
|||
private String gtsz; |
|||
|
|||
/** |
|||
* 闸门数量 |
|||
*/ |
|||
@ApiModelProperty("闸门数量") |
|||
private String gtam; |
|||
|
|||
/** |
|||
* 最大泄量 |
|||
*/ |
|||
@ApiModelProperty("最大泄量") |
|||
private String maxds; |
|||
|
|||
/** |
|||
* 消能型式 |
|||
*/ |
|||
@ApiModelProperty("消能型式") |
|||
private String endsst; |
|||
|
|||
|
|||
/** |
|||
* 启闭设备 |
|||
*/ |
|||
@ApiModelProperty("启闭设备") |
|||
private String hseq; |
|||
|
|||
/** |
|||
* 启闭机数量 |
|||
*/ |
|||
@ApiModelProperty("启闭机数量") |
|||
private String hsgram; |
|||
|
|||
|
|||
/** |
|||
* 电源条件 |
|||
*/ |
|||
@ApiModelProperty("电源条件") |
|||
private String pwspcn; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
@ApiModelProperty("备注") |
|||
private String note; |
|||
|
|||
/** |
|||
* 修改时间 |
|||
*/ |
|||
@ApiModelProperty("修改时间") |
|||
private Date updateDate; |
|||
|
|||
|
|||
} |
@ -0,0 +1,65 @@ |
|||
package com.kms.yg.sk.dto; |
|||
|
|||
import com.kms.yxgh.common.dto.IAdcd; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author lyd |
|||
* @company 数元科技有限公司 |
|||
* @create 2025-03-19 9:02 |
|||
*/ |
|||
|
|||
@Data |
|||
@ApiModel("水库总览") |
|||
public class AttResTaskViewDto implements IAdcd { |
|||
@ApiModelProperty("行政区划") |
|||
private String adcd; |
|||
|
|||
@ApiModelProperty("水库编码") |
|||
private String resCode; |
|||
|
|||
@ApiModelProperty("代表站name") |
|||
private String stationName; |
|||
|
|||
@ApiModelProperty("代表站code") |
|||
private String stationCode; |
|||
|
|||
@ApiModelProperty("当前水位") |
|||
private String currentWaterLevel; |
|||
|
|||
@ApiModelProperty("堰顶高程") |
|||
private String elevationWeirCrest; |
|||
|
|||
@ApiModelProperty("设计水位") |
|||
private String designLevel; |
|||
|
|||
@ApiModelProperty("校核水位") |
|||
private String checkWaterLevel; |
|||
|
|||
@ApiModelProperty("坝顶高程") |
|||
private String crestElevation; |
|||
|
|||
@ApiModelProperty("去年今日") |
|||
private String lastYearToday; |
|||
|
|||
@ApiModelProperty("入库流量") |
|||
private String incomingFlow; |
|||
|
|||
@ApiModelProperty("出库流量") |
|||
private String outboundFlow; |
|||
|
|||
@ApiModelProperty("近一小时") |
|||
private String nearlyAnHour; |
|||
|
|||
@ApiModelProperty("近六小时") |
|||
private String nearlySixHours; |
|||
|
|||
@ApiModelProperty("近九小时") |
|||
private String nearlyNineHours; |
|||
|
|||
@ApiModelProperty("近十二小时") |
|||
private String nearlyTwelveHours; |
|||
|
|||
} |
@ -0,0 +1,97 @@ |
|||
package com.kms.yxgh.base.domain.sk; |
|||
|
|||
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 SkAttDamBase { |
|||
|
|||
/** |
|||
* 大坝代码 |
|||
*/ |
|||
@ApiModelProperty("大坝代码") |
|||
private String damCode; |
|||
|
|||
/** |
|||
* 大坝名称 |
|||
*/ |
|||
@ApiModelProperty("大坝名称") |
|||
private String damName; |
|||
|
|||
/** |
|||
* 水库代码 |
|||
*/ |
|||
@ApiModelProperty("水库代码") |
|||
private String resCode; |
|||
|
|||
/** |
|||
* 水库大坝中点经度 |
|||
*/ |
|||
@ApiModelProperty("水库大坝中点经度") |
|||
private String damStartLong; |
|||
|
|||
/** |
|||
* 水库大坝中点纬度 |
|||
*/ |
|||
@ApiModelProperty("水库大坝中点纬度") |
|||
private String damStartLat; |
|||
|
|||
@ApiModelProperty("大坝所在位置") |
|||
private String damLoc; |
|||
|
|||
@ApiModelProperty("是否主坝") |
|||
private String ifMainDam; |
|||
|
|||
@ApiModelProperty("是否溢流坝") |
|||
private String ifYlDam; |
|||
|
|||
@ApiModelProperty("工程等别") |
|||
private String engGrad; |
|||
|
|||
@ApiModelProperty("大坝级别") |
|||
private String damGrad; |
|||
|
|||
@ApiModelProperty("最大坝高") |
|||
private String damMaxHeig; |
|||
|
|||
@ApiModelProperty("坝顶长度") |
|||
private String damTopLen; |
|||
|
|||
@ApiModelProperty("坝顶宽度") |
|||
private String damTopWid; |
|||
|
|||
@ApiModelProperty("高程系统") |
|||
private String elevSys; |
|||
|
|||
@ApiModelProperty("高程转换值") |
|||
private String elevSysConver; |
|||
|
|||
@ApiModelProperty("坝顶高程") |
|||
private String damTopElev; |
|||
|
|||
@ApiModelProperty("防浪墙顶高程") |
|||
private String wvwltpel; |
|||
|
|||
@ApiModelProperty("大坝材料类型") |
|||
private String damTypeMat; |
|||
|
|||
@ApiModelProperty("大坝结构类型") |
|||
private String damTypeStr; |
|||
|
|||
@ApiModelProperty("大坝概况") |
|||
private String damOv; |
|||
|
|||
@ApiModelProperty("备注") |
|||
private String note; |
|||
|
|||
@ApiModelProperty("记录更新时间") |
|||
private Date updateDate; |
|||
|
|||
} |
@ -0,0 +1,60 @@ |
|||
package com.kms.yxgh.base.domain.sk; |
|||
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 SkRelStRes { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
|
|||
/** |
|||
* 水库编码 |
|||
*/ |
|||
@ApiModelProperty("类型标识 1代表站") |
|||
private String flag; |
|||
|
|||
/** |
|||
* 水库编码 |
|||
*/ |
|||
@ApiModelProperty("水库编码") |
|||
private String resCode; |
|||
|
|||
/** |
|||
* 水库名称 |
|||
*/ |
|||
@ApiModelProperty("水库名称") |
|||
private String resName; |
|||
|
|||
/** |
|||
* 河流代码 |
|||
*/ |
|||
@ApiModelProperty("测站代码") |
|||
private String stCode; |
|||
|
|||
/** |
|||
* 河流名称 |
|||
*/ |
|||
@ApiModelProperty("测站名称") |
|||
private String stName; |
|||
|
|||
/** |
|||
* 关系建立时间 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@ApiModelProperty("关系建立时间") |
|||
private Date fromDate; |
|||
|
|||
/** |
|||
* 关系终止时间 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@ApiModelProperty("关系终止时间") |
|||
private Date toDate; |
|||
|
|||
} |
@ -0,0 +1,31 @@ |
|||
package com.kms.yxgh.common.controller; |
|||
|
|||
import com.kms.yg.sk.dto.AttResTaskViewDto; |
|||
import com.kms.yxgh.base.Response; |
|||
import com.kms.yxgh.common.service.BsSgcSkStatisticsService; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import lombok.AllArgsConstructor; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
/** |
|||
* @author lyd |
|||
* @company 数元科技有限公司 |
|||
* @create 2025-03-19 9:34 |
|||
*/ |
|||
@RestController |
|||
@AllArgsConstructor |
|||
@RequestMapping("/run/sk/statistics") |
|||
public class ReservoirOverviewController { |
|||
|
|||
private final BsSgcSkStatisticsService bsSgcSkStatisticsService; |
|||
|
|||
@PostMapping("/view") |
|||
@ApiOperation("水库总览") |
|||
public Response<AttResTaskViewDto> getView(@RequestBody AttResTaskViewDto dto) { |
|||
return Response.ok(bsSgcSkStatisticsService.getView(dto)); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,14 @@ |
|||
package com.kms.yxgh.common.mapper; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.kms.yg.sk.domain.AttResSw; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
/** |
|||
* @author lyd |
|||
* @date 2025/1/18 |
|||
*/ |
|||
@Repository |
|||
public interface AttResSwMapper extends BaseMapper<AttResSw> { |
|||
|
|||
} |
@ -0,0 +1,14 @@ |
|||
package com.kms.yxgh.common.mapper; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.kms.yxgh.base.domain.monitor.MsHdmObp; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
/** |
|||
* @author lyd |
|||
* @date 2025/1/18 |
|||
*/ |
|||
@Repository |
|||
public interface MsHdmObpMapper extends BaseMapper<MsHdmObp> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.kms.yxgh.common.mapper; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.kms.yxgh.base.domain.monitor.MsHdmRsvr; |
|||
import com.kms.yxgh.common.domain.ApprovalOperator; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
/** |
|||
* @author lyd |
|||
* @date 2025/1/18 |
|||
*/ |
|||
@Repository |
|||
public interface MsHdmRsvrMapper extends BaseMapper<MsHdmRsvr> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.kms.yxgh.common.mapper; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.kms.yxgh.base.domain.monitor.MsHdmObp; |
|||
import com.kms.yxgh.base.domain.sk.SkAttDamBase; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
/** |
|||
* @author lyd |
|||
* @date 2025/1/18 |
|||
*/ |
|||
@Repository |
|||
public interface SkAttDamBaseMapper extends BaseMapper<SkAttDamBase> { |
|||
|
|||
} |
@ -0,0 +1,14 @@ |
|||
package com.kms.yxgh.common.mapper; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.kms.yxgh.base.domain.sk.SkRelStRes; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
/** |
|||
* @author lyd |
|||
* @date 2025/1/18 |
|||
*/ |
|||
@Repository |
|||
public interface SkRelStResMapper extends BaseMapper<SkRelStRes> { |
|||
|
|||
} |
@ -0,0 +1,274 @@ |
|||
package com.kms.yxgh.common.service; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.kms.yg.sk.domain.AttResRspp; |
|||
import com.kms.yg.sk.domain.AttResSw; |
|||
import com.kms.yg.sk.dto.AttResTaskViewDto; |
|||
import com.kms.yg.sk.service.AttResRsppService; |
|||
import com.kms.yxgh.base.domain.monitor.MsHdmObp; |
|||
import com.kms.yxgh.base.domain.monitor.MsHdmRsvr; |
|||
import com.kms.yxgh.base.domain.sk.SkAttDamBase; |
|||
import com.kms.yxgh.base.domain.sk.SkRelStRes; |
|||
import com.kms.yxgh.common.mapper.AttResSwMapper; |
|||
import com.kms.yxgh.common.mapper.SkAttDamBaseMapper; |
|||
import com.kms.yxgh.common.mapper.SkRelStResMapper; |
|||
import lombok.AllArgsConstructor; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.util.CollectionUtils; |
|||
import org.springframework.util.StringUtils; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import java.math.BigDecimal; |
|||
import java.time.LocalDate; |
|||
import java.time.LocalDateTime; |
|||
import java.time.ZoneId; |
|||
import java.util.Calendar; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
/** |
|||
* 水库统计 |
|||
* |
|||
* @author lyd |
|||
* @date 2025-01-16 |
|||
*/ |
|||
@Service |
|||
@AllArgsConstructor |
|||
public class BsSgcSkStatisticsService { |
|||
|
|||
private final MsHdmRsvrService msHdmRsvrService; |
|||
|
|||
private final SkRelStResMapper skRelStResMapper; |
|||
|
|||
private final AttResRsppService attResRsppService; |
|||
|
|||
private final MsHdmObpService msHdmObpService; |
|||
|
|||
private final SkAttDamBaseMapper skAttDamBaseMapper; |
|||
|
|||
private final AttResSwMapper attResSwMapper; |
|||
|
|||
|
|||
public AttResTaskViewDto getView(@RequestBody AttResTaskViewDto dto) { |
|||
|
|||
AttResTaskViewDto view = new AttResTaskViewDto(); |
|||
dtoInit(view); |
|||
|
|||
// 堰顶高程
|
|||
AttResSw attResSw = attResSwMapper.selectOne(new LambdaQueryWrapper<AttResSw>() |
|||
.eq(!StringUtils.isEmpty(dto.getResCode()), AttResSw::getResCode, dto.getResCode()) |
|||
.orderByAsc(AttResSw::getWrcrel) |
|||
.last(" limit 1") |
|||
); |
|||
if (!StringUtils.isEmpty(attResSw)) { |
|||
view.setElevationWeirCrest(attResSw.getWrcrel()); |
|||
} |
|||
|
|||
// 设计洪水位、校核洪水位
|
|||
AttResRspp resRsp = attResRsppService.getOne(new LambdaQueryWrapper<AttResRspp>() |
|||
.eq(!StringUtils.isEmpty(dto.getResCode()), AttResRspp::getResCode, dto.getResCode()) |
|||
.orderByDesc(AttResRspp::getCreateTime) |
|||
.last(" limit 1") |
|||
); |
|||
if (!StringUtils.isEmpty(resRsp)) { |
|||
view.setDesignLevel(resRsp.getDsfllv()); |
|||
view.setCheckWaterLevel(resRsp.getChfllv()); |
|||
} |
|||
|
|||
// 坝顶高程
|
|||
SkAttDamBase skAttDamBase = skAttDamBaseMapper.selectOne(new LambdaQueryWrapper<SkAttDamBase>() |
|||
.eq(!StringUtils.isEmpty(dto.getResCode()), SkAttDamBase::getResCode, dto.getResCode()) |
|||
.orderByDesc(SkAttDamBase::getDamTopElev) |
|||
.last(" limit 1") |
|||
); |
|||
if (!StringUtils.isEmpty(skAttDamBase)) { |
|||
view.setCrestElevation(skAttDamBase.getDamTopElev()); |
|||
} |
|||
|
|||
// 代表站
|
|||
SkRelStRes skRelOne = skRelStResMapper.selectOne(new LambdaQueryWrapper<SkRelStRes>() |
|||
.eq(!StringUtils.isEmpty(dto.getResCode()), SkRelStRes::getResCode, dto.getResCode()) |
|||
.eq(SkRelStRes::getFlag, 1) |
|||
.last(" limit 1") |
|||
); |
|||
if (StringUtils.isEmpty(skRelOne)) { |
|||
return view; |
|||
} |
|||
// 代表站
|
|||
view.setStationName(skRelOne.getStName()); |
|||
view.setStationCode(skRelOne.getStCode()); |
|||
|
|||
// 当前水位
|
|||
MsHdmRsvr msHdmRsvr = msHdmRsvrService.getOne(new LambdaQueryWrapper<MsHdmRsvr>() |
|||
.eq(!StringUtils.isEmpty(skRelOne.getStCode()), MsHdmRsvr::getStcd, skRelOne.getStCode()) |
|||
.ge(MsHdmRsvr::getTm, getStartOfDay()) |
|||
.lt(MsHdmRsvr::getTm, getStartOfNextDay()) |
|||
.orderByDesc(MsHdmRsvr::getTm) |
|||
.last(" limit 1") |
|||
); |
|||
if (!StringUtils.isEmpty(msHdmRsvr)) { |
|||
// 当前水位
|
|||
view.setCurrentWaterLevel(msHdmRsvr.getRz()); |
|||
// 入库流量
|
|||
view.setIncomingFlow(msHdmRsvr.getInq()); |
|||
// 出库流量
|
|||
view.setOutboundFlow(msHdmRsvr.getOtq()); |
|||
} |
|||
|
|||
// 去年今日
|
|||
MsHdmRsvr lastYearRest = msHdmRsvrService.getOne(new LambdaQueryWrapper<MsHdmRsvr>() |
|||
.eq(!StringUtils.isEmpty(skRelOne.getStCode()), MsHdmRsvr::getStcd, skRelOne.getStCode()) |
|||
.ge(MsHdmRsvr::getTm, getLastYearTodayStartOfDay()) |
|||
.lt(MsHdmRsvr::getTm, getLastYearTomorrowStartOfDay()) |
|||
.orderByDesc(MsHdmRsvr::getTm) |
|||
.last(" limit 1") |
|||
); |
|||
if (!StringUtils.isEmpty(lastYearRest)) { |
|||
view.setLastYearToday(lastYearRest.getRz()); |
|||
} |
|||
|
|||
// 近一个小时
|
|||
List<MsHdmObp> msHdmObpOneList = msHdmObpService.list(new LambdaQueryWrapper<MsHdmObp>() |
|||
.eq(!StringUtils.isEmpty(skRelOne.getStCode()), MsHdmObp::getStcd, skRelOne.getStCode()) |
|||
.ge(MsHdmObp::getCollTime, getTimeBeforeHours(1)) |
|||
.le(MsHdmObp::getCollTime, getCurrentTime()) |
|||
); |
|||
if (!CollectionUtils.isEmpty(msHdmObpOneList)) { |
|||
view.setNearlyAnHour(getSum(msHdmObpOneList)); |
|||
} |
|||
|
|||
// 近6个小时
|
|||
List<MsHdmObp> msHdmObpSixList = msHdmObpService.list(new LambdaQueryWrapper<MsHdmObp>() |
|||
.eq(!StringUtils.isEmpty(skRelOne.getStCode()), MsHdmObp::getStcd, skRelOne.getStCode()) |
|||
.ge(MsHdmObp::getCollTime, getTimeBeforeHours(6)) |
|||
.le(MsHdmObp::getCollTime, getCurrentTime()) |
|||
); |
|||
if (!CollectionUtils.isEmpty(msHdmObpSixList)) { |
|||
view.setNearlySixHours(getSum(msHdmObpSixList)); |
|||
} |
|||
|
|||
// 近9个小时
|
|||
List<MsHdmObp> msHdmObpNineList = msHdmObpService.list(new LambdaQueryWrapper<MsHdmObp>() |
|||
.eq(!StringUtils.isEmpty(skRelOne.getStCode()), MsHdmObp::getStcd, skRelOne.getStCode()) |
|||
.ge(MsHdmObp::getCollTime, getTimeBeforeHours(9)) |
|||
.le(MsHdmObp::getCollTime, getCurrentTime()) |
|||
); |
|||
if (!CollectionUtils.isEmpty(msHdmObpNineList)) { |
|||
view.setNearlyNineHours(getSum(msHdmObpNineList)); |
|||
} |
|||
|
|||
// 近12个小时
|
|||
List<MsHdmObp> msHdmObpTwelveList = msHdmObpService.list(new LambdaQueryWrapper<MsHdmObp>() |
|||
.eq(!StringUtils.isEmpty(skRelOne.getStCode()), MsHdmObp::getStcd, skRelOne.getStCode()) |
|||
.ge(MsHdmObp::getCollTime, getTimeBeforeHours(12)) |
|||
.le(MsHdmObp::getCollTime, getCurrentTime()) |
|||
); |
|||
if (!StringUtils.isEmpty(msHdmObpTwelveList)) { |
|||
view.setNearlyTwelveHours(getSum(msHdmObpTwelveList)); |
|||
} |
|||
return view; |
|||
} |
|||
|
|||
private String getSum(List<MsHdmObp> list) { |
|||
// 使用 Stream API 处理
|
|||
BigDecimal sum = list.stream() |
|||
.map(MsHdmObp::getDrp) |
|||
.filter(drp -> !StringUtils.isEmpty(drp)) |
|||
.map(BigDecimal::new) |
|||
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|||
return sum.toString(); |
|||
} |
|||
private void dtoInit(AttResTaskViewDto view) { |
|||
view.setCrestElevation("150"); |
|||
view.setCurrentWaterLevel("0"); |
|||
view.setDesignLevel("0"); |
|||
view.setElevationWeirCrest("0"); |
|||
view.setIncomingFlow("0"); |
|||
view.setLastYearToday("0"); |
|||
view.setNearlyAnHour("0"); |
|||
view.setNearlyNineHours("0"); |
|||
view.setNearlySixHours("0"); |
|||
view.setNearlyTwelveHours("0"); |
|||
view.setOutboundFlow("0"); |
|||
view.setStationCode(""); |
|||
view.setStationName(""); |
|||
view.setStationName(""); |
|||
view.setCheckWaterLevel("0"); |
|||
view.setResCode(""); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 获取当天的 00:00:00 |
|||
*/ |
|||
public static Date getStartOfDay() { |
|||
// 获取当前日期
|
|||
LocalDate today = LocalDate.now(); |
|||
// 转换为当天的 00:00:00
|
|||
LocalDateTime startOfDay = today.atStartOfDay(); |
|||
// 转换为 Date 类型
|
|||
return Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant()); |
|||
} |
|||
|
|||
/** |
|||
* 获取第二天的 00:00:00 |
|||
*/ |
|||
public static Date getStartOfNextDay() { |
|||
// 获取当前日期
|
|||
LocalDate today = LocalDate.now(); |
|||
// 获取第二天的日期
|
|||
LocalDate nextDay = today.plusDays(1); |
|||
// 转换为第二天的 00:00:00
|
|||
LocalDateTime startOfNextDay = nextDay.atStartOfDay(); |
|||
// 转换为 Date 类型
|
|||
return Date.from(startOfNextDay.atZone(ZoneId.systemDefault()).toInstant()); |
|||
} |
|||
|
|||
/** |
|||
* 获取去年今日的凌晨开始时间(00:00:00) |
|||
*/ |
|||
public static Date getLastYearTodayStartOfDay() { |
|||
// 获取当前日期
|
|||
LocalDate today = LocalDate.now(); |
|||
// 获取去年今日的日期
|
|||
LocalDate lastYearToday = today.minusYears(1); |
|||
// 转换为凌晨开始时间(00:00:00)
|
|||
LocalDateTime startOfDay = lastYearToday.atStartOfDay(); |
|||
// 转换为 Date 类型
|
|||
return Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant()); |
|||
} |
|||
|
|||
/** |
|||
* 获取去年今日第二天的凌晨开始时间(00:00:00) |
|||
*/ |
|||
public static Date getLastYearTomorrowStartOfDay() { |
|||
// 获取当前日期
|
|||
LocalDate today = LocalDate.now(); |
|||
// 获取去年今日的日期
|
|||
LocalDate lastYearToday = today.minusYears(1); |
|||
// 获取去年今日的第二天
|
|||
LocalDate lastYearTomorrow = lastYearToday.plusDays(1); |
|||
// 转换为第二天的凌晨开始时间(00:00:00)
|
|||
LocalDateTime startOfNextDay = lastYearTomorrow.atStartOfDay(); |
|||
// 转换为 Date 类型
|
|||
return Date.from(startOfNextDay.atZone(ZoneId.systemDefault()).toInstant()); |
|||
} |
|||
|
|||
/** |
|||
* 获取当前时间 |
|||
*/ |
|||
public static Date getCurrentTime() { |
|||
return Calendar.getInstance().getTime(); |
|||
} |
|||
|
|||
/** |
|||
* 获取指定小时数前的时间 |
|||
* |
|||
* @param hours 小时数 |
|||
* @return 指定小时数前的时间 |
|||
*/ |
|||
public static Date getTimeBeforeHours(int hours) { |
|||
Calendar calendar = Calendar.getInstance(); |
|||
// 减去指定小时数
|
|||
calendar.add(Calendar.HOUR_OF_DAY, -hours); |
|||
return calendar.getTime(); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,16 @@ |
|||
package com.kms.yxgh.common.service; |
|||
|
|||
import com.kms.yxgh.base.domain.monitor.MsHdmObp; |
|||
import com.kms.yxgh.common.mapper.MsHdmObpMapper; |
|||
import com.shuili.common.core.service.BaseService; |
|||
import lombok.AllArgsConstructor; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
/** |
|||
* @author lyd |
|||
*/ |
|||
@Service |
|||
@AllArgsConstructor |
|||
public class MsHdmObpService extends BaseService<MsHdmObpMapper, MsHdmObp> { |
|||
|
|||
} |
@ -0,0 +1,12 @@ |
|||
package com.kms.yxgh.common.service; |
|||
import com.kms.yxgh.base.domain.monitor.MsHdmRsvr; |
|||
import com.kms.yxgh.common.mapper.MsHdmRsvrMapper; |
|||
import com.shuili.common.core.service.BaseService; |
|||
import lombok.AllArgsConstructor; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
@Service |
|||
@AllArgsConstructor |
|||
public class MsHdmRsvrService extends BaseService<MsHdmRsvrMapper, MsHdmRsvr> { |
|||
|
|||
} |
@ -0,0 +1,59 @@ |
|||
|
|||
create table `rel_st_res` ( |
|||
`st_code` varchar(50) default null comment '测站代码', |
|||
`st_name` varchar(50) default null comment '测站名称', |
|||
`res_code` varchar(50) default null comment '水库代码', |
|||
`res_name` varchar(50) default null comment '水库名称', |
|||
`flag` varchar(50) default null comment '类型标识 1代表站', |
|||
`from_date` datetime default null comment '关系建立时间', |
|||
`to_date` datetime default null comment '关系终止时间' |
|||
) engine=innodb auto_increment=1 default charset=utf8mb4 collate=utf8mb4_general_ci row_format=dynamic comment='水库测站关联关系表'; |
|||
|
|||
|
|||
create table att_res_sw ( |
|||
res_code varchar(18) default null comment '水库代码', |
|||
swcd varchar(225) default null comment '溢洪道编号', |
|||
swnm varchar(225) default null comment '溢洪道名称', |
|||
lyps varchar(225) default null comment '布置位置', |
|||
crmt varchar(225) default null comment '控制方式', |
|||
wrcrel varchar(225) default null comment '堰顶高程', |
|||
wrcrntwd varchar(225) default null comment '堰顶净宽', |
|||
ofwrst varchar(225) default null comment '溢流堰型式', |
|||
gtst varchar(225) default null comment '闸门型式', |
|||
gtsz varchar(225) default null comment '闸门尺寸', |
|||
gtam varchar(225) default null comment '闸门数量', |
|||
maxds varchar(225) default null comment '最大泄量', |
|||
endsst varchar(225) default null comment '消能型式', |
|||
hseq varchar(225) default null comment '启闭设备', |
|||
hsgram varchar(225) default null comment '启闭机数量', |
|||
pwspcn varchar(225) default null comment '电源条件', |
|||
note varchar(256) default null comment '备注', |
|||
update_date datetime not null comment '记录更新时间' |
|||
)engine=innodb auto_increment=1 default charset=utf8mb4 collate=utf8mb4_general_ci row_format=dynamic comment='水库溢洪道表'; |
|||
|
|||
|
|||
|
|||
create table att_dam_base ( |
|||
dam_code varchar(225) default null comment '大坝代码', |
|||
dam_name varchar(225) default null comment '大坝名称', |
|||
res_code varchar(225) default null comment '水库代码', |
|||
dam_start_long varchar(225) default null comment '水库大坝中点经度', |
|||
dam_start_lat varchar(225) default null comment '水库大坝中点纬度', |
|||
dam_loc varchar(225) default null comment '大坝所在位置', |
|||
if_main_dam varchar(225) default null comment '是否主坝', |
|||
if_yl_dam varchar(225) default null comment '是否溢流坝', |
|||
eng_grad varchar(225) default null comment '工程等别', |
|||
dam_grad varchar(225) default null comment '大坝级别', |
|||
dam_max_heig varchar(225) default null comment '最大坝高', |
|||
dam_top_len varchar(225) default null comment '坝顶长度', |
|||
dam_top_wid varchar(225) default null comment '坝顶宽度', |
|||
elev_sys varchar(225) default null comment '高程系统', |
|||
elev_sys_conver varchar(225) default null comment '高程转换值', |
|||
dam_top_elev varchar(225) default null comment '坝顶高程', |
|||
wvwltpel varchar(225) default null comment '防浪墙顶高程', |
|||
dam_type_mat varchar(225) default null comment '大坝材料类型', |
|||
dam_type_str varchar(225) default null comment '大坝结构类型', |
|||
dam_ov varchar(3000) default null comment '大坝概况', |
|||
note varchar(256) default null comment '备注', |
|||
update_date datetime not null comment '记录更新时间' |
|||
)engine=innodb auto_increment=1 default charset=utf8mb4 collate=utf8mb4_general_ci row_format=dynamic comment='水库大坝基础信息表'; |
Loading…
Reference in new issue