Files
system-jibei/pqs9000/src/main/resources/mybatis/mappers/responsibility/AreaOverNormalMapper.xml

665 lines
29 KiB
XML
Raw Normal View History

2024-04-01 09:20:31 +08:00
<?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
2025-02-26 14:30:51 +08:00
limit_rate
2024-04-01 09:20:31 +08:00
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
2025-02-26 14:30:51 +08:00
limit_rate b1,
2024-04-01 09:20:31 +08:00
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,
(
2025-02-26 14:30:51 +08:00
select
count(distinct myindex) frequencyOverLine
from
limit_rate
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
2024-04-01 09:20:31 +08:00
) P,
(select
count(distinct myindex) voltageOverLine
from
2025-02-26 14:30:51 +08:00
limit_rate
2024-04-01 09:20:31 +08:00
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
2025-02-26 14:30:51 +08:00
limit_rate c
2024-04-01 09:20:31 +08:00
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
2025-02-26 14:30:51 +08:00
limit_rate c
2024-04-01 09:20:31 +08:00
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
2025-02-26 14:30:51 +08:00
limit_rate c
2024-04-01 09:20:31 +08:00
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
2025-02-26 14:30:51 +08:00
limit_rate c
2024-04-01 09:20:31 +08:00
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
2025-02-26 14:30:51 +08:00
limit_rate c
2024-04-01 09:20:31 +08:00
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
2025-02-26 14:30:51 +08:00
limit_rate c
2024-04-01 09:20:31 +08:00
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>
<select id="getMonitorNature" resultType="int">
SELECT LINE_INDEX FROM PQ_LINEDETAIL WHERE POWERID = #{powerId} AND LINE_INDEX IN
<foreach collection="list" item="totalList" open="(" close=")" separator=",">
#{totalList}
</foreach>
</select>
2024-04-01 09:20:31 +08:00
</mapper>