Files
system-jibei/pqs9000/src/main/resources/mybatis/mappers/responsibility/WarningSubstationMapper.xml
2024-04-01 09:20:31 +08:00

464 lines
28 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pqs9000.mapper.responsibility.WarningSubstationMapper">
<!-- <select id="getEachIndex" resultType="com.pqs9000.pojo.responsibility.WarningSubstation">-->
<!-- SELECT-->
<!-- area.DEPTSNAME provinceCompany,-->
<!-- area.DIC_NAME cityCompany,-->
<!-- sub.NAME plantName,-->
<!-- dicdata.DIC_NAME plantVoltageLevel,-->
<!-- basic.allLine onlineMonitorCounts,-->
<!-- basic.overLine alertMonitorCounts,-->
<!-- basic.aOverCounts+basic.bOverCounts+basic.cOverCounts+basic.dOverCounts+basic.eOverCounts+basic.fOverCounts+basic.gOverCounts+basic.hOverCounts+basic.iOverCounts+basic.xOverCounts+basic.yOverCounts alertCounts,-->
<!-- ROUND(case when overLine = 0 then 0 else (basic.aOverCounts+basic.bOverCounts+basic.cOverCounts+basic.dOverCounts+basic.eOverCounts+basic.fOverCounts+basic.gOverCounts+basic.hOverCounts+basic.iOverCounts+basic.xOverCounts+basic.yOverCounts)/overLine end,2) alertAlarmFrequency,-->
<!-- ROUND(case when basic.aOverTotal = 0 then 0 else basic.aOverCounts/aOverTotal end,2) frequencyDeviation,-->
<!-- ROUND(case when basic.bOverTotal = 0 then 0 else basic.bOverCounts/bOverTotal end,2) voltageDeviation,-->
<!-- ROUND(case when basic.cOverTotal = 0 then 0 else basic.cOverCounts/cOverTotal end,2) harmonicVoltage,-->
<!-- ROUND(case when basic.dOverTotal = 0 then 0 else basic.dOverCounts/dOverTotal end,2) harmonicCurrent,-->
<!-- ROUND(case when basic.eOverTotal = 0 then 0 else basic.eOverCounts/eOverTotal end,2) threePhaseVoltageUnbalance,-->
<!-- ROUND(case when basic.fOverTotal = 0 then 0 else basic.fOverCounts/fOverTotal end,2) flicker,-->
<!-- ROUND(case when basic.gOverTotal = 0 then 0 else basic.gOverCounts/gOverTotal end,2) shortInterruption,-->
<!-- ROUND(case when basic.hOverTotal = 0 then 0 else basic.hOverCounts/hOverTotal end,2) voltageDip,-->
<!-- ROUND(case when basic.iOverTotal = 0 then 0 else basic.iOverCounts/iOverTotal end,2) voltageSwell,-->
<!-- ROUND(case when basic.xOverTotal = 0 then 0 else basic.xOverCounts/xOverTotal end,2) interharmonic,-->
<!-- ROUND(case when basic.yOverTotal = 0 then 0 else basic.yOverCounts/yOverTotal end,2) negative-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- S.SUB_INDEX,-->
<!-- SUM(M.allLine) allLine,-->
<!-- SUM(NVL(N.overLine, 0)) overLine,-->
<!-- SUM(NVL(A.overCounts, 0)) aOverCounts,-->
<!-- SUM(NVL(A.overTotal, 0)) aOverTotal,-->
<!-- SUM(NVL(B.overCounts, 0)) bOverCounts,-->
<!-- SUM(NVL(B.overTotal, 0)) bOverTotal,-->
<!-- SUM(NVL(C.overCounts, 0)) cOverCounts,-->
<!-- SUM(NVL(C.overTotal, 0)) cOverTotal,-->
<!-- SUM(NVL(D.overCounts, 0)) dOverCounts,-->
<!-- SUM(NVL(D.overTotal, 0)) dOverTotal,-->
<!-- SUM(NVL(E.overCounts, 0)) eOverCounts,-->
<!-- SUM(NVL(E.overTotal, 0)) eOverTotal,-->
<!-- SUM(NVL(E.overCounts, 0)) fOverCounts,-->
<!-- SUM(NVL(E.overTotal, 0)) fOverTotal,-->
<!-- SUM(NVL(G.overCounts, 0)) gOverCounts,-->
<!-- SUM(NVL(G.overTotal, 0)) gOverTotal,-->
<!-- SUM(NVL(H.overCounts, 0)) hOverCounts,-->
<!-- SUM(NVL(H.overTotal, 0)) hOverTotal,-->
<!-- SUM(NVL(I.overCounts, 0)) iOverCounts,-->
<!-- SUM(NVL(I.overTotal, 0)) iOverTotal,-->
<!-- SUM(NVL(X.overCounts, 0)) xOverCounts,-->
<!-- SUM(NVL(X.overTotal, 0)) xOverTotal,-->
<!-- SUM(NVL(Y.overCounts, 0)) yOverCounts,-->
<!-- SUM(NVL(Y.overTotal, 0)) yOverTotal-->
<!-- FROM-->
<!-- (select-->
<!-- count(distinct c.myindex) allLine, c.myindex-->
<!-- from-->
<!-- limit_target c,-->
<!-- PQS_DICDATA dic,-->
<!-- PQ_SUBSTATION sub,-->
<!-- PQ_LINE line-->
<!-- where-->
<!-- c.myindex IN-->
<!-- <foreach collection="list" item="list1" open="(" close=")" separator=",">-->
<!-- #{list1}-->
<!-- </foreach>-->
<!-- and c.timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- and c.phasic_type = 'T'-->
<!-- <if test="level!=null and level!=''">-->
<!-- AND dic.DIC_INDEX = sub.SCALE AND dic.DIC_INDEX = #{level}-->
<!-- </if>-->
<!-- AND line.LINE_INDEX = c.MYINDEX AND line.SUB_INDEX = sub.SUB_INDEX GROUP BY c.myindex-->
<!-- UNION-->
<!-- SELECT-->
<!-- NVL(COUNT(DISTINCT(A.LINEID)), 0) overTotal,A.LINEID-->
<!-- FROM-->
<!-- PQS_EVENTDETAIL A,-->
<!-- PQ_SUBSTATION B,-->
<!-- PQ_LINE C-->
<!-- WHERE-->
<!-- A.WAVETYPE IN (1,2,3) AND A.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- AND-->
<!-- A.LINEID IN-->
<!-- <foreach collection="list" item="a" open="(" close=")" separator=",">-->
<!-- #{a}-->
<!-- </foreach>-->
<!-- <if test="level!=null and level!=''">-->
<!-- AND-->
<!-- A.LINEID = C.LINE_INDEX AND C.SUB_INDEX = B.SUB_INDEX-->
<!-- AND-->
<!-- B.SCALE = #{level}-->
<!-- </if>-->
<!-- GROUP BY A.LINEID-->
<!-- ) M-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- SELECT NVL(COUNT(DISTINCT(MYINDEX)), 0) overLine,MYINDEX FROM limit_target WHERE PHASIC_TYPE = 'T'-->
<!-- AND TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- AND MYINDEX IN-->
<!-- <foreach collection="list" item="list2" open="(" close=")" separator=",">-->
<!-- #{list2}-->
<!-- </foreach>-->
<!-- AND (FREQ_DEV_OVERTIME>0 OR VOLTAGE_DEV_OVERTIME>0 OR UABERRANCE_OVERTIME>0 OR UHARM_2_OVERTIME>0 OR UHARM_3_OVERTIME>0 OR UHARM_4_OVERTIME>0 OR UHARM_5_OVERTIME>0 OR UHARM_6_OVERTIME>0 OR UHARM_7_OVERTIME>0 OR UHARM_8_OVERTIME>0 OR UHARM_9_OVERTIME>0 OR UHARM_10_OVERTIME>0 OR UHARM_11_OVERTIME>0 OR UHARM_12_OVERTIME>0 OR UHARM_13_OVERTIME>0 OR UHARM_14_OVERTIME>0 OR UHARM_15_OVERTIME>0 OR UHARM_16_OVERTIME>0 OR UHARM_17_OVERTIME>0 OR UHARM_18_OVERTIME>0 OR UHARM_19_OVERTIME>0 OR UHARM_20_OVERTIME>0 OR UHARM_21_OVERTIME>0 OR UHARM_22_OVERTIME>0 OR UHARM_23_OVERTIME>0 OR UHARM_24_OVERTIME>0 OR UHARM_25_OVERTIME>0 OR IHARM_2_OVERTIME>0 OR IHARM_3_OVERTIME>0 OR IHARM_4_OVERTIME>0 OR IHARM_5_OVERTIME>0 OR IHARM_6_OVERTIME>0 OR IHARM_7_OVERTIME>0 OR IHARM_8_OVERTIME>0 OR IHARM_9_OVERTIME>0 OR IHARM_10_OVERTIME>0 OR IHARM_11_OVERTIME>0 OR IHARM_12_OVERTIME>0 OR IHARM_13_OVERTIME>0 OR IHARM_14_OVERTIME>0 OR IHARM_15_OVERTIME>0 OR IHARM_16_OVERTIME>0 OR IHARM_17_OVERTIME>0 OR IHARM_18_OVERTIME>0 OR IHARM_19_OVERTIME>0 OR IHARM_20_OVERTIME>0 OR IHARM_21_OVERTIME>0 OR IHARM_22_OVERTIME>0 OR IHARM_23_OVERTIME>0 OR IHARM_24_OVERTIME>0 OR IHARM_25_OVERTIME>0 OR UBALANCE_OVERTIME>0 OR FLICKER_OVERTIME>0 OR I_NEG_OVERTIME>0 OR INUHARM_1_OVERTIME>0 OR INUHARM_2_OVERTIME>0 OR INUHARM_3_OVERTIME>0 OR INUHARM_4_OVERTIME>0 OR INUHARM_5_OVERTIME>0 OR INUHARM_6_OVERTIME>0 OR INUHARM_7_OVERTIME>0 OR INUHARM_8_OVERTIME>0 OR INUHARM_9_OVERTIME>0 OR INUHARM_10_OVERTIME>0 OR INUHARM_11_OVERTIME>0 OR INUHARM_12_OVERTIME>0 OR INUHARM_13_OVERTIME>0 OR INUHARM_14_OVERTIME>0 OR INUHARM_15_OVERTIME>0 OR INUHARM_16_OVERTIME>0) GROUP BY MYINDEX-->
<!-- UNION-->
<!-- SELECT-->
<!-- NVL(COUNT(DISTINCT(LINEID)), 0) overTotal,LINEID-->
<!-- FROM-->
<!-- PQS_EVENTDETAIL-->
<!-- WHERE-->
<!-- WAVETYPE IN (1,2,3) AND TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- AND LINEID IN-->
<!-- <foreach collection="list" item="b" open="(" close=")" separator=",">-->
<!-- #{b}-->
<!-- </foreach>-->
<!-- GROUP BY LINEID-->
<!-- ) N-->
<!-- ON M.MYINDEX = N.MYINDEX-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- SELECT pqline.LINE_INDEX,sub.SUB_INDEX FROM PQ_SUBSTATION sub,PQ_LINE pqline,PQS_DICDATA dic-->
<!-- WHERE pqline.LINE_INDEX IN-->
<!-- <foreach collection="list" item="list3" open="(" close=")" separator=",">-->
<!-- #{list3}-->
<!-- </foreach>-->
<!-- AND pqline.SUB_INDEX = sub.SUB_INDEX AND sub.SCALE = dic.DIC_INDEX GROUP BY pqline.LINE_INDEX,sub.SUB_INDEX-->
<!-- ) S ON M.MYINDEX = S.LINE_INDEX-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- select-->
<!-- count(distinct c.myindex) overTotal, NVL(sum(Freq_Dev_OverTime), 0) overCounts,MYINDEX-->
<!-- from-->
<!-- limit_target c-->
<!-- where-->
<!-- c.myindex in-->
<!-- <foreach collection="list" item="list4" open="(" close=")" separator=",">-->
<!-- #{list4}-->
<!-- </foreach>-->
<!-- and-->
<!-- c.timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- and-->
<!-- c.phasic_type = 'T' and FREQ_DEV_OVERTIME > 0 GROUP BY MYINDEX-->
<!-- ) A-->
<!-- ON M.MYINDEX = A.MYINDEX-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- select-->
<!-- count(distinct c.myindex) overTotal, NVL(sum(VOLTAGE_DEV_OVERTIME), 0) overCounts,c.myindex-->
<!-- from-->
<!-- limit_target c-->
<!-- where-->
<!-- c.myindex in-->
<!-- <foreach collection="list" item="list5" open="(" close=")" separator=",">-->
<!-- #{list5}-->
<!-- </foreach>-->
<!-- and-->
<!-- c.timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- and-->
<!-- c.phasic_type = 'T' and VOLTAGE_DEV_OVERTIME > 0 GROUP BY c.myindex-->
<!-- ) B-->
<!-- ON M.MYINDEX = B.MYINDEX-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- select-->
<!-- count(distinct c.myindex) overTotal,NVL(sum(UABERRANCE_OVERTIME+UHARM_2_OVERTIME+UHARM_3_OVERTIME+UHARM_4_OVERTIME+ UHARM_5_OVERTIME+UHARM_6_OVERTIME+UHARM_7_OVERTIME+UHARM_8_OVERTIME+UHARM_9_OVERTIME+UHARM_10_OVERTIME+UHARM_11_OVERTIME+UHARM_12_OVERTIME+UHARM_13_OVERTIME+UHARM_14_OVERTIME+UHARM_15_OVERTIME+UHARM_16_OVERTIME+UHARM_17_OVERTIME+UHARM_18_OVERTIME+UHARM_19_OVERTIME+UHARM_20_OVERTIME+UHARM_21_OVERTIME++UHARM_22_OVERTIME+UHARM_23_OVERTIME+UHARM_24_OVERTIME+UHARM_25_OVERTIME),0) overCounts,c.myindex-->
<!-- from-->
<!-- limit_target c-->
<!-- where-->
<!-- c.myindex in-->
<!-- <foreach collection="list" item="list6" open="(" close=")" separator=",">-->
<!-- #{list6}-->
<!-- </foreach>-->
<!-- and c.timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- and c.phasic_type = 'T' and (UABERRANCE_OVERTIME>0 OR UHARM_2_OVERTIME>0 OR UHARM_3_OVERTIME>0 OR UHARM_4_OVERTIME>0 OR UHARM_5_OVERTIME>0 OR UHARM_6_OVERTIME>0 OR UHARM_7_OVERTIME>0 OR UHARM_8_OVERTIME>0 OR UHARM_9_OVERTIME>0 OR UHARM_10_OVERTIME>0 OR UHARM_11_OVERTIME>0 OR UHARM_12_OVERTIME>0 OR UHARM_13_OVERTIME>0 OR UHARM_14_OVERTIME>0 OR UHARM_15_OVERTIME>0 OR UHARM_16_OVERTIME>0 OR UHARM_17_OVERTIME>0 OR UHARM_18_OVERTIME>0 OR UHARM_19_OVERTIME>0 OR UHARM_20_OVERTIME>0 OR UHARM_21_OVERTIME>0 OR UHARM_22_OVERTIME>0 OR UHARM_23_OVERTIME>0 OR UHARM_24_OVERTIME>0 OR UHARM_25_OVERTIME>0) GROUP BY c.myindex-->
<!-- ) C-->
<!-- ON M.MYINDEX = C.MYINDEX-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- select-->
<!-- count(distinct c.myindex) overTotal,NVL(sum(IHARM_2_OVERTIME+IHARM_3_OVERTIME+IHARM_4_OVERTIME+IHARM_5_OVERTIME+IHARM_6_OVERTIME+IHARM_7_OVERTIME+IHARM_8_OVERTIME+IHARM_9_OVERTIME+IHARM_10_OVERTIME+IHARM_11_OVERTIME+IHARM_12_OVERTIME+IHARM_13_OVERTIME+IHARM_14_OVERTIME+IHARM_15_OVERTIME+IHARM_16_OVERTIME+IHARM_17_OVERTIME+IHARM_18_OVERTIME+IHARM_19_OVERTIME+IHARM_20_OVERTIME+IHARM_21_OVERTIME+IHARM_22_OVERTIME+IHARM_23_OVERTIME+IHARM_24_OVERTIME+IHARM_25_OVERTIME), 0) overCounts,c.myindex-->
<!-- from-->
<!-- limit_target c-->
<!-- where-->
<!-- c.myindex in <foreach collection="list" item="list7" open="(" close=")" separator=",">-->
<!-- #{list7}-->
<!-- </foreach>-->
<!-- and c.timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- and c.phasic_type = 'T' and (IHARM_2_OVERTIME>0 OR IHARM_3_OVERTIME>0 OR IHARM_4_OVERTIME>0 OR IHARM_5_OVERTIME>0 OR IHARM_6_OVERTIME>0 OR IHARM_7_OVERTIME>0 OR IHARM_8_OVERTIME>0 OR IHARM_9_OVERTIME>0 OR IHARM_10_OVERTIME>0 OR IHARM_11_OVERTIME>0 OR IHARM_12_OVERTIME>0 OR IHARM_13_OVERTIME>0 OR IHARM_14_OVERTIME>0 OR IHARM_15_OVERTIME>0 OR IHARM_16_OVERTIME>0 OR IHARM_17_OVERTIME>0 OR IHARM_18_OVERTIME>0 OR IHARM_19_OVERTIME>0 OR IHARM_20_OVERTIME>0 OR IHARM_21_OVERTIME>0 OR IHARM_22_OVERTIME>0 OR IHARM_23_OVERTIME>0 OR IHARM_24_OVERTIME>0 OR IHARM_25_OVERTIME>0) GROUP BY c.myindex-->
<!-- ) D-->
<!-- ON M.MYINDEX = D.MYINDEX-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- select-->
<!-- count(distinct c.myindex) overTotal,NVL(sum(UBALANCE_OVERTIME),0) overCounts,c.myindex-->
<!-- from-->
<!-- limit_target c-->
<!-- where-->
<!-- c.myindex in <foreach collection="list" item="list8" open="(" close=")" separator=",">-->
<!-- #{list8}-->
<!-- </foreach>-->
<!-- and c.timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- and c.phasic_type = 'T' and UBALANCE_OVERTIME>0 GROUP BY c.myindex-->
<!-- ) E-->
<!-- ON M.MYINDEX = E.MYINDEX-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- select-->
<!-- count(distinct c.myindex) overTotal,NVL(sum(FLICKER_OVERTIME),0) overCounts,c.myindex-->
<!-- from-->
<!-- limit_target c-->
<!-- where-->
<!-- c.myindex in <foreach collection="list" item="list9" open="(" close=")" separator=",">-->
<!-- #{list9}-->
<!-- </foreach>-->
<!-- and c.timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- and c.phasic_type = 'T' and FLICKER_OVERTIME>0 GROUP BY c.myindex-->
<!-- ) F-->
<!-- ON M.MYINDEX = F.MYINDEX-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- SELECT-->
<!-- NVL(COUNT(DISTINCT(LINEID)), 0) overTotal,NVL(COUNT(LINEID), 0) overCounts,LINEID-->
<!-- FROM-->
<!-- PQS_EVENTDETAIL-->
<!-- WHERE-->
<!-- WAVETYPE = 3-->
<!-- AND LINEID IN <foreach collection="list" item="list10" open="(" close=")" separator=",">-->
<!-- #{list10}-->
<!-- </foreach>-->
<!-- AND TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS') GROUP BY LINEID-->
<!-- ) G-->
<!-- ON M.MYINDEX = G.LINEID-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- SELECT-->
<!-- NVL(COUNT(DISTINCT(LINEID)), 0) overTotal,NVL(COUNT(LINEID), 0) overCounts,LINEID-->
<!-- FROM-->
<!-- PQS_EVENTDETAIL-->
<!-- WHERE-->
<!-- WAVETYPE = 1-->
<!-- AND LINEID IN <foreach collection="list" item="list11" open="(" close=")" separator=",">-->
<!-- #{list11}-->
<!-- </foreach>-->
<!-- AND TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS') GROUP BY LINEID-->
<!-- ) H-->
<!-- ON M.MYINDEX = H.LINEID-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- SELECT-->
<!-- NVL(COUNT(DISTINCT(LINEID)), 0) overTotal,NVL(COUNT(LINEID), 0) overCounts,LINEID-->
<!-- FROM-->
<!-- PQS_EVENTDETAIL-->
<!-- WHERE-->
<!-- WAVETYPE = 2-->
<!-- AND LINEID IN <foreach collection="list" item="list12" open="(" close=")" separator=",">-->
<!-- #{list12}-->
<!-- </foreach>-->
<!-- AND TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS') GROUP BY LINEID-->
<!-- ) I-->
<!-- ON M.MYINDEX = I.LINEID-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- select-->
<!-- count(distinct c.myindex) overTotal,NVL(sum(InUHARM_1_OverTime+InUHARM_2_OverTime+InUHARM_3_OverTime+InUHARM_4_OverTime+InUHARM_5_OverTime+InUHARM_6_OverTime+InUHARM_7_OverTime+InUHARM_8_OverTime+InUHARM_9_OverTime+InUHARM_10_OverTime+InUHARM_11_OverTime+InUHARM_12_OverTime+InUHARM_13_OverTime+InUHARM_14_OverTime+InUHARM_15_OverTime+InUHARM_16_OverTime), 0) overCounts,c.myindex-->
<!-- from-->
<!-- limit_target c-->
<!-- where-->
<!-- c.myindex in <foreach collection="list" item="list13" open="(" close=")" separator=",">-->
<!-- #{list13}-->
<!-- </foreach>-->
<!-- and c.timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- and c.phasic_type = 'T' and (INUHARM_1_OVERTIME>0 OR INUHARM_2_OVERTIME>0 OR INUHARM_3_OVERTIME>0 OR INUHARM_4_OVERTIME>0 OR INUHARM_5_OVERTIME>0 OR INUHARM_6_OVERTIME>0 OR INUHARM_7_OVERTIME>0 OR INUHARM_8_OVERTIME>0 OR INUHARM_9_OVERTIME>0 OR INUHARM_10_OVERTIME>0 OR INUHARM_11_OVERTIME>0 OR INUHARM_12_OVERTIME>0 OR INUHARM_13_OVERTIME>0 OR INUHARM_14_OVERTIME>0 OR INUHARM_15_OVERTIME>0 OR INUHARM_16_OVERTIME>0) GROUP BY c.myindex-->
<!-- ) X-->
<!-- ON M.MYINDEX = X.myindex-->
<!-- LEFT JOIN-->
<!-- (-->
<!-- select-->
<!-- count(distinct c.myindex) overTotal, NVL(sum(I_Neg_OverTime), 0) overCounts,c.myindex-->
<!-- from-->
<!-- limit_target c-->
<!-- where-->
<!-- c.myindex in <foreach collection="list" item="list14" open="(" close=")" separator=",">-->
<!-- #{list14}-->
<!-- </foreach>-->
<!-- and-->
<!-- c.timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')-->
<!-- and-->
<!-- c.phasic_type = 'T' and I_Neg_OverTime > 0 GROUP BY c.myindex-->
<!-- ) Y-->
<!-- ON M.MYINDEX = Y.myindex-->
<!-- GROUP BY S.SUB_INDEX-->
<!-- ) basic,-->
<!-- PQ_SUBSTATION sub,-->
<!-- PQS_DICDATA dicdata,-->
<!-- (-->
<!-- SELECT A.SUB_INDEX,A.DIC_NAME,B.DEPTSNAME FROM-->
<!-- (-->
<!-- SELECT-->
<!-- D.SUB_INDEX,C.DIC_NAME,B.PARENTNODEID-->
<!-- FROM-->
<!-- PQS_DEPTSLINE A,-->
<!-- PQS_DEPTS B,-->
<!-- PQS_DICDATA C,-->
<!-- PQ_SUBSTATION D,-->
<!-- PQ_LINE E-->
<!-- WHERE-->
<!-- A.LINE_INDEX IN-->
<!-- <foreach collection="list" item="list15" open="(" close=")" separator=",">-->
<!-- #{list15}-->
<!-- </foreach>-->
<!-- AND A.DEPTS_INDEX = B.DEPTS_INDEX AND B.CUSTOM_DEPT = 0 AND B.AREA = C.DIC_INDEX AND A.LINE_INDEX = E.LINE_INDEX AND E.SUB_INDEX = D.SUB_INDEX GROUP BY D.SUB_INDEX-->
<!-- ,D.NAME,C.DIC_NAME,PARENTNODEID-->
<!-- )A,-->
<!-- PQS_DEPTS B-->
<!-- WHERE A.PARENTNODEID = DEPTS_INDEX-->
<!-- ) area-->
<!-- WHERE basic.SUB_INDEX = sub.SUB_INDEX AND sub.SCALE = dicdata.DIC_INDEX AND basic.SUB_INDEX = area.SUB_INDEX-->
<!-- AND (basic.aOverCounts+basic.bOverCounts+basic.cOverCounts+basic.dOverCounts+basic.eOverCounts+basic.fOverCounts+basic.gOverCounts+basic.hOverCounts+basic.iOverCounts+basic.xOverCounts+basic.yOverCounts) &gt;0 ORDER BY area.DEPTSNAME,area.DIC_NAME-->
<!-- </select>-->
<select id="getEachIndex" resultType="com.pqs9000.pojo.responsibility.WarningSubstation">
WITH t0 AS (
SELECT
MYINDEX,
--频率偏差
SUM( FREQ_DEV_OVERTIME ) frequencyDeviation,
--电压偏差
SUM( VOLTAGE_DEV_OVERTIME ) voltageDeviation,
--谐波电压
SUM(
UABERRANCE_OVERTIME + UHARM_2_OVERTIME + UHARM_3_OVERTIME + UHARM_4_OVERTIME + UHARM_5_OVERTIME + UHARM_6_OVERTIME + UHARM_7_OVERTIME + UHARM_8_OVERTIME + UHARM_9_OVERTIME + UHARM_10_OVERTIME + UHARM_11_OVERTIME + UHARM_12_OVERTIME + UHARM_13_OVERTIME + UHARM_14_OVERTIME + UHARM_15_OVERTIME + UHARM_16_OVERTIME + UHARM_17_OVERTIME + UHARM_18_OVERTIME + UHARM_19_OVERTIME + UHARM_20_OVERTIME + UHARM_21_OVERTIME ++ UHARM_22_OVERTIME + UHARM_23_OVERTIME + UHARM_24_OVERTIME + UHARM_25_OVERTIME
) harmonicVoltage,
--谐波电流
SUM(
IHARM_2_OVERTIME + IHARM_3_OVERTIME + IHARM_4_OVERTIME + IHARM_5_OVERTIME + IHARM_6_OVERTIME + IHARM_7_OVERTIME + IHARM_8_OVERTIME + IHARM_9_OVERTIME + IHARM_10_OVERTIME + IHARM_11_OVERTIME + IHARM_12_OVERTIME + IHARM_13_OVERTIME + IHARM_14_OVERTIME + IHARM_15_OVERTIME + IHARM_16_OVERTIME + IHARM_17_OVERTIME + IHARM_18_OVERTIME + IHARM_19_OVERTIME + IHARM_20_OVERTIME + IHARM_21_OVERTIME + IHARM_22_OVERTIME + IHARM_23_OVERTIME + IHARM_24_OVERTIME + IHARM_25_OVERTIME
) harmonicCurrent,
--三项电压不平衡度
SUM( UBALANCE_OVERTIME ) threePhaseVoltageUnbalance,
--闪变
SUM( FLICKER_OVERTIME ) flicker,
--负序电流
SUM( I_Neg_OverTime ) negative,
--间谐波电压
SUM(
InUHARM_1_OverTime + InUHARM_2_OverTime + InUHARM_3_OverTime + InUHARM_4_OverTime + InUHARM_5_OverTime + InUHARM_6_OverTime + InUHARM_7_OverTime + InUHARM_8_OverTime + InUHARM_9_OverTime + InUHARM_10_OverTime + InUHARM_11_OverTime + InUHARM_12_OverTime + InUHARM_13_OverTime + InUHARM_14_OverTime + InUHARM_15_OverTime + InUHARM_16_OverTime
) interharmonic
FROM
LIMIT_TARGET
WHERE
timeid BETWEEN TO_DATE( #{startTime}, 'yyyy-MM-dd' )
AND TO_DATE( #{endTime}, 'yyyy-MM-dd' )
AND myindex IN
<foreach collection="list" item="list1" open="(" close=")" separator=",">
#{list1}
</foreach>
GROUP BY
MYINDEX
),
t1 AS (
SELECT
LINEID,
SUM( CASE WHEN WAVETYPE = 1 THEN 1 ELSE 0 END ) voltageDip,
SUM( CASE WHEN WAVETYPE = 2 THEN 1 ELSE 0 END ) voltageSwell,
SUM( CASE WHEN WAVETYPE = 3 THEN 1 ELSE 0 END ) shortInterruption
FROM
PQS_EVENTDETAIL
WHERE
timeid BETWEEN TO_DATE( #{startTime}, 'yyyy-MM-dd' )
AND TO_DATE( #{endTime}, 'yyyy-MM-dd' )
AND WAVETYPE IN ( 1, 2, 3 )
AND LINEID IN
<foreach collection="list" item="list2" open="(" close=")" separator=",">
#{list2}
</foreach>
GROUP BY
LINEID
),
t2 AS (
SELECT
A.SUB_INDEX,
COUNT( MYINDEX ) onlineMonitorCounts,
SUM(
CASE
WHEN (
NVL( t0.FREQUENCYDEVIATION, 0 ) > 0
OR NVL( t0.voltageDeviation, 0 ) > 0
OR NVL( t0.harmonicVoltage, 0 ) > 0
OR NVL( t0.harmonicCurrent, 0 ) > 0
OR NVL( t0.threePhaseVoltageUnbalance, 0 ) > 0
OR NVL( t0.flicker, 0 ) > 0
OR NVL( t0.negative, 0 ) > 0
OR NVL( t0.interharmonic, 0 ) > 0
OR NVL( t1.SHORTINTERRUPTION, 0 ) > 0
OR NVL( t1.VOLTAGEDIP, 0 ) > 0
OR NVL( t1.VOLTAGESWELL, 0 ) > 0
) THEN
1 ELSE 0
END
) alertMonitorCounts,
SUM(
NVL( t0.FREQUENCYDEVIATION, 0 ) + NVL( t0.voltageDeviation, 0 ) + NVL( t0.harmonicVoltage, 0 ) + NVL( t0.harmonicCurrent, 0 ) + NVL( t0.threePhaseVoltageUnbalance, 0 ) + NVL( t0.flicker, 0 ) + NVL( t0.negative, 0 ) + NVL( t0.interharmonic, 0 ) + NVL( t1.SHORTINTERRUPTION, 0 ) + NVL( t1.VOLTAGEDIP, 0 ) + NVL( t1.VOLTAGESWELL, 0 )
) alarmTimes,
SUM( CASE WHEN NVL( t0.FREQUENCYDEVIATION, 0 ) > 0 THEN 1 ELSE 0 END ) count1,
SUM( NVL( t0.FREQUENCYDEVIATION, 0 ) ) times1,
SUM( CASE WHEN NVL( t0.voltageDeviation, 0 ) > 0 THEN 1 ELSE 0 END ) count2,
SUM( NVL( t0.voltageDeviation, 0 ) ) times2,
SUM( CASE WHEN NVL( t0.harmonicVoltage, 0 ) > 0 THEN 1 ELSE 0 END ) count3,
SUM( NVL( t0.harmonicVoltage, 0 ) ) times3,
SUM( CASE WHEN NVL( t0.harmonicCurrent, 0 ) > 0 THEN 1 ELSE 0 END ) count4,
SUM( NVL( t0.harmonicCurrent, 0 ) ) times4,
SUM( CASE WHEN NVL( t0.threePhaseVoltageUnbalance, 0 ) > 0 THEN 1 ELSE 0 END ) count5,
SUM( NVL( t0.threePhaseVoltageUnbalance, 0 ) ) times5,
SUM( CASE WHEN NVL( t0.flicker, 0 ) > 0 THEN 1 ELSE 0 END ) count6,
SUM( NVL( t0.flicker, 0 ) ) times6,
SUM( CASE WHEN NVL( t0.negative, 0 ) > 0 THEN 1 ELSE 0 END ) count7,
SUM( NVL( t0.negative, 0 ) ) times7,
SUM( CASE WHEN NVL( t0.interharmonic, 0 ) > 0 THEN 1 ELSE 0 END ) count8,
SUM( NVL( t0.interharmonic, 0 ) ) times8,
SUM( CASE WHEN NVL( t1.SHORTINTERRUPTION, 0 ) > 0 THEN 1 ELSE 0 END ) count9,
SUM( NVL( t1.SHORTINTERRUPTION, 0 ) ) times9,
SUM( CASE WHEN NVL( t1.VOLTAGEDIP, 0 ) > 0 THEN 1 ELSE 0 END ) count10,
SUM( NVL( t1.VOLTAGEDIP, 0 ) ) times10,
SUM( CASE WHEN NVL( t1.VOLTAGESWELL, 0 ) > 0 THEN 1 ELSE 0 END ) count11,
SUM( NVL( t1.VOLTAGESWELL, 0 ) ) times11
FROM
t0
FULL JOIN t1 ON t0.MYINDEX = t1.LINEID
LEFT JOIN PQ_LINE A ON t0.MYINDEX = A.LINE_INDEX
GROUP BY
A.SUB_INDEX
)
SELECT
C.NAME cityCompany,
A.NAME plantName,
B.DIC_NAME plantVoltageLevel,
t2.onlineMonitorCounts,
t2.alertMonitorCounts,
t2.ALARMTIMES alertCounts,
CASE WHEN t2.alertMonitorCounts = 0 THEN 0 ELSE ROUND(t2.ALARMTIMES/t2.alertMonitorCounts, 2) END alertAlarmFrequency,
CASE WHEN t2.count1 = 0 THEN 0 ELSE ROUND(t2.times1/t2.count1, 2) END frequencyDeviation,
CASE WHEN t2.count2 = 0 THEN 0 ELSE ROUND(t2.times2/t2.count2, 2) END voltageDeviation,
CASE WHEN t2.count3 = 0 THEN 0 ELSE ROUND(t2.times3/t2.count3, 2) END harmonicVoltage,
CASE WHEN t2.count4 = 0 THEN 0 ELSE ROUND(t2.times4/t2.count4, 2) END harmonicCurrent,
CASE WHEN t2.count5 = 0 THEN 0 ELSE ROUND(t2.times5/t2.count5, 2) END threePhaseVoltageUnbalance,
CASE WHEN t2.count6 = 0 THEN 0 ELSE ROUND(t2.times6/t2.count6, 2) END flicker,
CASE WHEN t2.count7 = 0 THEN 0 ELSE ROUND(t2.times7/t2.count7, 2) END negative,
CASE WHEN t2.count8 = 0 THEN 0 ELSE ROUND(t2.times8/t2.count8, 2) END interharmonic,
CASE WHEN t2.count9 = 0 THEN 0 ELSE ROUND(t2.times9/t2.count9, 2) END shortInterruption,
CASE WHEN t2.count10 = 0 THEN 0 ELSE ROUND(t2.times10/t2.count10, 2) END voltageDip,
CASE WHEN t2.count11 = 0 THEN 0 ELSE ROUND(t2.times11/t2.count11, 2) END voltageSwell
FROM
t2,
PQ_SUBSTATION A,
PQS_DICDATA B,
PQ_GDINFORMATION C
WHERE t2.SUB_INDEX = A.SUB_INDEX and A.SCALE = B.DIC_INDEX and A.GD_INDEX = C.GD_INDEX
<if test="level!=null and level!=''">
AND A.SCALE = #{level}
</if>
order by t2.ALARMTIMES desc
</select>
</mapper>