@ -3,13 +3,18 @@ package com.kms.yxgh.sz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import com.kms.yxgh.common.DailySumDto ;
import com.kms.yxgh.sz.domain.SzWaterRegime ;
import com.kms.yxgh.sz.dto.SzWaterRegimeDetailDto ;
import com.kms.yxgh.sz.dto.SzYqExceedIndexQueDto ;
import com.kms.yxgh.sz.dto.SzYqRecordSearchDto ;
import org.apache.ibatis.annotations.Param ;
import org.apache.ibatis.annotations.Select ;
import org.springframework.stereotype.Repository ;
import java.util.Date ;
import java.util.List ;
@Repository
public interface SzWaterRegimeMapper extends BaseMapper < SzWaterRegime > {
@ -32,4 +37,34 @@ public interface SzWaterRegimeMapper extends BaseMapper<SzWaterRegime> {
"ORDER BY wr.create_time DESC" +
"</script>" )
IPage < SzWaterRegimeDetailDto > searchPage ( Page < SzWaterRegimeDetailDto > page , @Param ( "searchDto" ) SzYqRecordSearchDto searchDto ) ;
//指定时间内指定堤防低于分洪水位次数
@Select ( "SELECT COUNT(1) FROM bs_sgc_sz_syq WHERE waga_code = #{dto.wagaCode} AND create_time >= #{tenDaysAgo} AND water_level <= #{peakLevel}" )
int belowPeakCount ( @Param ( value = "dto" ) SzYqExceedIndexQueDto dto , @Param ( value = "tenDaysAgo" ) Date tenDaysAgo , @Param ( value = "peakLevel" ) int peakLevel ) ;
///指定时间内指定堤防超出警戒水位次数
@Select ( "SELECT COUNT(1) FROM bs_sgc_sz_syq WHERE waga_code = #{dto.wagaCode} AND create_time >= #{tenDaysAgo} AND water_level >= #{warningLevel}" )
int exceedWarningCount ( @Param ( value = "dto" ) SzYqExceedIndexQueDto dto , @Param ( value = "tenDaysAgo" ) Date tenDaysAgo , @Param ( value = "warningLevel" ) int warningLevel ) ;
//指定时间内指定堤防超出降雨量次数
@Select ( "SELECT COUNT(1) FROM bs_sgc_sz_syq WHERE waga_code = #{dto.wagaCode} AND create_time >= #{twentyFourHoursAgo} AND rain_fall >= #{rainfall}" )
int exceedRainfallCount ( @Param ( value = "dto" ) SzYqExceedIndexQueDto dto , @Param ( value = "twentyFourHoursAgo" ) Date twentyFourHoursAgo , @Param ( value = "rainfall" ) int rainfall ) ;
//指定时间内指定堤防超出过闸流量次数
@Select ( "SELECT COUNT(1) FROM bs_sgc_sz_syq WHERE waga_code = #{dto.wagaCode} AND create_time >= #{twentyFourHoursAgo} AND GATE_FLOW >= #{sluiceFlow}" )
int exceedSluiceFlowCount ( @Param ( value = "dto" ) SzYqExceedIndexQueDto dto , @Param ( value = "twentyFourHoursAgo" ) Date twentyFourHoursAgo , @Param ( value = "sluiceFlow" ) int sluiceFlow ) ;
//获取指定日期内某堤防水位数据,水位数据按天分组,数据取每天最新的水位值
@Select ( "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS date, MAX(water_level) AS sum FROM bs_sgc_sz_syq WHERE waga_code = #{dto.wagaCode} AND create_time >= #{tenDaysAgo} GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')" )
List < DailySumDto > getTenDaysWaterRegime ( @Param ( value = "dto" ) SzYqExceedIndexQueDto dto , @Param ( value = "tenDaysAgo" ) Date tenDaysAgo ) ;
//获取指定日期内某堤防降雨量数据,降雨量数据按天分组,数据取每天最新的降雨量值
@Select ( "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS date, MAX(rain_fall) AS sum FROM bs_sgc_sz_syq WHERE waga_code = #{dto.wagaCode} AND create_time >= #{tenDaysAgo} GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')" )
List < DailySumDto > getTenDaysTotalRainfall ( @Param ( value = "dto" ) SzYqExceedIndexQueDto dto , @Param ( value = "tenDaysAgo" ) Date tenDaysAgo ) ;
//获取指定日期内某堤防过闸流量数据,过闸流量数据按天分组,数据取每天最新的过闸流量值
@Select ( "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS date, MAX(gate_flow) AS sum FROM bs_sgc_sz_syq WHERE waga_code = #{dto.wagaCode} AND create_time >= #{tenDaysAgo} GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')" )
List < DailySumDto > getTenDaysTotalSluiceFlow ( @Param ( value = "dto" ) SzYqExceedIndexQueDto dto , @Param ( value = "tenDaysAgo" ) Date tenDaysAgo ) ;
}