From f4624736f4be23966b0ec573816d1b5ceed1cd97 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 10 Aug 2023 14:12:56 +0800
Subject: [PATCH] 大坝安全统计接口
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml | 208 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 199 insertions(+), 9 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
index e45bb51..3d3ec31 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/mapper/DamSecurityMapper.xml
@@ -69,7 +69,6 @@
<if test="dam.endTime != null and dam.endTime !='' ">
AND DATE_FORMAT(time,'%Y-%m-%d') <= #{dam.endTime}
</if>
-
)) errorNum
),SJZT_MD."att_ad_base" aab
where 1=1
@@ -252,21 +251,30 @@
where (f."res_cd" is not null OR g."res_cd" is not null OR h."res_cd" is not null)
) baseRes
LEFT JOIN (
- SELECT "res_cd",COUNT(*) wyStation
- FROM ( SELECT b."guid" as "res_cd",'wy' as "sys_resource"
- FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" )
+ SELECT "res_cd",COUNT(*) wyStation
+ FROM
+ (
+ SELECT b."guid" as "res_cd",'wy' as "sys_resource"
+ FROM (
+ SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid"
+ WHERE b."guid" is not null
+ )
GROUP BY "res_cd"
) wy ON wy."res_cd" = baseRes."guid"
LEFT JOIN(
SELECT "res_cd", COUNT(*) syStation
FROM( SELECT b."guid" as "res_cd",'sy' as "sys_resource"
- FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code")
+ FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+ WHERE b."guid" is not null
+ )
GROUP BY "res_cd"
) sy ON sy."res_cd" = baseRes."guid"
LEFT JOIN (
SELECT "res_cd",COUNT(*) slStation
FROM ( SELECT b."guid" as "res_cd",'sl' as "sys_resource"
- FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid" )
+ FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+ WHERE b."guid" is not null
+ group by b."guid" )
GROUP BY "res_cd"
) sl ON sl."res_cd" = baseRes."guid"
LEFT JOIN (
@@ -367,19 +375,21 @@
LEFT JOIN (
SELECT "res_cd",COUNT(*) wyStation
FROM ( SELECT b."guid" as "res_cd",'wy' as "sys_resource"
- FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid" )
+ FROM (SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code") a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid"
+ WHERE b."guid" is not null)
GROUP BY "res_cd"
) wy ON wy."res_cd" = baseRes."guid"
LEFT JOIN(
SELECT "res_cd", COUNT(*) syStation
FROM( SELECT b."guid" as "res_cd",'sy' as "sys_resource"
- FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code")
+ FROM sjzt_ods."dsm_spg_spprmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+ WHERE b."guid" is not null)
GROUP BY "res_cd"
) sy ON sy."res_cd" = baseRes."guid"
LEFT JOIN (
SELECT "res_cd",COUNT(*) slStation
FROM ( SELECT b."guid" as "res_cd",'sl' as "sys_resource"
- FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" group by b."guid" )
+ FROM sjzt_ods."dsm_spg_spqnmp" a LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code" WHERE b."guid" is not null group by b."guid" )
GROUP BY "res_cd"
) sl ON sl."res_cd" = baseRes."guid"
LEFT JOIN (
@@ -446,4 +456,184 @@
AND (province."ad_code" =#{dam.adCode} or city."ad_code" = #{dam.adCode} or county."ad_code" = #{dam.adCode})
</if>
</select>
+ <select id="damResInfoCount" resultType="cn.gistack.sm.damSecurity.vo.DamStatisticsRes">
+
+
+ SELECT
+ base.total AS total,
+ base.errorNum AS errorNum,
+ (base.total - base.errorNum) AS normalNum,
+ base.type AS type,
+ base.typeName AS typeName
+ FROM
+ (
+ SELECT * FROM
+ (
+ -- 位移水库数
+ SELECT
+ COUNT(*) total,
+ '位移' AS typeName,
+ '3' AS type,
+ (SELECT COUNT(*)FROM
+ (
+ SELECT DAM_ID FROM YWXT.NKY_ALARM_GET temp
+ LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp.dam_id
+ LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+ LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+ WHERE
+ (TYPE = 3 or type = 4 or type = 5) AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+ <if test=" adCode!= null and adCode !='' ">
+ AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+ </if>
+ GROUP BY DAM_ID
+ )
+ ) errorNum
+ FROM
+ (
+ SELECT "res_cd",COUNT(*) wyStation
+ FROM
+ (
+ SELECT b."guid" as "res_cd",'wy' as "sys_resource"
+ FROM
+ (
+ SELECT "station_code" from sjzt_md."att_mqtt_calc_data" group by "station_code"
+ ) a LEFT JOIN SJZT_MD."att_res_base" b on substr(a."station_code",0,length(a."station_code")-2) = b."guid"
+ where b."guid" is not null
+ ) temp
+ LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."res_cd"
+ LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+ LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+ WHERE 1= 1
+ <if test=" adCode!= null and adCode !='' ">
+ AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+ </if>
+ GROUP BY "res_cd"
+ )
+ UNION ALL
+ -- 渗压水库数
+ SELECT
+ COUNT(*) total,
+ '渗压' AS typeName ,
+ '1' AS type,
+ (SELECT COUNT(*) FROM
+ (
+ SELECT DAM_ID FROM YWXT.NKY_ALARM_GET temp
+ LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp.dam_id
+ LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+ LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+ WHERE
+ TYPE = 1
+ AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+ <if test=" adCode!= null and adCode !='' ">
+ AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+ </if>
+ GROUP BY DAM_ID
+ )
+ ) errorNum
+ FROM
+ (
+ SELECT "res_cd", COUNT(*) syStation
+ FROM
+ (
+ SELECT b."guid" as "res_cd",'sy' as "sys_resource"
+ FROM sjzt_ods."dsm_spg_spprmp" a
+ LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+ WHERE b."guid" is not null
+ ) temp
+ LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."res_cd"
+ LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+ LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+ WHERE 1=1
+ <if test=" adCode!= null and adCode !='' ">
+ AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+ </if>
+ GROUP BY "res_cd"
+ )
+ UNION ALL
+ -- 渗流水库数
+ SELECT
+ COUNT(*) total,
+ '渗流' AS typeName,
+ '2' AS type,
+ (
+ SELECT COUNT(*) FROM
+ (
+ SELECT DAM_ID FROM YWXT.NKY_ALARM_GET temp
+ LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp.dam_id
+ LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+ LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+ WHERE
+ TYPE = 2
+ AND DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+ <if test=" adCode!= null and adCode !='' ">
+ AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+ </if>
+ GROUP BY DAM_ID
+ )
+ ) errorNum
+ FROM
+ (
+ SELECT
+ "res_cd",
+ COUNT(*) slStation
+ FROM ( SELECT b."guid" as "res_cd",'sl' as "sys_resource"
+ FROM sjzt_ods."dsm_spg_spqnmp" a
+ LEFT JOIN SJZT_MD."att_res_base" b on a."rscd" = b."res_reg_code"
+ WHERE b."guid" is not null
+ group by b."guid" ) temp
+ LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = temp."res_cd"
+ LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+ LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+ <if test=" adCode!= null and adCode !='' ">
+ AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+ </if>
+ GROUP BY "res_cd"
+ )
+ )
+ ) base
+
+ </select>
+ <select id="getResErrorList" resultType="cn.gistack.sm.damSecurity.vo.DamStationStatistics">
+
+ SELECT
+ DISTINCT
+ arb."guid" AS resCd,
+ arb."name" AS resName,
+ arb."center_long" AS longitude,
+ arb."center_lat" AS latitude
+ FROM YWXT.NKY_ALARM_GET NAG
+ LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = NAG.DAM_ID
+ LEFT JOIN SJZT_MD."att_ad_base" town ON town."guid" = arb."interior_ad_guid"
+ LEFT JOIN SJZT_MD."att_ad_base" county ON county."guid" = town."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" city ON city."guid" = county."p_ad_code"
+ LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
+ WHERE
+ DATE_FORMAT(time,'%Y-%m-%d')>= CURDATE()
+ <if test="dam.type != null and dam.type != '' and dam.type == 1">
+ AND NAG.TYPE = #{dam.type}
+ </if>
+ <if test="dam.type != null and dam.type != '' and dam.type == 2">
+ AND NAG.TYPE = #{dam.type}
+ </if>
+ <if test="dam.type != null and dam.type !='' and dam.type == 3">
+ AND (NAG.TYPE = '3' or NAG.TYPE = '4' or NAG.TYPE = '5')
+ </if>
+ <if test="adCode != null and adCode !='' ">
+ AND (province."ad_code" =#{adCode} or city."ad_code" = #{adCode} or county."ad_code" = #{adCode})
+ </if>
+ </select>
+
+
</mapper>
--
Gitblit v1.9.3