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