初始化项目

This commit is contained in:
2024-04-01 09:20:31 +08:00
commit fefd704e6e
4694 changed files with 1869737 additions and 0 deletions

View File

@@ -0,0 +1,659 @@
<?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.AreaOverNormalMapper">
<!-- 获取在线监测点、超标监测点和各指标超标监测点数 -->
<select id="getInfo" resultType="com.pqs9000.pojo.responsibility.AreaOverNoraml">
select
X.allLine onlineMonitorNumber,
Y.overLine overLimitMonitorNumber,
ROUND(case when X.allLine = 0 then 0 else Y.overLine/X.allLine*100 end,2) overBiLi,
P.frequencyOverLine frequencyMonitorNumber,
Q.voltageOverLine voltageMonitorNumber,
S.harmonicVoltageOverLine harmonicVoltageMonitorNumber,
R.harmonicCurrentOverLine harmonicCurrentMonitorNumber,
T.ubalanceOverLine threePhaseVoltageMonitorNumber,
Z.flicketOverLine flickerMonitorNumber,
A.negativeOverLine negativeMonitorNumber,
C.interharmonicOverLine interharmonicMonitorNumber
from
(
select
count(distinct myindex) allLine
from
limit_target
where
myindex IN
<foreach collection="list" item="list1" open="(" close=")" separator=",">
#{list1}
</foreach>
and timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
and phasic_type = 'T'
) X,
(
SELECT
COUNT(DISTINCT(MYINDEX)) overLine
FROM
limit_target b1,
PQS_DEPTSLINE b2,
PQS_DEPTS b3
WHERE
b1.PHASIC_TYPE = 'T'
AND b1.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND b1.MYINDEX IN
<foreach collection="list" item="list2" open="(" close=")" separator=",">
#{list2}
</foreach>
AND b1.MYINDEX = b2.LINE_INDEX AND b2.DEPTS_INDEX = b3.DEPTS_INDEX AND b3.CUSTOM_DEPT = 0
AND (b1.flicker_overtime >0 or b1.ubalance_overtime >0 or b1.freq_dev_overtime >0 or b1.uaberrance_overtime >0 or b1.voltage_dev_overtime >0 or b1.uharm_2_overtime >0 or b1.iharm_2_overtime >0 or b1.uharm_3_overtime >0 or b1.iharm_3_overtime >0 or b1.uharm_4_overtime >0 or b1.iharm_4_overtime >0
or b1.uharm_5_overtime >0 or b1.iharm_5_overtime >0 or b1.uharm_6_overtime >0 or b1.iharm_6_overtime >0 or b1.uharm_7_overtime >0 or b1.iharm_7_overtime >0
or b1.uharm_8_overtime >0 or b1.iharm_8_overtime >0 or b1.uharm_9_overtime >0 or b1.iharm_9_overtime >0 or b1.uharm_10_overtime >0 or b1.iharm_10_overtime >0
or b1.uharm_11_overtime >0 or b1.iharm_11_overtime >0 or b1.uharm_12_overtime >0 or b1.iharm_12_overtime >0 or b1.uharm_13_overtime >0 or b1.iharm_13_overtime >0
or b1.uharm_14_overtime >0 or b1.iharm_14_overtime >0 or b1.uharm_15_overtime >0 or b1.iharm_15_overtime >0 or b1.uharm_16_overtime >0 or b1.iharm_16_overtime >0
or b1.uharm_17_overtime >0 or b1.iharm_17_overtime >0 or b1.uharm_18_overtime >0 or b1.iharm_18_overtime >0 or b1.uharm_19_overtime >0 or b1.iharm_19_overtime >0
or b1.uharm_20_overtime >0 or b1.iharm_20_overtime >0 or b1.uharm_21_overtime >0 or b1.iharm_24_overtime >0 or b1.uharm_22_overtime >0 or b1.iharm_22_overtime >0
or b1.uharm_23_overtime >0 or b1.iharm_23_overtime >0 or b1.uharm_24_overtime >0 or b1.iharm_24_overtime >0 or b1.uharm_25_overtime >0 or b1.iharm_25_overtime >0
or b1.I_NEG_OVERTIME > 0 or b1.INUHARM_1_OVERTIME >0 or b1.INUHARM_2_OVERTIME >0 or b1.INUHARM_3_OVERTIME >0 or b1.INUHARM_4_OVERTIME >0 or b1.INUHARM_5_OVERTIME >0
or b1.INUHARM_6_OVERTIME >0 or b1.INUHARM_7_OVERTIME >0 or b1.INUHARM_8_OVERTIME >0 or b1.INUHARM_9_OVERTIME >0 or b1.INUHARM_10_OVERTIME >0 or b1.INUHARM_11_OVERTIME >0
or b1.INUHARM_12_OVERTIME >0 or b1.INUHARM_13_OVERTIME >0 or b1.INUHARM_14_OVERTIME >0 or b1.INUHARM_15_OVERTIME >0 or b1.INUHARM_16_OVERTIME >0)
) Y,
(
select
count(distinct myindex) frequencyOverLine
from
limit_target
where
myindex IN
<foreach collection="list" item="list3" open="(" close=")" separator=",">
#{list3}
</foreach>
and timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
and phasic_type = 'T' and FREQ_DEV_OVERTIME > 0
) P,
(select
count(distinct myindex) voltageOverLine
from
limit_target
where
myindex IN
<foreach collection="list" item="list4" open="(" close=")" separator=",">
#{list4}
</foreach>
and timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
and phasic_type = 'T' and VOLTAGE_DEV_OVERTIME > 0
) Q,
(
select
count(distinct c.myindex) harmonicVoltageOverLine
from
limit_target c
where
c.myindex in
<foreach collection="list" item="harmonicVoltageList" open="(" close=")" separator=",">
#{harmonicVoltageList}
</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+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
) S,
(
select
count(distinct c.myindex) harmonicCurrentOverLine
from
limit_target c
where
c.myindex in
<foreach collection="list" item="harmonicCurrentList" open="(" close=")" separator=",">
#{harmonicCurrentList}
</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+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
) R,
(
select
count(distinct c.myindex) ubalanceOverLine
from
limit_target c
where
c.myindex in
<foreach collection="list" item="threePhaseVoltageList" open="(" close=")" separator=",">
#{threePhaseVoltageList}
</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
) T,
(
select
count(distinct c.myindex) flicketOverLine
from
limit_target c
where
c.myindex in
<foreach collection="list" item="flickerList" open="(" close=")" separator=",">
#{flickerList}
</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
) Z,
(
select
count(distinct c.myindex) negativeOverLine
from
limit_target c
where
c.myindex in
<foreach collection="list" item="negativeList" open="(" close=")" separator=",">
#{negativeList}
</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
) A,
(
select
count(distinct c.myindex) interharmonicOverLine
from
limit_target c
where
c.myindex in
<foreach collection="list" item="harmonicCurrentList" open="(" close=")" separator=",">
#{harmonicCurrentList}
</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+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
) C
</select>
<!-- 国网监测点 -->
<select id="getCountryMonitor" resultType="int">
SELECT LINE_INDEX FROM PQ_LINEDETAIL WHERE MONITOR_ID is NOT NULL
AND LINE_INDEX IN
<foreach collection="list" item="list" open="(" close=")" separator=",">
#{list}
</foreach>
</select>
<select id="getFrequency" resultType="com.pqs9000.pojo.responsibility.OverLimitByDays">
SELECT A.TIMEID totalDate,B.allOver overCounts,A.overTotal FROM
(
select
c.TIMEID,NVL(count(distinct c.myindex),0) overTotal
from
limit_target c
where
c.myindex in
<foreach collection="list" item="frequencyList" open="(" close=")" separator=",">
#{frequencyList}
</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 c.timeid
) A,
(
SELECT
TIMEID,NVL(COUNT(DISTINCT(MYINDEX)),0) allOver
FROM
limit_target
WHERE
MYINDEX in
<foreach collection="list" item="list" open="(" close=")" separator=",">
#{list}
</foreach>
AND 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')
group by TIMEID
) B
WHERE A.TIMEID = B.TIMEID ORDER BY A.TIMEID asc
</select>
<select id="getVoltage" resultType="com.pqs9000.pojo.responsibility.OverLimitByDays">
SELECT A.TIMEID totalDate,B.allOver overCounts,A.overTotal FROM
(
select
c.TIMEID,NVL(count(distinct c.myindex),0) overTotal
from
limit_target c
where
c.myindex in
<foreach collection="list" item="voltageList" open="(" close=")" separator=",">
#{voltageList}
</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.timeid
) A,
(
SELECT
TIMEID,NVL(COUNT(DISTINCT(MYINDEX)),0) allOver
FROM
limit_target
WHERE
MYINDEX in
<foreach collection="list" item="list" open="(" close=")" separator=",">
#{list}
</foreach>
AND 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')
group by TIMEID
) B
WHERE A.TIMEID = B.TIMEID ORDER BY A.TIMEID asc
</select>
<select id="getHarmonicVoltage" resultType="com.pqs9000.pojo.responsibility.OverLimitByDays">
SELECT A.TIMEID totalDate,B.allOver overCounts,A.overTotal FROM
(
select
c.TIMEID,NVL(count(distinct c.myindex), 0) overTotal
from
limit_target c
where
c.myindex in
<foreach collection="list" item="harmonicVoltageList" open="(" close=")" separator=",">
#{harmonicVoltageList}
</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+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
group by c.timeid
) A,
(
SELECT
TIMEID,NVL(COUNT(DISTINCT(MYINDEX)),0) allOver
FROM
limit_target
WHERE
MYINDEX in
<foreach collection="list" item="list" open="(" close=")" separator=",">
#{list}
</foreach>
AND 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')
group by TIMEID
) B
WHERE A.TIMEID = B.TIMEID ORDER BY A.TIMEID asc
</select>
<select id="getHarmonicCurrent" resultType="com.pqs9000.pojo.responsibility.OverLimitByDays">
SELECT A.TIMEID totalDate,B.allOver overCounts,A.overTotal FROM
(
select
count(distinct c.myindex) overTotal,c.timeid
from
limit_target c
where
c.myindex in
<foreach collection="list" item="harmonicCurrentList" open="(" close=")" separator=",">
#{harmonicCurrentList}
</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+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
group by c.timeid
) A,
(
SELECT
TIMEID,NVL(COUNT(DISTINCT(MYINDEX)),0) allOver
FROM
limit_target
WHERE
MYINDEX in
<foreach collection="list" item="list" open="(" close=")" separator=",">
#{list}
</foreach>
AND 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')
group by TIMEID
) B
WHERE A.TIMEID = B.TIMEID ORDER BY A.TIMEID asc
</select>
<select id="getThreePhaseVoltage" resultType="com.pqs9000.pojo.responsibility.OverLimitByDays">
SELECT A.TIMEID totalDate,B.allOver overCounts,A.overTotal FROM
(
select
count(distinct c.myindex) overTotal,c.timeid
from
limit_target c
where
c.myindex in
<foreach collection="list" item="threePhaseVoltageList" open="(" close=")" separator=",">
#{threePhaseVoltageList}
</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.timeid
) A,
(
SELECT
TIMEID,NVL(COUNT(DISTINCT(MYINDEX)),0) allOver
FROM
limit_target
WHERE
MYINDEX in
<foreach collection="list" item="list" open="(" close=")" separator=",">
#{list}
</foreach>
AND 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')
group by TIMEID
) B
WHERE A.TIMEID = B.TIMEID ORDER BY A.TIMEID asc
</select>
<select id="getFlicker" resultType="com.pqs9000.pojo.responsibility.OverLimitByDays">
SELECT A.TIMEID totalDate,B.allOver overCounts,A.overTotal FROM
(
select
c.timeid,NVL(count(distinct c.myindex),0) overTotal
from
limit_target c
where
c.myindex in
<foreach collection="list" item="flickerList" open="(" close=")" separator=",">
#{flickerList}
</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.timeid
) A,
(
SELECT
TIMEID,NVL(COUNT(DISTINCT(MYINDEX)),0) allOver
FROM
limit_target
WHERE
MYINDEX in
<foreach collection="list" item="list" open="(" close=")" separator=",">
#{list}
</foreach>
AND 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')
group by TIMEID
) B
WHERE A.TIMEID = B.TIMEID ORDER BY A.TIMEID asc
</select>
<select id="getNegative" resultType="com.pqs9000.pojo.responsibility.OverLimitByDays">
SELECT A.TIMEID totalDate,B.allOver overCounts,A.overTotal FROM
(
select
count(distinct c.myindex) overTotal,c.timeid
from
limit_target c
where
c.myindex in
<foreach collection="list" item="negativeList" open="(" close=")" separator=",">
#{negativeList}
</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.timeid
) A,
(
SELECT
TIMEID,NVL(COUNT(DISTINCT(MYINDEX)),0) allOver
FROM
limit_target
WHERE
MYINDEX in
<foreach collection="list" item="list" open="(" close=")" separator=",">
#{list}
</foreach>
AND 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')
group by TIMEID
) B
WHERE A.TIMEID = B.TIMEID ORDER BY A.TIMEID asc
</select>
<select id="getInterharmonic" resultType="com.pqs9000.pojo.responsibility.OverLimitByDays">
SELECT A.TIMEID totalDate,B.allOver overCounts,A.overTotal FROM
(
select
c.timeid,NVL(count(distinct c.myindex),0) overTotal
from
limit_target c
where
c.myindex in
<foreach collection="list" item="harmonicCurrentList" open="(" close=")" separator=",">
#{harmonicCurrentList}
</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+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
group by c.timeid
) A,
(
SELECT
TIMEID,NVL(COUNT(DISTINCT(MYINDEX)),0) allOver
FROM
limit_target
WHERE
MYINDEX in
<foreach collection="list" item="list" open="(" close=")" separator=",">
#{list}
</foreach>
AND 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')
group by TIMEID
) B
WHERE A.TIMEID = B.TIMEID ORDER BY A.TIMEID asc
</select>
<select id="getTypeList" resultType="map">
SELECT B.DIC_NAME,A.LOADTYPE FROM PQ_LINEDETAIL A,PQS_DICDATA B
WHERE A.LINE_INDEX IN
<foreach collection="list" item="totalList" open="(" close=")" separator=",">
#{totalList}
</foreach>
AND A.LOADTYPE = B.DIC_INDEX GROUP BY A.LOADTYPE,B.DIC_NAME
</select>
<select id="getMonitorByType" resultType="int">
SELECT
LINE_INDEX
FROM PQ_LINEDETAIL
WHERE LINE_INDEX IN
<foreach collection="list" item="totalList" open="(" close=")" separator=",">
#{totalList}
</foreach>
AND LOADTYPE = #{type}
</select>
<select id="getVolList" resultType="map">
SELECT A.SCALE,B.DIC_NAME FROM PQ_LINE A,PQS_DICDATA B WHERE A.SCALE = B.DIC_INDEX AND A.LINE_INDEX IN
<foreach collection="list" item="totalList" open="(" close=")" separator=",">
#{totalList}
</foreach>
GROUP BY A.SCALE,B.DIC_NAME
</select>
<select id="getMonitorByVol" resultType="int">
SELECT LINE_INDEX FROM PQ_LINE WHERE SCALE = #{type} AND LINE_INDEX IN
<foreach collection="list" item="totalList" open="(" close=")" separator=",">
#{totalList}
</foreach>
</select>
<select id="getAvg" resultType="com.pqs9000.pojo.responsibility.AreaOverNoraml">
SELECT
ROUND(AVG(NVL(B.frequencyOverLine,0)/A.count)*100,2) frequencyAvg,
ROUND(AVG(NVL(C.voltageOverLine,0)/A.count)*100,2) voltageAvg,
ROUND(AVG(NVL(D.harmonicVoltageOverLine,0)/A.count)*100,2) harmonicVoltageAvg,
ROUND(AVG(NVL(E.harmonicCurrentOverLine,0)/A.count)*100,2) harmonicCurrentAvg,
ROUND(AVG(NVL(F.ubalanceOverLine,0)/A.count)*100,2) threePhaseVoltageAvg,
ROUND(AVG(NVL(G.flicketOverLine,0)/A.count)*100,2) flickerAvg,
ROUND(AVG(NVL(H.negativeOverLine,0)/A.count)*100,2) negativeAvg,
ROUND(AVG(NVL(I.interharmonicOverLine,0)/A.count)*100,2) interharmonicAvg
FROM
/*计算每天在线监测点数据*/
(
SELECT
TIMEID,
COUNT(MYINDEX) count
FROM
LIMIT_TARGET
WHERE
myindex IN
<foreach collection="list" item="list1" open="(" close=")" separator=",">
#{list1}
</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 TIMEID
) A
LEFT JOIN
/*计算每天频率偏差超标监测点数据*/
(
SELECT
TIMEID,
count(myindex) frequencyOverLine
FROM
limit_target
WHERE
myindex IN
<foreach collection="list" item="list2" open="(" close=")" separator=",">
#{list2}
</foreach>
and timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND phasic_type = 'T'
AND FREQ_DEV_OVERTIME > 0
GROUP BY TIMEID
) B
ON A.TIMEID = B.TIMEID
LEFT JOIN
/*计算每天电压偏差超标监测点数据*/
(
SELECT
TIMEID,
count(myindex) voltageOverLine
FROM
limit_target
WHERE
myindex IN
<foreach collection="list" item="list3" open="(" close=")" separator=",">
#{list3}
</foreach>
and timeid BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND phasic_type = 'T'
AND VOLTAGE_DEV_OVERTIME > 0
GROUP BY TIMEID
) C
ON A.TIMEID = C.TIMEID
LEFT JOIN
/*计算每天谐波电压超标监测点数据*/
(
SELECT
TIMEID,
count(c.myindex) harmonicVoltageOverLine
FROM
limit_target c
WHERE
myindex IN
<foreach collection="list" item="list4" open="(" close=")" separator=",">
#{list4}
</foreach>
and 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 + 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
GROUP BY TIMEID
) D
ON A.TIMEID = D.TIMEID
LEFT JOIN
/*计算每天谐波电流超标监测点数据*/
(
SELECT
TIMEID,
count(c.myindex) harmonicCurrentOverLine
FROM
limit_target c
WHERE
myindex IN
<foreach collection="list" item="list5" open="(" close=")" separator=",">
#{list5}
</foreach>
and 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 + 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
GROUP BY TIMEID
) E
ON A.TIMEID = E.TIMEID
LEFT JOIN
/*计算每天三相电压不平衡度超标监测点数据*/
(
SELECT
TIMEID,
count(c.myindex) ubalanceOverLine
FROM
limit_target c
WHERE
myindex IN
<foreach collection="list" item="list6" open="(" close=")" separator=",">
#{list6}
</foreach>
and 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 TIMEID
) F
ON A.TIMEID = F.TIMEID
LEFT JOIN
/*计算每天闪变超标监测点数据*/
(
SELECT
TIMEID,
count(c.myindex) flicketOverLine
FROM
limit_target c
WHERE
myindex IN
<foreach collection="list" item="list7" open="(" close=")" separator=",">
#{list7}
</foreach>
and 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 TIMEID
) G
ON A.TIMEID = G.TIMEID
LEFT JOIN
/*计算每天负序电流监测点数据*/
(
SELECT
TIMEID,
count(c.myindex) negativeOverLine
FROM
limit_target c
WHERE
myindex IN
<foreach collection="list" item="list8" open="(" close=")" separator=",">
#{list8}
</foreach>
and 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 TIMEID
) H
ON A.TIMEID = H.TIMEID
LEFT JOIN
/*计算每天间谐波电压监测点数据*/
(
SELECT
TIMEID,
count(c.myindex) interharmonicOverLine
FROM
limit_target c
WHERE
myindex IN
<foreach collection="list" item="list9" open="(" close=")" separator=",">
#{list9}
</foreach>
and 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 + 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
GROUP BY TIMEID
) I
ON A.TIMEID = I.TIMEID
</select>
</mapper>

View File

@@ -0,0 +1,72 @@
<?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.DataHarmonicDetailMapper">
<delete id="deleteData">
DELETE
FROM
DATA_HARMONIC_DETAIL
WHERE
TIME_ID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
</delete>
<insert id="insertData" parameterType="java.util.List" databaseId="Oracle">
insert into DATA_HARMONIC_DETAIL (
<foreach collection="list" item="item" index="index" separator="UNION ALL">
select #{item.timeId},#{item.lineId},#{item.targetType},#{item.maxData},#{item.limitData},#{item.diffData} from dual
</foreach>
)
</insert>
<select id="selectMaxData" resultType="com.pqs9000.pojo.data.DataHarmonicDetail">
SELECT
*
FROM
(
SELECT
t.*,
ROW_NUMBER() OVER (PARTITION BY t.LINE_ID,t.TARGET_TYPE,t.MAX_DATA
ORDER BY t.LINE_ID) AS rn
FROM
(
SELECT
A.LINE_ID ,
A.TARGET_TYPE ,
A.MAX_DATA ,
A.LIMIT_DATA ,
A.DIFF_DATA
FROM
DATA_HARMONIC_DETAIL A
RIGHT JOIN
(
SELECT
LINE_ID,
TARGET_TYPE,
MAX(MAX_DATA) maxData
FROM
DATA_HARMONIC_DETAIL
WHERE
TIME_ID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
GROUP BY
LINE_ID ,
TARGET_TYPE
)
B ON
A.LINE_ID = B.LINE_ID
AND A.TARGET_TYPE = B.TARGET_TYPE
AND A.MAX_DATA = B.maxData
<if test="list != null and list.size()>0">
<where>
B.LINE_ID IN
<foreach collection="list" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</where>
</if>
) t
)
WHERE
rn = 1
</select>
</mapper>

View File

@@ -0,0 +1,835 @@
<?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.OverLimitMonitorMapper">
<select id="getOverLimitMonitorList" resultType="com.pqs9000.pojo.responsibility.OverLimitMonitor">
SELECT * from
(
SELECT
primary.LINE_INDEX monitorId,
primary.NAME monitorName,
primary.cityCompany,
primary.provinceCompany,
primary.MONITORVOLTAGELEVEL,
primary.PLANTNAME,
primary.PLANTVOLAGELEVEL,
primary.objName,
primary.powerSubstationName,
primary.DLCMP dlcMp,
primary.DEVCMP devcMp,
primary.XYCMP xycMp,
NVL(A.OVERTIMES, 0) overLimitDay,
NVL(B.OVERTIMES, 0) overFrequencyDeviationDay,
NVL(C.OVERTIMES, 0) overVoltageDeviationDay,
NVL(harmV.OVERTIMES,0) overLimitHarmVDay,
NVL(D.OVERTIMES, 0) overVoltageDistortionDay,
NVL(E.OVERTIMES, 0) overHarmonicVoltageDay,
NVL(F.OVERTIMES, 0) overHarmonicCurrentDay,
NVL(G.OVERTIMES, 0) overVoltageThreeTimes,
NVL(H.OVERTIMES, 0) overVoltageFiveTimes,
NVL(I.OVERTIMES, 0) overVoltageSevenTimes,
NVL(J.OVERTIMES, 0) overVoltageElevenTimes,
NVL(K.OVERTIMES, 0) overVoltageThirteenTimes,
NVL(L.OVERTIMES, 0) overVoltageTwentyThirdTimes,
NVL(M.OVERTIMES, 0) overVoltageTwentyFiveTimes,
NVL(N.OVERTIMES, 0) overVoltageOtherTimes,
NVL(O.OVERTIMES, 0) overCurrentThreeTimes,
NVL(P.OVERTIMES, 0) overCurrentFiveTimes,
NVL(Q.OVERTIMES, 0) overCurrentSevenTimes,
NVL(R.OVERTIMES, 0) overCurrentElevenTimes,
NVL(S.OVERTIMES, 0) overCurrentThirteenTimes,
NVL(T.OVERTIMES, 0) overCurrentTwentyThirdTimes,
NVL(U.OVERTIMES, 0) overCurrentTwentyFiveTimes,
NVL(V.OVERTIMES, 0) overCurrentOtherTimes,
NVL(W.OVERTIMES, 0) overThreeVoltageUnbalanceDay,
NVL(X.OVERTIMES, 0) overFlickerDay,
Y.monitorType,
Y.monitorNumber,
NVL(Z.OVERTIMES, 0) overNegativeDay,
NVL(interharmonics.OVERTIMES, 0) overInterharmonicsDay
FROM
(
SELECT
fir.LINE LINE_INDEX,
fir.NAME,
fir.objName,
fir.DLCMP ,
fir.DEVCMP ,
fir.XYCMP ,
A.DIC_NAME cityCompany,
B.DEPTSNAME provinceCompany,
C.DIC_NAME MONITORVOLTAGELEVEL,
fir.SUBNAME PLANTNAME,
fir.powerSubstationName,
D.DIC_NAME PLANTVOLAGELEVEL
FROM
(
SELECT
DISTINCT(A.LINE_INDEX) line,
A.NAME,
A.DLCMP ,
A.DEVCMP ,
A.XYCMP ,
C.AREA,
C.PARENTNODEID,
A.SCALE lineScale,
D.NAME subName,
D.SCALE subScale,
E.objname objName,
E.POWER_SUBSTATION_NAME powerSubstationName
FROM
PQ_LINE A,
PQS_DEPTSLINE B,
PQS_DEPTS C,
PQ_SUBSTATION D,
PQ_LINEDETAIL E
WHERE A.LINE_INDEX IN
<foreach collection="list" item="list1" open="(" close=")" separator=",">
#{list1}
</foreach>
AND A.LINE_INDEX = B.LINE_INDEX
AND B.DEPTS_INDEX = C.DEPTS_INDEX
<!-- 不限制部门类型 0:非自定义部门 1:自定义部门-->
<!-- AND C.CUSTOM_DEPT = 0 -->
AND c.state = 1
AND A.SUB_INDEX = D.SUB_INDEX
AND A.LINE_INDEX = E.LINE_INDEX
<if test=" vollevel != ''">
AND A.SCALE=#{vollevel}
</if>
) fir
LEFT JOIN
PQS_DICDATA A
ON fir.AREA = A.DIC_INDEX
LEFT JOIN
PQS_DEPTS B
ON fir.PARENTNODEID = B.DEPTS_INDEX
LEFT JOIN
PQS_DICDATA C
ON fir.lineScale = C.DIC_INDEX
LEFT JOIN
PQS_DICDATA D
ON fir.SUBSCALE = D.DIC_INDEX
ORDER BY fir.LINE
) primary
LEFT JOIN
(SELECT
MYINDEX,COUNT(1) overTimes
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 (flicker_overtime >0 or ubalance_overtime >0 or freq_dev_overtime >0 or uaberrance_overtime >0 or voltage_dev_overtime >0 or uharm_2_overtime >0 or iharm_2_overtime >0 or uharm_3_overtime >0 or iharm_3_overtime >0 or uharm_4_overtime >0 or iharm_4_overtime >0
or uharm_5_overtime >0 or iharm_5_overtime >0 or uharm_6_overtime >0 or iharm_6_overtime >0 or uharm_7_overtime >0 or iharm_7_overtime >0
or uharm_8_overtime >0 or iharm_8_overtime >0 or uharm_9_overtime >0 or iharm_9_overtime >0 or uharm_10_overtime >0 or iharm_10_overtime >0
or uharm_11_overtime >0 or iharm_11_overtime >0 or uharm_12_overtime >0 or iharm_12_overtime >0 or uharm_13_overtime >0 or iharm_13_overtime >0
or uharm_14_overtime >0 or iharm_14_overtime >0 or uharm_15_overtime >0 or iharm_15_overtime >0 or uharm_16_overtime >0 or iharm_16_overtime >0
or uharm_17_overtime >0 or iharm_17_overtime >0 or uharm_18_overtime >0 or iharm_18_overtime >0 or uharm_19_overtime >0 or iharm_19_overtime >0
or uharm_20_overtime >0 or iharm_20_overtime >0 or uharm_21_overtime >0 or iharm_24_overtime >0 or uharm_22_overtime >0 or iharm_22_overtime >0
or uharm_23_overtime >0 or iharm_23_overtime >0 or uharm_24_overtime >0 or iharm_24_overtime >0 or uharm_25_overtime >0 or iharm_25_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
)A
ON primary.LINE_INDEX = A.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list3" open="(" close=")" separator=",">
#{list3}
</foreach>
and freq_dev_overtime >0 GROUP BY MYINDEX
) B
ON primary.LINE_INDEX = B.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list4" open="(" close=")" separator=",">
#{list4}
</foreach>
and voltage_dev_overtime >0 GROUP BY MYINDEX
) C
ON primary.LINE_INDEX = C.MYINDEX
LEFT JOIN
(select MYINDEX,COUNT(1) overTimes
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="list4" open="(" close=")"
separator=",">
#{list4}
</foreach>
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 MYINDEX
) harmV
ON primary.LINE_INDEX = harmV.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list5" open="(" close=")" separator=",">
#{list5}
</foreach>
and uaberrance_overtime >0 GROUP BY MYINDEX
) D
ON primary.LINE_INDEX = D.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list6" open="(" close=")" separator=",">
#{list6}
</foreach>
and (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 MYINDEX
) E
ON primary.LINE_INDEX = E.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list7" open="(" close=")" separator=",">
#{list7}
</foreach>
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 MYINDEX
) F
ON primary.LINE_INDEX = F.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list8" open="(" close=")" separator=",">
#{list8}
</foreach>
and uharm_3_overtime >0 GROUP BY MYINDEX
) G
ON primary.LINE_INDEX = G.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list9" open="(" close=")" separator=",">
#{list9}
</foreach>
and uharm_5_overtime >0 GROUP BY MYINDEX
) H
ON primary.LINE_INDEX = H.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list10" open="(" close=")" separator=",">
#{list10}
</foreach>
and uharm_7_overtime >0 GROUP BY MYINDEX
) I
ON primary.LINE_INDEX = I.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list11" open="(" close=")" separator=",">
#{list11}
</foreach>
and uharm_11_overtime >0 GROUP BY MYINDEX
) J
ON primary.LINE_INDEX = J.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list12" open="(" close=")" separator=",">
#{list12}
</foreach>
and uharm_13_overtime >0 GROUP BY MYINDEX
) K
ON primary.LINE_INDEX = K.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list13" open="(" close=")" separator=",">
#{list13}
</foreach>
and uharm_23_overtime >0 GROUP BY MYINDEX
) L
ON primary.LINE_INDEX = L.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list14" open="(" close=")" separator=",">
#{list14}
</foreach>
and uharm_25_overtime >0 GROUP BY MYINDEX
) M
ON primary.LINE_INDEX = M.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,SUM(uharm_2_overtime + uharm_4_overtime + uharm_6_overtime + uharm_8_overtime + uharm_9_overtime + uharm_10_overtime + uharm_12_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_24_overtime) overTimes
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="list15" open="(" close=")" separator=",">
#{list15}
</foreach>
and (uharm_2_overtime >0 or uharm_4_overtime >0 or uharm_6_overtime >0 or uharm_8_overtime >0 or uharm_9_overtime >0 or uharm_10_overtime >0 or uharm_12_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_24_overtime >0) GROUP BY MYINDEX
) N
ON primary.LINE_INDEX = N.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list16" open="(" close=")" separator=",">
#{list16}
</foreach>
and iharm_3_overtime >0 GROUP BY MYINDEX
) O
ON primary.LINE_INDEX = O.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list17" open="(" close=")" separator=",">
#{list17}
</foreach>
and iharm_5_overtime >0 GROUP BY MYINDEX
) P
ON primary.LINE_INDEX = P.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list18" open="(" close=")" separator=",">
#{list18}
</foreach>
and iharm_7_overtime >0 GROUP BY MYINDEX
) Q
ON primary.LINE_INDEX = Q.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list19" open="(" close=")" separator=",">
#{list19}
</foreach>
and iharm_11_overtime >0 GROUP BY MYINDEX
) R
ON primary.LINE_INDEX = R.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list20" open="(" close=")" separator=",">
#{list20}
</foreach>
and iharm_13_overtime >0 GROUP BY MYINDEX
) S
ON primary.LINE_INDEX = S.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list21" open="(" close=")" separator=",">
#{list21}
</foreach>
and iharm_23_overtime >0 GROUP BY MYINDEX
) T
ON primary.LINE_INDEX = T.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list22" open="(" close=")" separator=",">
#{list22}
</foreach>
and iharm_25_overtime >0 GROUP BY MYINDEX
) U
ON primary.LINE_INDEX = U.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,SUM(iharm_2_overtime + iharm_4_overtime + iharm_6_overtime + iharm_8_overtime + iharm_9_overtime + iharm_10_overtime + iharm_12_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_24_overtime) overTimes
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="list23" open="(" close=")" separator=",">
#{list23}
</foreach>
and (iharm_2_overtime >0 or iharm_4_overtime >0 or iharm_6_overtime >0 or iharm_8_overtime >0 or iharm_9_overtime >0 or iharm_10_overtime >0 or iharm_12_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_24_overtime >0) GROUP BY MYINDEX
) V
ON primary.LINE_INDEX = V.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list24" open="(" close=")" separator=",">
#{list24}
</foreach>
and ubalance_overtime >0 GROUP BY MYINDEX
) W
ON primary.LINE_INDEX = W.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list25" open="(" close=")" separator=",">
#{list25}
</foreach>
and flicker_overtime >0 GROUP BY MYINDEX
) X
ON primary.LINE_INDEX = X.MYINDEX
LEFT JOIN
(
SELECT
pqld.LINE_INDEX MYINDEX,
pd.DIC_NAME monitorType,
pqld.MONITOR_ID monitorNumber
FROM PQ_LINEDETAIL pqld,PQS_DICDATA pd WHERE LINE_INDEX IN
<foreach collection="list" item="list26" open="(" close=")" separator=",">
#{list26}
</foreach>
AND pqld.LOADTYPE = pd.DIC_INDEX
) Y
ON primary.LINE_INDEX = Y.MYINDEX
LEFT JOIN
(
SELECT
MYINDEX,COUNT(1) overTimes
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="list27" open="(" close=")" separator=",">
#{list27}
</foreach>
and I_Neg_OverTime >0 GROUP BY MYINDEX
) Z
ON primary.LINE_INDEX = Z.MYINDEX
LEFT JOIN
(SELECT
MYINDEX,COUNT(1) overTimes
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="list28" open="(" close=")" separator=",">
#{list28}
</foreach>
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 MYINDEX) interharmonics
ON primary.LINE_INDEX = interharmonics.MYINDEX
ORDER BY primary.provinceCompany,primary.cityCompany,primary.NAME
) where overLimitDay >0
</select>
<select id="getLineList" resultType="java.lang.String">
SELECT
DISTINCT MYINDEX
FROM
LIMIT_TARGET
WHERE
(ALLTIME &gt; 0 OR FLICKET_ALLTIME &gt; 0)
AND TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
</select>
<select id="getData1" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.LINEID monitorId,
max(abs(A.VU_DEV_MAX)) maxVoltageDeviationData,
B.VOLTAGE_DEV limitVoltageDeviationData,
max(abs(A.VU_DEV_MAX))-B.VOLTAGE_DEV diffVoltageDeviationData,
max(A.V_THD_CP95) maxVoltageDistortionData,
B.UBALANCE limitVoltageDistortionData,
max(A.V_THD_CP95)-B.UBALANCE diffVoltageDistortionData,
max(A.V_UNBALANCE_CP95) maxThreeVoltageUnbalanceData,
B.UABERRANCE limitThreeVoltageUnbalanceData,
max(A.V_UNBALANCE_CP95)-B.UABERRANCE diffThreeVoltageUnbalanceData,
max(abs(A.FREQ_DEV_MAX)) maxFrequencyDeviationData,
B.FREQ_DEV limitFrequencyDeviationData,
max(abs(A.FREQ_DEV_MAX))-B.FREQ_DEV diffFrequencyDeviationData
FROM
DATA_V A
RIGHT JOIN OVERLIMIT B ON A.LINEID = B.MYINDEX
WHERE
A.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND B.MYINDEX IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY A.LINEID,B.VOLTAGE_DEV,B.UBALANCE,B.UABERRANCE,B.FREQ_DEV
</select>
<select id="getData2" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.LINEID monitorId,
max(A.I_NEG_CP95) maxNegativeDay,
B.I_NEG limitNegativeData,
max(A.I_NEG_CP95)-B.I_NEG diffNegativeData
FROM
DATA_I A
RIGHT JOIN OVERLIMIT B ON A.LINEID = B.MYINDEX
WHERE
A.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND B.MYINDEX IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY A.LINEID,B.I_NEG
</select>
<select id="getData3" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.LINEID monitorId,
max(A.PLT) maxFlickerData,
B.FLICKER limitFlickerData,
max(A.PLT)-B.FLICKER diffFlickerData
FROM
DATA_PLT A
RIGHT JOIN OVERLIMIT B ON A.LINEID = B.MYINDEX
WHERE
A.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND B.MYINDEX IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY A.LINEID,B.FLICKER
</select>
<select id="getData4" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.LINEID monitorId,
MAX(A.I_2_CP95/NULLIF(B.IHARM_2,0)) ratio1,
MAX(A.I_3_CP95/NULLIF(B.IHARM_3,0)) ratio2,
MAX(A.I_4_CP95/NULLIF(B.IHARM_4,0)) ratio3,
MAX(A.I_5_CP95/NULLIF(B.IHARM_5,0)) ratio4,
MAX(A.I_6_CP95/NULLIF(B.IHARM_6,0)) ratio5,
MAX(A.I_7_CP95/NULLIF(B.IHARM_7,0)) ratio6,
MAX(A.I_8_CP95/NULLIF(B.IHARM_8,0)) ratio7,
MAX(A.I_9_CP95/NULLIF(B.IHARM_9,0)) ratio8,
MAX(A.I_10_CP95/NULLIF(B.IHARM_10,0)) ratio9,
MAX(A.I_11_CP95/NULLIF(B.IHARM_11,0)) ratio10,
MAX(A.I_12_CP95/NULLIF(B.IHARM_12,0)) ratio11,
MAX(A.I_13_CP95/NULLIF(B.IHARM_13,0)) ratio12,
MAX(A.I_14_CP95/NULLIF(B.IHARM_14,0)) ratio13,
MAX(A.I_15_CP95/NULLIF(B.IHARM_15,0)) ratio14,
MAX(A.I_16_CP95/NULLIF(B.IHARM_16,0)) ratio15,
MAX(A.I_17_CP95/NULLIF(B.IHARM_17,0)) ratio16,
MAX(A.I_18_CP95/NULLIF(B.IHARM_18,0)) ratio17,
MAX(A.I_19_CP95/NULLIF(B.IHARM_19,0)) ratio18,
MAX(A.I_20_CP95/NULLIF(B.IHARM_20,0)) ratio19,
MAX(A.I_21_CP95/NULLIF(B.IHARM_21,0)) ratio20,
MAX(A.I_22_CP95/NULLIF(B.IHARM_22,0)) ratio21,
MAX(A.I_23_CP95/NULLIF(B.IHARM_23,0)) ratio22,
MAX(A.I_24_CP95/NULLIF(B.IHARM_24,0)) ratio23,
MAX(A.I_25_CP95/NULLIF(B.IHARM_25,0)) ratio24
FROM
DATA_I A
RIGHT JOIN OVERLIMIT B ON A.LINEID = B.MYINDEX
WHERE
A.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND B.MYINDEX IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY A.LINEID
</select>
<select id="getData5" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.LINEID monitorId,
MAX(A.V_THD_CP95/NULLIF(B.UBALANCE,0)) ratio1,
MAX(C.V_2_CP95/NULLIF(B.UHARM_2,0)) ratio2,
MAX(C.V_3_CP95/NULLIF(B.UHARM_3,0)) ratio3,
MAX(C.V_4_CP95/NULLIF(B.UHARM_4,0)) ratio4,
MAX(C.V_5_CP95/NULLIF(B.UHARM_5,0)) ratio5,
MAX(C.V_6_CP95/NULLIF(B.UHARM_6,0)) ratio6,
MAX(C.V_7_CP95/NULLIF(B.UHARM_7,0)) ratio7,
MAX(C.V_8_CP95/NULLIF(B.UHARM_8,0)) ratio8,
MAX(C.V_9_CP95/NULLIF(B.UHARM_9,0)) ratio9,
MAX(C.V_10_CP95/NULLIF(B.UHARM_10,0)) ratio10,
MAX(C.V_11_CP95/NULLIF(B.UHARM_11,0)) ratio11,
MAX(C.V_12_CP95/NULLIF(B.UHARM_12,0)) ratio12,
MAX(C.V_13_CP95/NULLIF(B.UHARM_13,0)) ratio13,
MAX(C.V_14_CP95/NULLIF(B.UHARM_14,0)) ratio14,
MAX(C.V_15_CP95/NULLIF(B.UHARM_15,0)) ratio15,
MAX(C.V_16_CP95/NULLIF(B.UHARM_16,0)) ratio16,
MAX(C.V_17_CP95/NULLIF(B.UHARM_17,0)) ratio17,
MAX(C.V_18_CP95/NULLIF(B.UHARM_18,0)) ratio18,
MAX(C.V_19_CP95/NULLIF(B.UHARM_19,0)) ratio19,
MAX(C.V_20_CP95/NULLIF(B.UHARM_20,0)) ratio20,
MAX(C.V_21_CP95/NULLIF(B.UHARM_21,0)) ratio21,
MAX(C.V_22_CP95/NULLIF(B.UHARM_22,0)) ratio22,
MAX(C.V_23_CP95/NULLIF(B.UHARM_23,0)) ratio23,
MAX(C.V_24_CP95/NULLIF(B.UHARM_24,0)) ratio24,
MAX(C.V_25_CP95/NULLIF(B.UHARM_25,0)) ratio25
FROM
OVERLIMIT B
LEFT JOIN DATA_V A ON A.LINEID = B.MYINDEX
LEFT JOIN Data_HarmRate_V C ON C.LINEID = B.MYINDEX
WHERE
A.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND B.MYINDEX IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
AND A.TIMEID = C.TIMEID
GROUP BY A.LINEID
</select>
<select id="getData6" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.LINEID monitorId,
MAX(A.V_2_CP95/NULLIF(B.UHARM_2,0)) ratio2,
MAX(A.V_3_CP95/NULLIF(B.UHARM_3,0)) ratio3,
MAX(A.V_4_CP95/NULLIF(B.UHARM_4,0)) ratio4,
MAX(A.V_5_CP95/NULLIF(B.UHARM_5,0)) ratio5,
MAX(A.V_6_CP95/NULLIF(B.UHARM_6,0)) ratio6,
MAX(A.V_7_CP95/NULLIF(B.UHARM_7,0)) ratio7,
MAX(A.V_8_CP95/NULLIF(B.UHARM_8,0)) ratio8,
MAX(A.V_9_CP95/NULLIF(B.UHARM_9,0)) ratio9,
MAX(A.V_10_CP95/NULLIF(B.UHARM_10,0)) ratio10,
MAX(A.V_11_CP95/NULLIF(B.UHARM_11,0)) ratio11,
MAX(A.V_12_CP95/NULLIF(B.UHARM_12,0)) ratio12,
MAX(A.V_13_CP95/NULLIF(B.UHARM_13,0)) ratio13,
MAX(A.V_14_CP95/NULLIF(B.UHARM_14,0)) ratio14,
MAX(A.V_15_CP95/NULLIF(B.UHARM_15,0)) ratio15,
MAX(A.V_16_CP95/NULLIF(B.UHARM_16,0)) ratio16,
MAX(A.V_17_CP95/NULLIF(B.UHARM_17,0)) ratio17,
MAX(A.V_18_CP95/NULLIF(B.UHARM_18,0)) ratio18,
MAX(A.V_19_CP95/NULLIF(B.UHARM_19,0)) ratio19,
MAX(A.V_20_CP95/NULLIF(B.UHARM_20,0)) ratio20,
MAX(A.V_21_CP95/NULLIF(B.UHARM_21,0)) ratio21,
MAX(A.V_22_CP95/NULLIF(B.UHARM_22,0)) ratio22,
MAX(A.V_23_CP95/NULLIF(B.UHARM_23,0)) ratio23,
MAX(A.V_24_CP95/NULLIF(B.UHARM_24,0)) ratio24,
MAX(A.V_25_CP95/NULLIF(B.UHARM_25,0)) ratio25
FROM
Data_HarmRate_V A
RIGHT JOIN OVERLIMIT B ON A.LINEID = B.MYINDEX
WHERE
A.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND B.MYINDEX IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY A.LINEID
</select>
<select id="getData7" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.LINEID monitorId,
MAX(A.V_1_CP95/NULLIF(B.INUHARM_1,0)) ratio1,
MAX(A.V_2_CP95/NULLIF(B.INUHARM_2,0)) ratio2,
MAX(A.V_3_CP95/NULLIF(B.INUHARM_3,0)) ratio3,
MAX(A.V_4_CP95/NULLIF(B.INUHARM_4,0)) ratio4,
MAX(A.V_5_CP95/NULLIF(B.INUHARM_5,0)) ratio5,
MAX(A.V_6_CP95/NULLIF(B.INUHARM_6,0)) ratio6,
MAX(A.V_7_CP95/NULLIF(B.INUHARM_7,0)) ratio7,
MAX(A.V_8_CP95/NULLIF(B.INUHARM_8,0)) ratio8,
MAX(A.V_9_CP95/NULLIF(B.INUHARM_9,0)) ratio9,
MAX(A.V_10_CP95/NULLIF(B.INUHARM_10,0)) ratio10,
MAX(A.V_11_CP95/NULLIF(B.INUHARM_11,0)) ratio11,
MAX(A.V_12_CP95/NULLIF(B.INUHARM_12,0)) ratio12,
MAX(A.V_13_CP95/NULLIF(B.INUHARM_13,0)) ratio13,
MAX(A.V_14_CP95/NULLIF(B.INUHARM_14,0)) ratio14,
MAX(A.V_15_CP95/NULLIF(B.INUHARM_15,0)) ratio15,
MAX(A.V_16_CP95/NULLIF(B.INUHARM_16,0)) ratio16
FROM
Data_InHarm_V A
RIGHT JOIN OVERLIMIT B ON A.LINEID = B.MYINDEX
WHERE
A.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
AND B.MYINDEX IN
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY A.LINEID
</select>
<select id="getHarmonicData1" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.MYINDEX monitorId,
A.IHARM_${time} data1,
MAX(B.I_${time}_CP95) data2
FROM
OVERLIMIT A
LEFT JOIN DATA_I B ON
A.MYINDEX = B.LINEID
WHERE
A.MYINDEX = #{lineId} AND B.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
GROUP BY A.MYINDEX,A.IHARM_${time}
</select>
<select id="getHarmonicData2" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.MYINDEX monitorId,
A.UBALANCE data1,
MAX(B.V_THD_CP95) data2
FROM
OVERLIMIT A
LEFT JOIN DATA_V B ON
A.MYINDEX = B.LINEID
WHERE
A.MYINDEX = #{lineId} AND B.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
GROUP BY A.MYINDEX,A.UBALANCE
</select>
<select id="getHarmonicData3" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.MYINDEX monitorId,
A.UHARM_${time} data1,
MAX(B.V_${time}_CP95) data2
FROM
OVERLIMIT A
LEFT JOIN Data_HarmRate_V B ON
A.MYINDEX = B.LINEID
WHERE
A.MYINDEX = #{lineId} AND B.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
GROUP BY A.MYINDEX,A.UHARM_${time}
</select>
<select id="getHarmonicData4" resultType="com.pqs9000.pojo.responsibility.TargetDetailDto">
SELECT
A.MYINDEX monitorId,
A.INUHARM_${time} data1,
MAX(B.V_${time}_CP95) data2
FROM
OVERLIMIT A
LEFT JOIN Data_InHarm_V B ON
A.MYINDEX = B.LINEID
WHERE
A.MYINDEX = #{lineId} AND B.TIMEID BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')
GROUP BY A.MYINDEX,A.INUHARM_${time}
</select>
</mapper>

View File

@@ -0,0 +1,55 @@
<?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.ResponsibilityDataMapper">
<select id="responsibilityDataList" resultType="ResponsibilityData">
select
*
from
pqs_responsibilityData
where
update_time between #{startTime} and #{endTime}
</select>
<select id="selectData" resultType="ResponsibilityData">
select
*
from
pqs_responsibilityData
where
line_index=#{lineName}
and
user_data=#{excelName}
and
time_win=#{timeWin}
and
res_type=#{type}
</select>
<delete id="deleteByResIndex">
delete
from
pqs_responsibilityData t1
where
t1.res_index=#{resIndex}
</delete>
<select id="getLimitU" resultType="float">
SELECT
t.UHARM_${time}
FROM
OVERLIMIT t
WHERE
MYINDEX = #{lineIndex}
</select>
<select id="getLimitI" resultType="float">
SELECT
t.IHARM_${time}
FROM
OVERLIMIT t
WHERE
MYINDEX = #{lineIndex}
</select>
</mapper>

View File

@@ -0,0 +1,26 @@
<?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.UserExcelDataMapper">
<select id="selectUserExcelData" resultType="UserExcelData">
select
*
from
PQS_USEREXCELDATA T1
where
t1.excel_name=#{excelName}
and
t1.start_time=#{startTime}
and
t1.end_time=#{endTime}
</select>
<delete id="deleteByIndex">
delete
from
PQS_USEREXCELDATA t1
where
t1.EXCEL_INDEX=#{excelIndex}
</delete>
</mapper>

View File

@@ -0,0 +1,50 @@
<?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.UserExcelDataNoIntegrityMapper">
<insert id="insertAll" useGeneratedKeys="false">
insert into PQS_USEREXCELDATANOINTERGRITY (
INTERGRITY_INDEX,
EXCEL_INDEX,
USER_NAME,
LINE_NO,
LACK_DATE,
INTERGRITY,
USER_NO
)(
<foreach collection ="list" item="userExcelDataNoIntegrity" index="index" separator="UNION ALL">
select
#{userExcelDataNoIntegrity.intergrityIndex},
#{userExcelDataNoIntegrity.excelIndex},
#{userExcelDataNoIntegrity.userName},
#{userExcelDataNoIntegrity.lineNo},
#{userExcelDataNoIntegrity.lackDate},
#{userExcelDataNoIntegrity.intergrity},
#{userExcelDataNoIntegrity.userNo}
from dual
</foreach >
)
</insert>
<delete id="deleteByExcelIndex" >
delete from PQS_USEREXCELDATANOINTERGRITY t1
where
t1.EXCEL_INDEX=#{excelIndex}
</delete>
<select id="getUserExcelDataNoIntergritys" resultType="userExcelDataNoIntegrity">
SELECT
T2.EXCEL_NAME EXCEL_INDEX,
T1.USER_NAME,
T1.LINE_NO,
T1.LACK_DATE,
T1.INTERGRITY
FROM
PQS_USEREXCELDATANOINTERGRITY t1,PQS_USEREXCELDATA t2
WHERE
T1.EXCEL_INDEX=T2.EXCEL_INDEX
AND
T1.EXCEL_INDEX=#{excelIndex}
</select>
</mapper>

View File

@@ -0,0 +1,464 @@
<?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>