| | |
| | | <!--自定义分页列表查询--> |
| | | <select id="selectAlarmRecordPage" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRecordVO"> |
| | | select |
| | | <if test="alarmRecord.type == '渗压监测' or alarmRecord.type =='渗流监测' or alarmRecord.type == '变形监测' "> |
| | | acb."cd_nm" as cdNm, |
| | | </if> |
| | | sar.*, |
| | | sar1.type,sar1.alarm_rule_type as alarmRuleType,sar1.create_alarm_type as createAlarmType,sar1.rule_name as ruleName, |
| | | sar1.type,sar1.alarm_rule_type as alarmRuleType,sar1.create_alarm_type as createAlarmType,sar1.rule_name as ruleName,a."label" as labels, |
| | | a."name" as reservoirName,a."res_reg_code" as resRegCode,a."eng_scal" as engScal, |
| | | case when b."ad_grad" = 4 THEN b."ad_name" |
| | | ELSE NULL END AS townName, |
| | |
| | | END AS countyName, |
| | | case when b."ad_grad" = 2 THEN b."ad_name" |
| | | when c."ad_grad" = 2 THEN c."ad_name" |
| | | ELSE d."ad_name" END AS cityName |
| | | ELSE d."ad_name" END AS cityName, |
| | | sar1.alarm_level |
| | | from YWXT.sm_alarm_record sar |
| | | left join YWXT.sm_alarm_rule sar1 on sar.alarm_rule_id = sar1.id and sar1.is_deleted = 0 |
| | | left join SJZT_MD."att_res_base" a on a."guid" = sar.reservoir_number |
| | | left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid" |
| | | LEFT JOIN SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid" |
| | | LEFT JOIN SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid" |
| | | |
| | | LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = sar.reservoir_number |
| | | LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid" |
| | | LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code" |
| | | |
| | | <if test="alarmRecord.type == '渗压监测'"> |
| | | LEFT JOIN SJZT_MD."att_cd_base" acb on acb."cd" = sar.alarm_survey_station_code and acb."cd_type" = 'sy' and sar.alarm_survey_station_code !='-1' and acb."res_cd" = sar.reservoir_number |
| | | </if> |
| | | <if test="alarmRecord.type == '渗流监测'"> |
| | | LEFT JOIN SJZT_MD."att_cd_base" acb on acb."cd" = sar.alarm_survey_station_code and acb."cd_type" = 'sl' and sar.alarm_survey_station_code !='-1' and acb."res_cd" = sar.reservoir_number |
| | | </if> |
| | | <if test="alarmRecord.type == '变形监测'"> |
| | | LEFT JOIN SJZT_MD."att_wy_cd_base" acb on acb."cd" = sar.alarm_survey_station_code and acb."cd_type" = 'wy' and sar.alarm_survey_station_code !='-1' and acb."res_cd" = sar.reservoir_number |
| | | </if> |
| | | where sar.is_deleted = 0 |
| | | <if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''"> |
| | | and a."name" like concat('%',#{alarmRecord.reservoirName},'%') |
| | |
| | | and sar.create_time <= #{alarmRecord.endTime} |
| | | </if> |
| | | <if test="alarmRecord.adCode!=null and alarmRecord.adCode!=''"> |
| | | and a."interior_ad_guid" like concat('%',#{alarmRecord.adCode},'%') |
| | | and concat(a."interior_ad_guid",b."guid",c."guid",d."guid") like concat('%',#{alarmRecord.adCode},'%') |
| | | </if> |
| | | order by sar.id desc |
| | | <if test="alarmRecord.alarmLevel != null and alarmRecord.alarmLevel !=''"> |
| | | and sar1.alarm_level = #{alarmRecord.alarmLevel} |
| | | </if> |
| | | |
| | | <if test="alarmRecord.engScal != null and alarmRecord.engScal != ''"> |
| | | and a."eng_scal" = #{alarmRecord.engScal} |
| | | </if> |
| | | <if test="alarmRecord.labels != null and alarmRecord.labels != '' "> |
| | | AND( 1!=1 |
| | | <foreach collection="alarmRecord.labels.split(',')" item="item" open="" separator="" close="" index="index"> |
| | | OR #{item} in (a."label") |
| | | </foreach> |
| | | ) |
| | | </if> |
| | | <if test="alarmRecord.basGuids != null and alarmRecord.basGuids !='' "> |
| | | AND( |
| | | abb."code" in |
| | | <foreach collection="alarmRecord.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | or pabb."code" in |
| | | <foreach collection="alarmRecord.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | ) |
| | | </if> |
| | | <if test="alarmRecord.resGuids != null and alarmRecord.resGuids !=''"> |
| | | AND sar.reservoir_number in |
| | | <foreach collection="alarmRecord.resGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | order by field(sar1.alarm_level,'红色预警','橙色预警','黄色预警','蓝色预警') |
| | | </select> |
| | | |
| | | <select id="getVODetail" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRecordVO"> |
| | |
| | | left join SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid" |
| | | left join SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid" |
| | | left join YWXT.sm_alarm_rule e on e.id = sar.alarm_rule_id |
| | | |
| | | LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = sar.reservoir_number |
| | | LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid" |
| | | LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code" |
| | | where sar.is_deleted = 0 |
| | | <if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''"> |
| | | and arb."name" like concat('%',#{alarmRecord.reservoirName},'%') |
| | |
| | | <if test="alarmRecord.adCode!=null and alarmRecord.adCode!=''"> |
| | | and arb."interior_ad_guid" like concat('%',#{alarmRecord.adCode},'%') |
| | | </if> |
| | | <if test="alarmRecord.engScal != null and alarmRecord.engScal != ''"> |
| | | and arb."eng_scal" = #{alarmRecord.engScal} |
| | | </if> |
| | | <if test="alarmRecord.labels != null and alarmRecord.labels != '' "> |
| | | AND( 1!=1 |
| | | <foreach collection="alarmRecord.labels.split(',')" item="item" open="" separator="" close="" index="index"> |
| | | OR #{item} in (arb."label") |
| | | </foreach> |
| | | ) |
| | | </if> |
| | | <if test="alarmRecord.basGuids != null and alarmRecord.basGuids !='' "> |
| | | AND( |
| | | abb."code" in |
| | | <foreach collection="alarmRecord.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | or pabb."code" in |
| | | <foreach collection="alarmRecord.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | ) |
| | | </if> |
| | | <if test="alarmRecord.resGuids != null and alarmRecord.resGuids !=''"> |
| | | AND sar.reservoir_number in |
| | | <foreach collection="alarmRecord.resGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | |
| | | |
| | | ) f |
| | | group by |
| | | <if test="alarmRecord.adLevel !=null and alarmRecord.adLevel != '' and alarmRecord.adLevel == 1 "> |
| | |
| | | |
| | | <!-- 查询大坝安全告警统计数据 --> |
| | | <select id="statisticAlarmRecordByAlarmRuleType" resultType="cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord"> |
| | | select case when alarm_rule_type='大坝安全监测告警' then '告警数量' else '预警数量' end as ruleName, |
| | | select |
| | | case |
| | | when alarm_rule_type='渗压监测告警' then '告警数量' |
| | | when alarm_rule_type='渗压监测预警' then '预警数量' |
| | | when alarm_rule_type='变形监测告警' then '告警数量' |
| | | when alarm_rule_type='变形监测预警' then '预警数量' |
| | | when alarm_rule_type='渗流监测告警' then '告警数量' |
| | | when alarm_rule_type='渗流监测预警' then '预警数量' |
| | | else alarm_rule_type |
| | | end as ruleName, |
| | | sum( |
| | | ( |
| | | select count(*) from YWXT.sm_alarm_record cha |
| | |
| | | where a.id = cha.alarm_rule_id |
| | | and cha.is_deleted = 0 |
| | | <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''"> |
| | | and cha.create_time >= #{alarmRecord.endTime} |
| | | and cha.create_time >= #{alarmRecord.startTime} |
| | | </if> |
| | | <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''"> |
| | | and cha.create_time <= #{alarmRecord.endTime} |
| | |
| | | ) |
| | | ) as num |
| | | from YWXT.sm_alarm_rule a |
| | | where type = '大坝安全监测' |
| | | <where> |
| | | <if test="alarmRecord.type!=null and alarmRecord.type!=''"> |
| | | and type = #{alarmRecord.type} |
| | | </if> |
| | | </where> |
| | | group by alarm_rule_type |
| | | </select> |
| | | |
| | |
| | | and rule_name = #{alarmRecord.ruleName} |
| | | </if> |
| | | </select> |
| | | <select id="statisticsPie" resultType="cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord"> |
| | | |
| | | SELECT |
| | | count(*) num,rule.alarm_level alarmLevel |
| | | FROM YWXT.sm_alarm_record record |
| | | LEFT JOIN ywxt.SM_ALARM_RULE rule on rule.id = record.alarm_rule_id |
| | | LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = record.reservoir_number |
| | | |
| | | LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = record.reservoir_number |
| | | LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid" |
| | | LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code" |
| | | where |
| | | record.is_deleted = 0 |
| | | <if test="alarmRecord.type != null and alarmRecord.type !=''"> |
| | | and rule.type = #{alarmRecord.type} |
| | | </if> |
| | | <if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''"> |
| | | and arb."name" like concat('%',#{alarmRecord.reservoirName},'%') |
| | | </if> |
| | | <if test="alarmRecord.alarmRuleType!=null and alarmRecord.alarmRuleType!=''"> |
| | | and rule.alarm_rule_type = #{alarmRecord.alarmRuleType} |
| | | </if> |
| | | <if test="alarmRecord.createAlarmType!=null and alarmRecord.createAlarmType!=''"> |
| | | and rule.create_alarm_type = #{alarmRecord.createAlarmType} |
| | | </if> |
| | | <if test="alarmRecord.ruleName!=null and alarmRecord.ruleName!=''"> |
| | | and rule.rule_name = #{alarmRecord.ruleName} |
| | | </if> |
| | | <if test="alarmRecord.adCode != null and alarmRecord.adCode !=''"> |
| | | and arb."interior_ad_guid" like concat('%',#{alarmRecord.adCode},'%') |
| | | </if> |
| | | <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''"> |
| | | and record.create_time >= #{alarmRecord.startTime} |
| | | </if> |
| | | <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''"> |
| | | and record.create_time <= #{alarmRecord.endTime} |
| | | </if> |
| | | <if test="alarmRecord.engScal != null and alarmRecord.engScal != ''"> |
| | | and arb."eng_scal" = #{alarmRecord.engScal} |
| | | </if> |
| | | <if test="alarmRecord.labels != null and alarmRecord.labels != '' "> |
| | | AND( 1!=1 |
| | | <foreach collection="alarmRecord.labels.split(',')" item="item" open="" separator="" close="" index="index"> |
| | | OR #{item} in (arb."label") |
| | | </foreach> |
| | | ) |
| | | </if> |
| | | <if test="alarmRecord.basGuids != null and alarmRecord.basGuids !='' "> |
| | | AND( |
| | | abb."code" in |
| | | <foreach collection="alarmRecord.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | or pabb."code" in |
| | | <foreach collection="alarmRecord.basGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | ) |
| | | </if> |
| | | <if test="alarmRecord.resGuids != null and alarmRecord.resGuids !=''"> |
| | | AND record.reservoir_number in |
| | | <foreach collection="alarmRecord.resGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | group by rule.alarm_level |
| | | order by field(rule.alarm_level,'蓝色预警','黄色预警','橙色预警','红色预警') |
| | | </select> |
| | | |
| | | <!--告警统计按告警分类-等级统计--> |
| | | <select id="statisticAlaByTypeAndLev" resultType="cn.gistack.alerts.alarmRule.vo.StatisticAlarmRecord"> |
| | | SELECT |
| | | count(*) num,type as ruleName,rule.alarm_level alarmLevel |
| | | FROM YWXT.sm_alarm_record record |
| | | LEFT JOIN ywxt.SM_ALARM_RULE rule on rule.id = record.alarm_rule_id |
| | | LEFT JOIN SJZT_MD."att_res_base" arb on arb."guid" = record.reservoir_number |
| | | LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = record.reservoir_number |
| | | LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid" |
| | | LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code" |
| | | where |
| | | record.is_deleted = 0 |
| | | and rule.type in ('渗压监测','渗流监测','变形监测','水情监测','雨情监测') |
| | | <if test="alarmRecord.reservoirName!=null and alarmRecord.reservoirName!=''"> |
| | | and arb."name" like concat('%',#{alarmRecord.reservoirName},'%') |
| | | </if> |
| | | <if test="alarmRecord.alarmRuleType!=null and alarmRecord.alarmRuleType!=''"> |
| | | and rule.alarm_rule_type = #{alarmRecord.alarmRuleType} |
| | | </if> |
| | | <if test="alarmRecord.createAlarmType!=null and alarmRecord.createAlarmType!=''"> |
| | | and rule.create_alarm_type = #{alarmRecord.createAlarmType} |
| | | </if> |
| | | <if test="alarmRecord.ruleName!=null and alarmRecord.ruleName!=''"> |
| | | and rule.rule_name = #{alarmRecord.ruleName} |
| | | </if> |
| | | <if test="alarmRecord.startTime!=null and alarmRecord.startTime!=''"> |
| | | and record.create_time >= #{alarmRecord.startTime} |
| | | </if> |
| | | <if test="alarmRecord.endTime!=null and alarmRecord.endTime!=''"> |
| | | and record.create_time <= #{alarmRecord.endTime} |
| | | </if> |
| | | <if test="alarmRecord.resGuids != null and alarmRecord.resGuids !=''"> |
| | | AND record.reservoir_number in |
| | | <foreach collection="alarmRecord.resGuids.split(',')" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | group by type,rule.alarm_level |
| | | </select> |
| | | |
| | | </mapper> |