谐波监测-详细分析:告警变电站统计 和 区域稳态指标超标明细代码优化
This commit is contained in:
@@ -80,34 +80,41 @@ public class EventDetailServiceImpl extends ServiceImpl<EventDetailMapper, RmpEv
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<EventDetail> getEventDetail(List<String> lineIndexes, String startTime, String endTime, List<Integer> waveType) {
|
public List<EventDetail> getEventDetail(List<String> lineIndexes, String startTime, String endTime, List<Integer> waveType) {
|
||||||
//组装sql语句
|
List<RmpEventDetailPO> info = this.list(new LambdaQueryWrapper<RmpEventDetailPO>()
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
.ne(RmpEventDetailPO::getMeasurementPointId, lineIndexes)
|
||||||
stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(startTime))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(endTime))).append("' and (");
|
.ge(StrUtil.isNotBlank(startTime), RmpEventDetailPO::getStartTime,DateUtil.beginOfDay(DateUtil.parse(startTime)))
|
||||||
for (int i = 0; i < lineIndexes.size(); i++) {
|
.le(StrUtil.isNotBlank(endTime), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(endTime)))
|
||||||
if (lineIndexes.size() - i != 1) {
|
);
|
||||||
stringBuilder.append("line_id ='").append(lineIndexes.get(i)).append("' or ");
|
return BeanUtil.copyToList(info, EventDetail.class);
|
||||||
} else {
|
|
||||||
stringBuilder.append("line_id ='").append(lineIndexes.get(i)).append("' ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stringBuilder.append(") and (");
|
|
||||||
for (int i = 0; i < waveType.size(); i++) {
|
|
||||||
if (waveType.size() - i != 1) {
|
|
||||||
stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' or ");
|
|
||||||
} else {
|
|
||||||
stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stringBuilder.append(") order by time desc tz('Asia/Shanghai");
|
|
||||||
//sql语句
|
|
||||||
String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder;
|
|
||||||
|
|
||||||
//结果集
|
// //组装sql语句
|
||||||
QueryResult result = influxDbUtils.query(sql);
|
// StringBuilder stringBuilder = new StringBuilder();
|
||||||
//结果集映射到对象中
|
// stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(startTime))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(endTime))).append("' and (");
|
||||||
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
// for (int i = 0; i < lineIndexes.size(); i++) {
|
||||||
List<EventDetail> eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class);
|
// if (lineIndexes.size() - i != 1) {
|
||||||
return eventDetailList;
|
// stringBuilder.append("line_id ='").append(lineIndexes.get(i)).append("' or ");
|
||||||
|
// } else {
|
||||||
|
// stringBuilder.append("line_id ='").append(lineIndexes.get(i)).append("' ");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// stringBuilder.append(") and (");
|
||||||
|
// for (int i = 0; i < waveType.size(); i++) {
|
||||||
|
// if (waveType.size() - i != 1) {
|
||||||
|
// stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' or ");
|
||||||
|
// } else {
|
||||||
|
// stringBuilder.append("wave_type ='").append(waveType.get(i)).append("' ");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// stringBuilder.append(") order by time desc tz('Asia/Shanghai");
|
||||||
|
// //sql语句
|
||||||
|
// String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder;
|
||||||
|
//
|
||||||
|
// //结果集
|
||||||
|
// QueryResult result = influxDbUtils.query(sql);
|
||||||
|
// //结果集映射到对象中
|
||||||
|
// InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
|
||||||
|
// List<EventDetail> eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class);
|
||||||
|
// return eventDetailList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.njcn.harmonic.mapper;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.njcn.harmonic.pojo.po.LimitRate;
|
||||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||||
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
|
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
|
||||||
import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
|
import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
|
||||||
@@ -40,4 +41,16 @@ public interface RStatLimitRateDMapper extends BaseMapper<RStatLimitRateDPO> {
|
|||||||
@Param("ids") List<String> lineIndexes,
|
@Param("ids") List<String> lineIndexes,
|
||||||
@Param("statTime") String searchBeginTime,
|
@Param("statTime") String searchBeginTime,
|
||||||
@Param("endTime") String searchEndTime);
|
@Param("endTime") String searchEndTime);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据查询
|
||||||
|
* @param list
|
||||||
|
* @param startTime
|
||||||
|
* @param endTime
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<RStatLimitRateDPO> getSumPassRateList( @Param("ids") List<String> list,
|
||||||
|
@Param("statTime") String startTime,
|
||||||
|
@Param("endTime") String endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,4 +15,15 @@ public interface RStatLimitTargetMapper extends BaseMapper<RStatLimitTargetDPO>
|
|||||||
Page<MonitorOverLimitVO> getSumLimitTargetPage(Page<MonitorOverLimitVO>p,
|
Page<MonitorOverLimitVO> getSumLimitTargetPage(Page<MonitorOverLimitVO>p,
|
||||||
@Param("ids") List<String> lineIndexes,
|
@Param("ids") List<String> lineIndexes,
|
||||||
@Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
|
@Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param list
|
||||||
|
* @param startTime
|
||||||
|
* @param endTime
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<RStatLimitTargetDPO> getSumTargetList(@Param("ids") List<String> list,
|
||||||
|
@Param("statTime") String startTime,
|
||||||
|
@Param("endTime") String endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -210,4 +210,99 @@
|
|||||||
GROUP BY
|
GROUP BY
|
||||||
`time`
|
`time`
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getSumPassRateList" resultType="com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO">
|
||||||
|
SELECT
|
||||||
|
my_index as lineId ,
|
||||||
|
sum(all_time) as all_time,
|
||||||
|
sum(flicker_all_time) as flicker_all_time,
|
||||||
|
sum(freq_dev_overtime) as freq_dev_overtime,
|
||||||
|
sum(voltage_dev_overtime) as voltage_dev_overtime,
|
||||||
|
sum(ubalance_overtime) as ubalance_overtime,
|
||||||
|
sum(flicker_overtime) as flicker_overtime,
|
||||||
|
sum(uaberrance_overtime) as uaberrance_overtime,
|
||||||
|
sum(uharm_2_overtime) as uharm_2_overtime,
|
||||||
|
sum(uharm_3_overtime) as uharm_3_overtime,
|
||||||
|
sum(uharm_4_overtime) as uharm_4_overtime,
|
||||||
|
sum(uharm_5_overtime) as uharm_5_overtime,
|
||||||
|
sum(uharm_6_overtime) as uharm_6_overtime,
|
||||||
|
sum(uharm_7_overtime) as uharm_7_overtime,
|
||||||
|
sum(uharm_8_overtime) as uharm_8_overtime,
|
||||||
|
sum(uharm_9_overtime) as uharm_9_overtime,
|
||||||
|
sum(uharm_10_overtime) as uharm_10_overtime,
|
||||||
|
sum(uharm_11_overtime) as uharm_11_overtime,
|
||||||
|
sum(uharm_12_overtime) as uharm_12_overtime,
|
||||||
|
sum(uharm_13_overtime) as uharm_13_overtime,
|
||||||
|
sum(uharm_14_overtime) as uharm_14_overtime,
|
||||||
|
sum(uharm_15_overtime) as uharm_15_overtime,
|
||||||
|
sum(uharm_16_overtime) as uharm_16_overtime,
|
||||||
|
sum(uharm_17_overtime) as uharm_17_overtime,
|
||||||
|
sum(uharm_18_overtime) as uharm_18_overtime,
|
||||||
|
sum(uharm_19_overtime) as uharm_19_overtime,
|
||||||
|
sum(uharm_20_overtime) as uharm_20_overtime,
|
||||||
|
sum(uharm_21_overtime) as uharm_21_overtime,
|
||||||
|
sum(uharm_22_overtime) as uharm_22_overtime,
|
||||||
|
sum(uharm_23_overtime) as uharm_23_overtime,
|
||||||
|
sum(uharm_24_overtime) as uharm_24_overtime,
|
||||||
|
sum(uharm_25_overtime) as uharm_25_overtime,
|
||||||
|
sum(iharm_2_overtime) as iharm_2_overtime,
|
||||||
|
sum(iharm_3_overtime) as iharm_3_overtime,
|
||||||
|
sum(iharm_4_overtime) as iharm_4_overtime,
|
||||||
|
sum(iharm_5_overtime) as iharm_5_overtime,
|
||||||
|
sum(iharm_6_overtime) as iharm_6_overtime,
|
||||||
|
sum(iharm_7_overtime) as iharm_7_overtime,
|
||||||
|
sum(iharm_8_overtime) as iharm_8_overtime,
|
||||||
|
sum(iharm_9_overtime) as iharm_9_overtime,
|
||||||
|
sum(iharm_10_overtime) as iharm_10_overtime,
|
||||||
|
sum(iharm_11_overtime) as iharm_11_overtime,
|
||||||
|
sum(iharm_12_overtime) as iharm_12_overtime,
|
||||||
|
sum(iharm_13_overtime) as iharm_13_overtime,
|
||||||
|
sum(iharm_14_overtime) as iharm_14_overtime,
|
||||||
|
sum(iharm_15_overtime) as iharm_15_overtime,
|
||||||
|
sum(iharm_16_overtime) as iharm_16_overtime,
|
||||||
|
sum(iharm_17_overtime) as iharm_17_overtime,
|
||||||
|
sum(iharm_18_overtime) as iharm_18_overtime,
|
||||||
|
sum(iharm_19_overtime) as iharm_19_overtime,
|
||||||
|
sum(iharm_20_overtime) as iharm_20_overtime,
|
||||||
|
sum(iharm_21_overtime) as iharm_21_overtime,
|
||||||
|
sum(iharm_22_overtime) as iharm_22_overtime,
|
||||||
|
sum(iharm_23_overtime) as iharm_23_overtime,
|
||||||
|
sum(iharm_24_overtime) as iharm_24_overtime,
|
||||||
|
sum(iharm_25_overtime) as iharm_25_overtime,
|
||||||
|
sum(inuharm_1_overtime) as inuharm_1_overtime,
|
||||||
|
sum(inuharm_2_overtime) as inuharm_2_overtime,
|
||||||
|
sum(inuharm_3_overtime) as inuharm_3_overtime,
|
||||||
|
sum(inuharm_4_overtime) as inuharm_4_overtime,
|
||||||
|
sum(inuharm_5_overtime) as inuharm_5_overtime,
|
||||||
|
sum(inuharm_6_overtime) as inuharm_6_overtime,
|
||||||
|
sum(inuharm_7_overtime) as inuharm_7_overtime,
|
||||||
|
sum(inuharm_8_overtime) as inuharm_8_overtime,
|
||||||
|
sum(inuharm_9_overtime) as inuharm_9_overtime,
|
||||||
|
sum(inuharm_10_overtime) as inuharm_10_overtime,
|
||||||
|
sum(inuharm_11_overtime) as inuharm_11_overtime,
|
||||||
|
sum(inuharm_12_overtime) as inuharm_12_overtime,
|
||||||
|
sum(inuharm_13_overtime) as inuharm_13_overtime,
|
||||||
|
sum(inuharm_14_overtime) as inuharm_14_overtime,
|
||||||
|
sum(inuharm_15_overtime) as inuharm_15_overtime,
|
||||||
|
sum(inuharm_16_overtime) as inuharm_16_overtime,
|
||||||
|
sum(i_neg_overtime) as i_neg_overtime
|
||||||
|
from
|
||||||
|
r_stat_limit_rate_d
|
||||||
|
<where>
|
||||||
|
phasic_type = "T"
|
||||||
|
<if test=" ids != null and ids.size > 0">
|
||||||
|
AND my_index IN
|
||||||
|
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test=" statTime != null and statTime !=''">
|
||||||
|
AND time_id >= #{statTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null and endTime != ''">
|
||||||
|
AND time_id <= #{endTime}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
GROUP BY
|
||||||
|
`my_index`
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -68,4 +68,99 @@
|
|||||||
AND time_id BETWEEN #{startTime} AND #{endTime}
|
AND time_id BETWEEN #{startTime} AND #{endTime}
|
||||||
GROUP BY my_index
|
GROUP BY my_index
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getSumTargetList" resultType="com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO">
|
||||||
|
SELECT
|
||||||
|
my_index as lineId ,
|
||||||
|
sum(all_time) as all_time,
|
||||||
|
sum(flicker_all_time) as flicker_all_time,
|
||||||
|
sum(freq_dev_overtime) as freq_dev_overtime,
|
||||||
|
sum(voltage_dev_overtime) as voltage_dev_overtime,
|
||||||
|
sum(ubalance_overtime) as ubalance_overtime,
|
||||||
|
sum(flicker_overtime) as flicker_overtime,
|
||||||
|
sum(uaberrance_overtime) as uaberrance_overtime,
|
||||||
|
sum(uharm_2_overtime) as uharm_2_overtime,
|
||||||
|
sum(uharm_3_overtime) as uharm_3_overtime,
|
||||||
|
sum(uharm_4_overtime) as uharm_4_overtime,
|
||||||
|
sum(uharm_5_overtime) as uharm_5_overtime,
|
||||||
|
sum(uharm_6_overtime) as uharm_6_overtime,
|
||||||
|
sum(uharm_7_overtime) as uharm_7_overtime,
|
||||||
|
sum(uharm_8_overtime) as uharm_8_overtime,
|
||||||
|
sum(uharm_9_overtime) as uharm_9_overtime,
|
||||||
|
sum(uharm_10_overtime) as uharm_10_overtime,
|
||||||
|
sum(uharm_11_overtime) as uharm_11_overtime,
|
||||||
|
sum(uharm_12_overtime) as uharm_12_overtime,
|
||||||
|
sum(uharm_13_overtime) as uharm_13_overtime,
|
||||||
|
sum(uharm_14_overtime) as uharm_14_overtime,
|
||||||
|
sum(uharm_15_overtime) as uharm_15_overtime,
|
||||||
|
sum(uharm_16_overtime) as uharm_16_overtime,
|
||||||
|
sum(uharm_17_overtime) as uharm_17_overtime,
|
||||||
|
sum(uharm_18_overtime) as uharm_18_overtime,
|
||||||
|
sum(uharm_19_overtime) as uharm_19_overtime,
|
||||||
|
sum(uharm_20_overtime) as uharm_20_overtime,
|
||||||
|
sum(uharm_21_overtime) as uharm_21_overtime,
|
||||||
|
sum(uharm_22_overtime) as uharm_22_overtime,
|
||||||
|
sum(uharm_23_overtime) as uharm_23_overtime,
|
||||||
|
sum(uharm_24_overtime) as uharm_24_overtime,
|
||||||
|
sum(uharm_25_overtime) as uharm_25_overtime,
|
||||||
|
sum(iharm_2_overtime) as iharm_2_overtime,
|
||||||
|
sum(iharm_3_overtime) as iharm_3_overtime,
|
||||||
|
sum(iharm_4_overtime) as iharm_4_overtime,
|
||||||
|
sum(iharm_5_overtime) as iharm_5_overtime,
|
||||||
|
sum(iharm_6_overtime) as iharm_6_overtime,
|
||||||
|
sum(iharm_7_overtime) as iharm_7_overtime,
|
||||||
|
sum(iharm_8_overtime) as iharm_8_overtime,
|
||||||
|
sum(iharm_9_overtime) as iharm_9_overtime,
|
||||||
|
sum(iharm_10_overtime) as iharm_10_overtime,
|
||||||
|
sum(iharm_11_overtime) as iharm_11_overtime,
|
||||||
|
sum(iharm_12_overtime) as iharm_12_overtime,
|
||||||
|
sum(iharm_13_overtime) as iharm_13_overtime,
|
||||||
|
sum(iharm_14_overtime) as iharm_14_overtime,
|
||||||
|
sum(iharm_15_overtime) as iharm_15_overtime,
|
||||||
|
sum(iharm_16_overtime) as iharm_16_overtime,
|
||||||
|
sum(iharm_17_overtime) as iharm_17_overtime,
|
||||||
|
sum(iharm_18_overtime) as iharm_18_overtime,
|
||||||
|
sum(iharm_19_overtime) as iharm_19_overtime,
|
||||||
|
sum(iharm_20_overtime) as iharm_20_overtime,
|
||||||
|
sum(iharm_21_overtime) as iharm_21_overtime,
|
||||||
|
sum(iharm_22_overtime) as iharm_22_overtime,
|
||||||
|
sum(iharm_23_overtime) as iharm_23_overtime,
|
||||||
|
sum(iharm_24_overtime) as iharm_24_overtime,
|
||||||
|
sum(iharm_25_overtime) as iharm_25_overtime,
|
||||||
|
sum(inuharm_1_overtime) as inuharm_1_overtime,
|
||||||
|
sum(inuharm_2_overtime) as inuharm_2_overtime,
|
||||||
|
sum(inuharm_3_overtime) as inuharm_3_overtime,
|
||||||
|
sum(inuharm_4_overtime) as inuharm_4_overtime,
|
||||||
|
sum(inuharm_5_overtime) as inuharm_5_overtime,
|
||||||
|
sum(inuharm_6_overtime) as inuharm_6_overtime,
|
||||||
|
sum(inuharm_7_overtime) as inuharm_7_overtime,
|
||||||
|
sum(inuharm_8_overtime) as inuharm_8_overtime,
|
||||||
|
sum(inuharm_9_overtime) as inuharm_9_overtime,
|
||||||
|
sum(inuharm_10_overtime) as inuharm_10_overtime,
|
||||||
|
sum(inuharm_11_overtime) as inuharm_11_overtime,
|
||||||
|
sum(inuharm_12_overtime) as inuharm_12_overtime,
|
||||||
|
sum(inuharm_13_overtime) as inuharm_13_overtime,
|
||||||
|
sum(inuharm_14_overtime) as inuharm_14_overtime,
|
||||||
|
sum(inuharm_15_overtime) as inuharm_15_overtime,
|
||||||
|
sum(inuharm_16_overtime) as inuharm_16_overtime,
|
||||||
|
sum(i_neg_overtime) as i_neg_overtime
|
||||||
|
from
|
||||||
|
r_stat_limit_target_d
|
||||||
|
<where>
|
||||||
|
phasic_type = "T"
|
||||||
|
<if test=" ids != null and ids.size > 0">
|
||||||
|
AND my_index IN
|
||||||
|
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test=" statTime != null and statTime !=''">
|
||||||
|
AND time_id >= #{statTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null and endTime != ''">
|
||||||
|
AND time_id <= #{endTime}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
GROUP BY
|
||||||
|
`my_index`
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.njcn.harmonic.service.impl;
|
|||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
@@ -16,7 +17,7 @@ import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
|||||||
import com.njcn.device.pq.pojo.dto.OverLimitLineDTO;
|
import com.njcn.device.pq.pojo.dto.OverLimitLineDTO;
|
||||||
import com.njcn.device.pq.pojo.dto.PollutionParamDTO;
|
import com.njcn.device.pq.pojo.dto.PollutionParamDTO;
|
||||||
import com.njcn.device.pq.pojo.dto.WarningSubstationDTO;
|
import com.njcn.device.pq.pojo.dto.WarningSubstationDTO;
|
||||||
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
|
import com.njcn.event.api.EventDetailFeignClient;
|
||||||
import com.njcn.harmonic.constant.Param;
|
import com.njcn.harmonic.constant.Param;
|
||||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||||
import com.njcn.harmonic.mapper.RStatLimitTargetMapper;
|
import com.njcn.harmonic.mapper.RStatLimitTargetMapper;
|
||||||
@@ -27,7 +28,6 @@ import com.njcn.harmonic.pojo.excel.monitor.OverLimitDays;
|
|||||||
import com.njcn.harmonic.pojo.excel.monitor.UTimes;
|
import com.njcn.harmonic.pojo.excel.monitor.UTimes;
|
||||||
import com.njcn.harmonic.pojo.excel.substation.SubstationExcel;
|
import com.njcn.harmonic.pojo.excel.substation.SubstationExcel;
|
||||||
import com.njcn.harmonic.pojo.po.EventDetail;
|
import com.njcn.harmonic.pojo.po.EventDetail;
|
||||||
import com.njcn.harmonic.pojo.po.LimitRate;
|
|
||||||
import com.njcn.harmonic.pojo.po.LimitTarget;
|
import com.njcn.harmonic.pojo.po.LimitTarget;
|
||||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||||
@@ -38,6 +38,10 @@ import com.njcn.harmonic.pojo.vo.WarningSubstationVO;
|
|||||||
import com.njcn.harmonic.service.IAnalyzeService;
|
import com.njcn.harmonic.service.IAnalyzeService;
|
||||||
import com.njcn.influxdb.utils.InfluxDbUtils;
|
import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||||
import com.njcn.poi.excel.ExcelUtil;
|
import com.njcn.poi.excel.ExcelUtil;
|
||||||
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
|
import com.njcn.system.pojo.po.DictData;
|
||||||
import com.njcn.web.utils.RequestUtil;
|
import com.njcn.web.utils.RequestUtil;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -78,31 +82,33 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
private final RStatLimitRateDMapper rateDMapper;
|
private final RStatLimitRateDMapper rateDMapper;
|
||||||
|
|
||||||
private final RStatLimitTargetMapper targetMapper;
|
private final RStatLimitTargetMapper targetMapper;
|
||||||
|
private final EventDetailFeignClient eventDetailFeignClient;
|
||||||
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<OverAreaLimitVO> getAreaData(OverAreaVO param) {
|
public Page<OverAreaLimitVO> getAreaData(OverAreaVO param) {
|
||||||
Page<OverAreaLimitVO> page = new Page<>();
|
Page<OverAreaLimitVO> page = new Page<>();
|
||||||
page.setSize(param.getPageSize());
|
page.setSize(param.getPageSize());
|
||||||
page.setCurrent(param.getPageNum());
|
page.setCurrent(param.getPageNum());
|
||||||
List<OverAreaLimitVO> list = new ArrayList<>();
|
List<OverAreaLimitVO> list = new ArrayList<>();
|
||||||
param.setServerName(generalInfo.getMicroServiceName());
|
param.setServerName(generalInfo.getMicroServiceName());
|
||||||
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
|
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
|
||||||
if (!CollectionUtils.isEmpty(deptList)){
|
if (!CollectionUtils.isEmpty(deptList)) {
|
||||||
page.setTotal(deptList.size());
|
page.setTotal(deptList.size());
|
||||||
int pages = (int)Math.ceil(deptList.size()*1.0/param.getPageSize());
|
int pages = (int) Math.ceil(deptList.size() * 1.0 / param.getPageSize());
|
||||||
page.setPages(pages);
|
page.setPages(pages);
|
||||||
List<List<GeneralDeviceDTO>> pageList = Lists.partition(deptList,param.getPageSize());
|
List<List<GeneralDeviceDTO>> pageList = Lists.partition(deptList, param.getPageSize());
|
||||||
List<GeneralDeviceDTO> temList = pageList.get(param.getPageNum()-1);
|
List<GeneralDeviceDTO> temList = pageList.get(param.getPageNum() - 1);
|
||||||
temList.forEach(item->{
|
temList.forEach(item -> {
|
||||||
OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO();
|
OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO();
|
||||||
if (!CollectionUtils.isEmpty(item.getLineIndexes())){
|
if (!CollectionUtils.isEmpty(item.getLineIndexes())) {
|
||||||
List<LimitTarget> limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(),param.getSearchBeginTime(),param.getSearchEndTime());
|
List<LimitTarget> limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
overAreaLimitVO = handleAreaData(limitTargetList,item.getLineIndexes(),param);
|
overAreaLimitVO = handleAreaData(limitTargetList, item.getLineIndexes(), param);
|
||||||
}
|
}
|
||||||
overAreaLimitVO.setName(item.getName());
|
overAreaLimitVO.setName(item.getName());
|
||||||
list.add(overAreaLimitVO);
|
list.add(overAreaLimitVO);
|
||||||
});
|
});
|
||||||
if (!CollectionUtils.isEmpty(list)){
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
List<OverAreaLimitVO> recordList = new ArrayList<>();
|
List<OverAreaLimitVO> recordList = new ArrayList<>();
|
||||||
//默认 根据在线监测点个数 倒叙排序
|
//默认 根据在线监测点个数 倒叙排序
|
||||||
recordList = list.stream().sorted(Comparator.comparing(OverAreaLimitVO::getOnlineMonitorNumber).reversed().thenComparing(OverAreaLimitVO::getName)).collect(Collectors.toList());
|
recordList = list.stream().sorted(Comparator.comparing(OverAreaLimitVO::getOnlineMonitorNumber).reversed().thenComparing(OverAreaLimitVO::getName)).collect(Collectors.toList());
|
||||||
@@ -116,157 +122,170 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public Page<WarningSubstationVO> getWarningSubstation(OverAreaVO param) {
|
public Page<WarningSubstationVO> getWarningSubstation(OverAreaVO param) {
|
||||||
|
//获取暂态统计指标
|
||||||
|
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(
|
||||||
|
DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
|
|
||||||
Page<WarningSubstationVO> page = new Page<>();
|
Page<WarningSubstationVO> page = new Page<>();
|
||||||
page.setSize(param.getPageSize());
|
page.setSize(param.getPageSize());
|
||||||
page.setCurrent(param.getPageNum());
|
page.setCurrent(param.getPageNum());
|
||||||
List<String> line = new ArrayList<>(),subInfo = new ArrayList<>();
|
List<String> line = new ArrayList<>(), subInfo = new ArrayList<>();
|
||||||
List<WarningSubstationDTO> substationDTOList = new ArrayList<>();
|
List<WarningSubstationDTO> substationDTOList = new ArrayList<>();
|
||||||
Map<String,List<LimitRate>> map = new HashMap<>();
|
Map<String, List<RStatLimitRateDPO>> map = new HashMap<>();
|
||||||
Map<String,List<EventDetail>> map2 = new HashMap<>();
|
Map<String, List<com.njcn.event.pojo.po.EventDetail>> map2 = new HashMap<>();
|
||||||
param.setServerName(generalInfo.getMicroServiceName());
|
param.setServerName(generalInfo.getMicroServiceName());
|
||||||
List<WarningSubstationVO> list = new ArrayList<>();
|
List<WarningSubstationVO> list = new ArrayList<>();
|
||||||
List<GeneralDeviceDTO> subList = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData();
|
List<GeneralDeviceDTO> subList = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData();
|
||||||
if (!CollectionUtils.isEmpty(subList)){
|
if (!CollectionUtils.isEmpty(subList)) {
|
||||||
page.setTotal(subList.size());
|
page.setTotal(subList.size());
|
||||||
int pages = (int)Math.ceil(subList.size()*1.0/param.getPageSize());
|
int pages = (int) Math.ceil(subList.size() * 1.0 / param.getPageSize());
|
||||||
page.setPages(pages);
|
page.setPages(pages);
|
||||||
List<List<GeneralDeviceDTO>> pageList = Lists.partition(subList,param.getPageSize());
|
List<List<GeneralDeviceDTO>> pageList = Lists.partition(subList, param.getPageSize());
|
||||||
List<GeneralDeviceDTO> temList = pageList.get(param.getPageNum()-1);
|
List<GeneralDeviceDTO> temList = pageList.get(param.getPageNum() - 1);
|
||||||
temList.forEach(item->{
|
temList.forEach(item -> {
|
||||||
line.addAll(item.getLineIndexes());
|
line.addAll(item.getLineIndexes());
|
||||||
subInfo.add(item.getIndex());
|
subInfo.add(item.getIndex());
|
||||||
});
|
});
|
||||||
if (!CollectionUtils.isEmpty(line)){
|
if (!CollectionUtils.isEmpty(line)) {
|
||||||
substationDTOList = lineFeignClient.getWarningSub(subInfo).getData();
|
substationDTOList = lineFeignClient.getWarningSub(subInfo).getData();
|
||||||
List<LimitRate> limitRateList = (List<LimitRate>)getAllData(line,param.getSearchBeginTime(),param.getSearchEndTime(),Param.LIMIT_RATE);
|
List<RStatLimitRateDPO> limitRateList = (List<RStatLimitRateDPO>) getAllData(line, param.getSearchBeginTime(), param.getSearchEndTime(), Param.LIMIT_RATE);
|
||||||
if (!CollectionUtils.isEmpty(limitRateList)){
|
if (!CollectionUtils.isEmpty(limitRateList)) {
|
||||||
map = limitRateList.stream().collect(Collectors.groupingBy(LimitRate::getLineId));
|
map = limitRateList.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId));
|
||||||
}
|
}
|
||||||
List<EventDetail> eventDetailList = getEventDetail(line,param.getSearchBeginTime(),param.getSearchEndTime());
|
List<com.njcn.event.pojo.po.EventDetail> eventDetailList = getEventDetail(line, param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
if (!CollectionUtils.isEmpty(eventDetailList)){
|
if (!CollectionUtils.isEmpty(eventDetailList)) {
|
||||||
map2 = eventDetailList.stream().collect(Collectors.groupingBy(EventDetail::getLineId));
|
map2 = eventDetailList.stream().collect(Collectors.groupingBy(com.njcn.event.pojo.po.EventDetail::getLineId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (GeneralDeviceDTO item : temList) {
|
for (GeneralDeviceDTO item : temList) {
|
||||||
int onlineMonitorCount = 0,alertMonitorCount = 0,alertCount = 0,freqCount = 0,voltageCount = 0,ubalanceCount = 0,flickerCount = 0,iNegCount = 0,uharmCount = 0,iharmCount = 0,inuharmCount = 0;
|
int onlineMonitorCount = 0, alertMonitorCount = 0, alertCount = 0, freqCount = 0, voltageCount = 0, ubalanceCount = 0, flickerCount = 0, iNegCount = 0, uharmCount = 0, iharmCount = 0, inuharmCount = 0;
|
||||||
int freqCounts = 0,voltageCounts = 0,uharmCounts = 0,iharmCounts = 0,ubalanceCounts = 0,flickerCounts = 0,inuharmCounts = 0,iNegCounts = 0;
|
int freqCounts = 0, voltageCounts = 0, uharmCounts = 0, iharmCounts = 0, ubalanceCounts = 0, flickerCounts = 0, inuharmCounts = 0, iNegCounts = 0;
|
||||||
int eventUp = 0,eventDown = 0,eventInterrupt = 0,eventUps = 0,eventDowns = 0,eventInterrupts = 0;
|
int eventUp = 0, eventDown = 0, eventInterrupt = 0, eventUps = 0, eventDowns = 0, eventInterrupts = 0;
|
||||||
WarningSubstationVO warningSubstationVO = new WarningSubstationVO();
|
WarningSubstationVO warningSubstationVO = new WarningSubstationVO();
|
||||||
//电站id
|
//电站id
|
||||||
warningSubstationVO.setId(item.getIndex());
|
warningSubstationVO.setId(item.getIndex());
|
||||||
//电站名称
|
//电站名称
|
||||||
warningSubstationVO.setPlantName(item.getName());
|
warningSubstationVO.setPlantName(item.getName());
|
||||||
List<String> lineList = item.getLineIndexes();
|
List<String> lineList = item.getLineIndexes();
|
||||||
if (!CollectionUtils.isEmpty(lineList)){
|
if (!CollectionUtils.isEmpty(lineList)) {
|
||||||
for (String item2 : lineList) {
|
for (String item2 : lineList) {
|
||||||
//谐波统计
|
//谐波统计
|
||||||
if (!CollectionUtils.isEmpty(map.get(item2))){
|
if (!CollectionUtils.isEmpty(map.get(item2))) {
|
||||||
LimitRate limitRate = map.get(item2).get(0);
|
RStatLimitRateDPO limitRate = map.get(item2).get(0);
|
||||||
if (!Objects.isNull(limitRate)){
|
if (!Objects.isNull(limitRate)) {
|
||||||
onlineMonitorCount++;
|
onlineMonitorCount++;
|
||||||
if (limitRate.getFreqDevOverTime() > 0 || limitRate.getVoltageDevOverTime() > 0 || limitRate.getUBalanceOverTime() > 0 || limitRate.getFlickerOverTime() > 0 || limitRate.getINegOverTime() > 0 || limitRate.getUHarm2OverTime() > 0 || limitRate.getIHarm2OverTime() > 0 || limitRate.getInuHarm1OverTime() > 0){
|
if (limitRate.getFreqDevOvertime() > 0 || limitRate.getVoltageDevOvertime() > 0 || limitRate.getUbalanceOvertime() > 0 || limitRate.getFlickerOvertime() > 0 || limitRate.getINegOvertime() > 0 || limitRate.getUharm2Overtime() > 0 || limitRate.getIharm2Overtime() > 0 || limitRate.getInuharm1Overtime() > 0) {
|
||||||
alertMonitorCount++;
|
alertMonitorCount++;
|
||||||
}
|
}
|
||||||
if (limitRate.getFreqDevOverTime() > 0){
|
if (limitRate.getFreqDevOvertime() > 0) {
|
||||||
freqCount++;
|
freqCount++;
|
||||||
freqCounts = freqCounts + limitRate.getFreqDevOverTime();
|
freqCounts = freqCounts + limitRate.getFreqDevOvertime();
|
||||||
}
|
}
|
||||||
if (limitRate.getVoltageDevOverTime() > 0){
|
if (limitRate.getVoltageDevOvertime() > 0) {
|
||||||
voltageCount++;
|
voltageCount++;
|
||||||
voltageCounts = voltageCounts + limitRate.getVoltageDevOverTime();
|
voltageCounts = voltageCounts + limitRate.getVoltageDevOvertime();
|
||||||
}
|
}
|
||||||
if (limitRate.getUHarm2OverTime() > 0){
|
if (limitRate.getUharm2Overtime() > 0) {
|
||||||
uharmCount++;
|
uharmCount++;
|
||||||
uharmCounts = uharmCounts + limitRate.getUHarm2OverTime();
|
uharmCounts = uharmCounts + limitRate.getUharm2Overtime();
|
||||||
}
|
}
|
||||||
if (limitRate.getIHarm2OverTime() > 0){
|
if (limitRate.getIharm2Overtime() > 0) {
|
||||||
iharmCount++;
|
iharmCount++;
|
||||||
iharmCounts = iharmCounts + limitRate.getIHarm2OverTime();
|
iharmCounts = iharmCounts + limitRate.getIharm2Overtime();
|
||||||
}
|
}
|
||||||
if (limitRate.getUBalanceOverTime() > 0){
|
if (limitRate.getUbalanceOvertime() > 0) {
|
||||||
ubalanceCount++;
|
ubalanceCount++;
|
||||||
ubalanceCounts = ubalanceCounts + limitRate.getUBalanceOverTime();
|
ubalanceCounts = ubalanceCounts + limitRate.getUbalanceOvertime();
|
||||||
}
|
}
|
||||||
if (limitRate.getFlickerOverTime() > 0){
|
if (limitRate.getFlickerOvertime() > 0) {
|
||||||
flickerCount++;
|
flickerCount++;
|
||||||
flickerCounts = flickerCounts + limitRate.getFlickerOverTime();
|
flickerCounts = flickerCounts + limitRate.getFlickerOvertime();
|
||||||
}
|
}
|
||||||
if (limitRate.getInuHarm1OverTime() > 0){
|
if (limitRate.getInuharm1Overtime() > 0) {
|
||||||
inuharmCount++;
|
inuharmCount++;
|
||||||
inuharmCounts = inuharmCounts + limitRate.getInuHarm1OverTime();
|
inuharmCounts = inuharmCounts + limitRate.getInuharm1Overtime();
|
||||||
}
|
}
|
||||||
if (limitRate.getINegOverTime() > 0){
|
if (limitRate.getINegOvertime() > 0) {
|
||||||
iNegCount++;
|
iNegCount++;
|
||||||
iNegCounts = iNegCounts + limitRate.getINegOverTime();
|
iNegCounts = iNegCounts + limitRate.getINegOvertime();
|
||||||
}
|
}
|
||||||
alertCount = limitRate.getFreqDevOverTime() + limitRate.getVoltageDevOverTime() + limitRate.getUBalanceOverTime() + limitRate.getFlickerOverTime() + limitRate.getINegOverTime() + limitRate.getUHarm2OverTime() + limitRate.getIHarm2OverTime() + limitRate.getInuHarm1OverTime();
|
alertCount = limitRate.getFreqDevOvertime() + limitRate.getVoltageDevOvertime() + limitRate.getUbalanceOvertime() + limitRate.getFlickerOvertime() + limitRate.getINegOvertime() + limitRate.getUharm2Overtime() + limitRate.getIharm2Overtime() + limitRate.getInuharm1Overtime();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//暂降统计
|
//暂降统计
|
||||||
if (!CollectionUtils.isEmpty(map2.get(item2))){
|
if (!CollectionUtils.isEmpty(map2.get(item2))) {
|
||||||
List<EventDetail> eventDetailList = map2.get(item2);
|
List<com.njcn.event.pojo.po.EventDetail> eventDetailList = map2.get(item2);
|
||||||
if (!CollectionUtils.isEmpty(eventDetailList)){
|
if (!CollectionUtils.isEmpty(eventDetailList)) {
|
||||||
for (EventDetail item3 : eventDetailList) {
|
for (com.njcn.event.pojo.po.EventDetail item3 : eventDetailList) {
|
||||||
if (item3.getWaveType() == 1){
|
String eventType = item3.getEventType();
|
||||||
eventDowns++;
|
List<String> code = eventStatis.stream().filter(x -> x.getId().equals(eventType))
|
||||||
} else if (item3.getWaveType() == 2){
|
.map(DictData::getCode).collect(Collectors.toList());
|
||||||
eventUps++;
|
if (CollUtil.isNotEmpty(code)) {
|
||||||
} else if (item3.getWaveType() == 3){
|
if (DicDataEnum.VOLTAGE_DIP.getCode().equals(code.get(0))) {
|
||||||
eventInterrupts++;
|
eventDowns++;
|
||||||
|
}
|
||||||
|
if (DicDataEnum.VOLTAGE_RISE.getCode().equals(code.get(0))) {
|
||||||
|
eventUps++;
|
||||||
|
}
|
||||||
|
if (DicDataEnum.SHORT_INTERRUPTIONS.getCode().equals(code.get(0))) {
|
||||||
|
eventInterrupts++;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (eventDowns > 0){
|
if (eventDowns > 0) {
|
||||||
eventDown++;
|
eventDown++;
|
||||||
}
|
}
|
||||||
if (eventUps > 0){
|
if (eventUps > 0) {
|
||||||
eventUp++;
|
eventUp++;
|
||||||
}
|
}
|
||||||
if (eventInterrupts > 0){
|
if (eventInterrupts > 0) {
|
||||||
eventInterrupt++;
|
eventInterrupt++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//在线监测点数量(个)
|
//在线监测点数量(个)
|
||||||
warningSubstationVO.setOnlineMonitorCounts(onlineMonitorCount);
|
warningSubstationVO.setOnlineMonitorCounts(onlineMonitorCount);
|
||||||
if (onlineMonitorCount != 0){
|
if (onlineMonitorCount != 0) {
|
||||||
//告警监测点数量(个)
|
//告警监测点数量(个)
|
||||||
warningSubstationVO.setAlertMonitorCounts(alertMonitorCount);
|
warningSubstationVO.setAlertMonitorCounts(alertMonitorCount);
|
||||||
//告警次数
|
//告警次数
|
||||||
warningSubstationVO.setAlertCounts(alertCount);
|
warningSubstationVO.setAlertCounts(alertCount);
|
||||||
//告警频次(次/点)
|
//告警频次(次/点)
|
||||||
warningSubstationVO.setAlertAlarmFrequency(alertMonitorCount==0?0:BigDecimal.valueOf(alertCount*1.0/alertMonitorCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setAlertAlarmFrequency(alertMonitorCount == 0 ? 0 : BigDecimal.valueOf(alertCount * 1.0 / alertMonitorCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//频率偏差
|
//频率偏差
|
||||||
warningSubstationVO.setFrequencyDeviation(freqCount==0?0:BigDecimal.valueOf(freqCounts*1.0/freqCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setFrequencyDeviation(freqCount == 0 ? 0 : BigDecimal.valueOf(freqCounts * 1.0 / freqCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//电压偏差
|
//电压偏差
|
||||||
warningSubstationVO.setVoltageDeviation(voltageCount==0?0:BigDecimal.valueOf(voltageCounts*1.0/voltageCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setVoltageDeviation(voltageCount == 0 ? 0 : BigDecimal.valueOf(voltageCounts * 1.0 / voltageCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//谐波电压
|
//谐波电压
|
||||||
warningSubstationVO.setHarmonicVoltage(uharmCount==0?0:BigDecimal.valueOf(uharmCounts*1.0/uharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setHarmonicVoltage(uharmCount == 0 ? 0 : BigDecimal.valueOf(uharmCounts * 1.0 / uharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//谐波电流
|
//谐波电流
|
||||||
warningSubstationVO.setHarmonicCurrent(iharmCount==0?0:BigDecimal.valueOf(iharmCounts*1.0/iharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setHarmonicCurrent(iharmCount == 0 ? 0 : BigDecimal.valueOf(iharmCounts * 1.0 / iharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//三相电压不平衡
|
//三相电压不平衡
|
||||||
warningSubstationVO.setThreePhaseVoltageUnbalance(ubalanceCount==0?0:BigDecimal.valueOf(ubalanceCounts*1.0/ubalanceCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setThreePhaseVoltageUnbalance(ubalanceCount == 0 ? 0 : BigDecimal.valueOf(ubalanceCounts * 1.0 / ubalanceCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//闪变
|
//闪变
|
||||||
warningSubstationVO.setFlicker(flickerCount==0?0:BigDecimal.valueOf(flickerCounts*1.0/flickerCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setFlicker(flickerCount == 0 ? 0 : BigDecimal.valueOf(flickerCounts * 1.0 / flickerCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//间谐波电压
|
//间谐波电压
|
||||||
warningSubstationVO.setInterHarmonic(inuharmCount==0?0:BigDecimal.valueOf(inuharmCounts*1.0/inuharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setInterHarmonic(inuharmCount == 0 ? 0 : BigDecimal.valueOf(inuharmCounts * 1.0 / inuharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//负序电流
|
//负序电流
|
||||||
warningSubstationVO.setNegative(iNegCount==0?0:BigDecimal.valueOf(iNegCounts*1.0/iNegCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setNegative(iNegCount == 0 ? 0 : BigDecimal.valueOf(iNegCounts * 1.0 / iNegCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//电压暂降
|
//电压暂降
|
||||||
warningSubstationVO.setVoltageDip(eventDown==0?0:BigDecimal.valueOf(eventDowns*1.0/eventDown).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setVoltageDip(eventDown == 0 ? 0 : BigDecimal.valueOf(eventDowns * 1.0 / eventDown).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//电压暂升
|
//电压暂升
|
||||||
warningSubstationVO.setVoltageSwell(eventUp==0?0:BigDecimal.valueOf(eventUps*1.0/eventUp).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setVoltageSwell(eventUp == 0 ? 0 : BigDecimal.valueOf(eventUps * 1.0 / eventUp).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//短时中断
|
//短时中断
|
||||||
warningSubstationVO.setShortInterruption(eventInterrupt==0?0:BigDecimal.valueOf(eventInterrupts*1.0/eventInterrupt).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
warningSubstationVO.setShortInterruption(eventInterrupt == 0 ? 0 : BigDecimal.valueOf(eventInterrupts * 1.0 / eventInterrupt).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
}
|
}
|
||||||
list.add(warningSubstationVO);
|
list.add(warningSubstationVO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(list)){
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
for (WarningSubstationVO item1 : list) {
|
for (WarningSubstationVO item1 : list) {
|
||||||
for (WarningSubstationDTO item2 : substationDTOList) {
|
for (WarningSubstationDTO item2 : substationDTOList) {
|
||||||
if (Objects.equals(item1.getId(),item2.getId())){
|
if (Objects.equals(item1.getId(), item2.getId())) {
|
||||||
item1.setProvinceCompany(item2.getProvince());
|
item1.setProvinceCompany(item2.getProvince());
|
||||||
item1.setCityCompany(item2.getCity());
|
item1.setCityCompany(item2.getCity());
|
||||||
item1.setPlantVoltageLevel(item2.getScale());
|
item1.setPlantVoltageLevel(item2.getScale());
|
||||||
@@ -291,12 +310,12 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
List<String> lineList = new ArrayList<>();
|
List<String> lineList = new ArrayList<>();
|
||||||
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
|
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
|
||||||
if (!CollectionUtils.isEmpty(deptList)) {
|
if (!CollectionUtils.isEmpty(deptList)) {
|
||||||
deptList.forEach(item->{
|
deptList.forEach(item -> {
|
||||||
lineList.addAll(item.getLineIndexes());
|
lineList.addAll(item.getLineIndexes());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(lineList)) {
|
if (CollectionUtil.isNotEmpty(lineList)) {
|
||||||
page = targetMapper.getSumLimitTargetPage(page, lineList, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),
|
page = targetMapper.getSumLimitTargetPage(page, lineList, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),
|
||||||
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())));
|
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())));
|
||||||
List<MonitorOverLimitVO> pageRecords = page.getRecords();
|
List<MonitorOverLimitVO> pageRecords = page.getRecords();
|
||||||
if (CollectionUtils.isEmpty(pageRecords)) {
|
if (CollectionUtils.isEmpty(pageRecords)) {
|
||||||
@@ -309,12 +328,12 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
pollutionParamDTO.setLineList(list);
|
pollutionParamDTO.setLineList(list);
|
||||||
List<OverLimitLineDTO> overLimitLineList = lineFeignClient.getOverLimitLineInfo(pollutionParamDTO).getData();
|
List<OverLimitLineDTO> overLimitLineList = lineFeignClient.getOverLimitLineInfo(pollutionParamDTO).getData();
|
||||||
List<RStatLimitTargetDPO> rStatLimitTargetDPOS = targetMapper.selectList(new QueryWrapper<RStatLimitTargetDPO>()
|
List<RStatLimitTargetDPO> rStatLimitTargetDPOS = targetMapper.selectList(new QueryWrapper<RStatLimitTargetDPO>()
|
||||||
.in("r_stat_limit_target_d.my_index", list).between("r_stat_limit_target_d.time_id",DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),
|
.in("r_stat_limit_target_d.my_index", list).between("r_stat_limit_target_d.time_id", DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),
|
||||||
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))));
|
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))));
|
||||||
Map<String, List<RStatLimitTargetDPO>> rsMap = rStatLimitTargetDPOS.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getLineId));
|
Map<String, List<RStatLimitTargetDPO>> rsMap = rStatLimitTargetDPOS.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getLineId));
|
||||||
for (OverLimitLineDTO vo : overLimitLineList) {
|
for (OverLimitLineDTO vo : overLimitLineList) {
|
||||||
MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO();
|
MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO();
|
||||||
BeanUtil.copyProperties(vo,monitorOverLimitVO);
|
BeanUtil.copyProperties(vo, monitorOverLimitVO);
|
||||||
MonitorOverLimitVO source = monMap.get(vo.getId()).get(0);
|
MonitorOverLimitVO source = monMap.get(vo.getId()).get(0);
|
||||||
monitorOverLimitVO.setOverDay(source.getOverDay());
|
monitorOverLimitVO.setOverDay(source.getOverDay());
|
||||||
monitorOverLimitVO.setVolDevOverDay(source.getVolDevOverDay());
|
monitorOverLimitVO.setVolDevOverDay(source.getVolDevOverDay());
|
||||||
@@ -356,7 +375,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (!CollectionUtils.isEmpty(result)){
|
if (!CollectionUtils.isEmpty(result)) {
|
||||||
//默认 根据在线监测点个数 倒叙排序
|
//默认 根据在线监测点个数 倒叙排序
|
||||||
List<MonitorOverLimitVO> recordList = result.stream().sorted(Comparator.comparing(MonitorOverLimitVO::getOverDay).reversed()).collect(Collectors.toList());
|
List<MonitorOverLimitVO> recordList = result.stream().sorted(Comparator.comparing(MonitorOverLimitVO::getOverDay).reversed()).collect(Collectors.toList());
|
||||||
page.setRecords(recordList);
|
page.setRecords(recordList);
|
||||||
@@ -509,15 +528,15 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
private boolean filterNotQualifiedHarmVolData(RStatLimitTargetDPO t) {
|
private boolean filterNotQualifiedHarmVolData(RStatLimitTargetDPO t) {
|
||||||
// 电压畸变率+谐波电压含有率(2-25次)
|
// 电压畸变率+谐波电压含有率(2-25次)
|
||||||
int i = t.getUaberranceOvertime() + t.getUharm2Overtime() + t.getUharm3Overtime() + t.getUharm4Overtime() + t.getUharm5Overtime() + t.getUharm6Overtime() + t.getUharm7Overtime() + t.getUharm8Overtime() + t.getUharm9Overtime() + t.getUharm10Overtime() + t.getUharm11Overtime() + t.getUharm12Overtime() + t.getUharm13Overtime() + t.getUharm14Overtime() + t.getUharm15Overtime() + t.getUharm16Overtime() + t.getUharm17Overtime() + t.getUharm18Overtime() + t.getUharm19Overtime() + t.getUharm20Overtime() + t.getUharm21Overtime() + t.getUharm22Overtime() + t.getUharm23Overtime() + t.getUharm24Overtime() + t.getUharm25Overtime();
|
int i = t.getUaberranceOvertime() + t.getUharm2Overtime() + t.getUharm3Overtime() + t.getUharm4Overtime() + t.getUharm5Overtime() + t.getUharm6Overtime() + t.getUharm7Overtime() + t.getUharm8Overtime() + t.getUharm9Overtime() + t.getUharm10Overtime() + t.getUharm11Overtime() + t.getUharm12Overtime() + t.getUharm13Overtime() + t.getUharm14Overtime() + t.getUharm15Overtime() + t.getUharm16Overtime() + t.getUharm17Overtime() + t.getUharm18Overtime() + t.getUharm19Overtime() + t.getUharm20Overtime() + t.getUharm21Overtime() + t.getUharm22Overtime() + t.getUharm23Overtime() + t.getUharm24Overtime() + t.getUharm25Overtime();
|
||||||
if (i > 0){
|
if (i > 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean filterNotQualifiedInuharmData(RStatLimitTargetDPO t) {
|
private boolean filterNotQualifiedInuharmData(RStatLimitTargetDPO t) {
|
||||||
int i =t.getInuharm1Overtime()+ t.getInuharm2Overtime() + t.getInuharm3Overtime() + t.getInuharm4Overtime() + t.getInuharm5Overtime() + t.getInuharm6Overtime() + t.getInuharm7Overtime() + t.getInuharm8Overtime() + t.getInuharm9Overtime() + t.getInuharm10Overtime() + t.getInuharm11Overtime() + t.getInuharm12Overtime() + t.getInuharm13Overtime() + t.getInuharm14Overtime() + t.getInuharm15Overtime() + t.getInuharm16Overtime();
|
int i = t.getInuharm1Overtime() + t.getInuharm2Overtime() + t.getInuharm3Overtime() + t.getInuharm4Overtime() + t.getInuharm5Overtime() + t.getInuharm6Overtime() + t.getInuharm7Overtime() + t.getInuharm8Overtime() + t.getInuharm9Overtime() + t.getInuharm10Overtime() + t.getInuharm11Overtime() + t.getInuharm12Overtime() + t.getInuharm13Overtime() + t.getInuharm14Overtime() + t.getInuharm15Overtime() + t.getInuharm16Overtime();
|
||||||
if (i > 0){
|
if (i > 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -525,14 +544,14 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
|
|
||||||
private boolean filterNotQualifiedIharmData(RStatLimitTargetDPO t) {
|
private boolean filterNotQualifiedIharmData(RStatLimitTargetDPO t) {
|
||||||
int i = t.getIharm2Overtime() + t.getIharm3Overtime() + t.getIharm4Overtime() + t.getIharm5Overtime() + t.getIharm6Overtime() + t.getIharm7Overtime() + t.getIharm8Overtime() + t.getIharm9Overtime() + t.getIharm10Overtime() + t.getIharm11Overtime() + t.getIharm12Overtime() + t.getIharm13Overtime() + t.getIharm14Overtime() + t.getIharm15Overtime() + t.getIharm16Overtime() + t.getIharm17Overtime() + t.getIharm18Overtime() + t.getIharm19Overtime() + t.getIharm20Overtime() + t.getIharm21Overtime() + t.getIharm22Overtime() + t.getIharm23Overtime() + t.getIharm24Overtime() + t.getIharm25Overtime();
|
int i = t.getIharm2Overtime() + t.getIharm3Overtime() + t.getIharm4Overtime() + t.getIharm5Overtime() + t.getIharm6Overtime() + t.getIharm7Overtime() + t.getIharm8Overtime() + t.getIharm9Overtime() + t.getIharm10Overtime() + t.getIharm11Overtime() + t.getIharm12Overtime() + t.getIharm13Overtime() + t.getIharm14Overtime() + t.getIharm15Overtime() + t.getIharm16Overtime() + t.getIharm17Overtime() + t.getIharm18Overtime() + t.getIharm19Overtime() + t.getIharm20Overtime() + t.getIharm21Overtime() + t.getIharm22Overtime() + t.getIharm23Overtime() + t.getIharm24Overtime() + t.getIharm25Overtime();
|
||||||
if (i > 0){
|
if (i > 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean filterNotQualifiedUharmData(RStatLimitTargetDPO t) {
|
private boolean filterNotQualifiedUharmData(RStatLimitTargetDPO t) {
|
||||||
if (t.getUharm2Overtime()!=0 || t.getUharm3Overtime()!=0 || t.getUharm4Overtime()!=0 || t.getUharm5Overtime()!=0 || t.getUharm6Overtime()!=0 || t.getUharm7Overtime()!=0 || t.getUharm8Overtime()!=0 || t.getUharm9Overtime()!=0 || t.getUharm10Overtime()!=0 || t.getUharm11Overtime()!=0 ||t.getUharm12Overtime()!=0 || t.getUharm13Overtime()!=0 || t.getUharm14Overtime()!=0 || t.getUharm15Overtime()!=0 || t.getUharm16Overtime()!=0 || t.getUharm17Overtime()!=0 ||t.getUharm18Overtime()!=0 || t.getUharm19Overtime() !=0|| t.getUharm20Overtime()!=0 || t.getUharm21Overtime() !=0|| t.getUharm22Overtime() !=0|| t.getUharm23Overtime() !=0|| t.getUharm24Overtime()!=0 || t.getUharm25Overtime() !=0) {
|
if (t.getUharm2Overtime() != 0 || t.getUharm3Overtime() != 0 || t.getUharm4Overtime() != 0 || t.getUharm5Overtime() != 0 || t.getUharm6Overtime() != 0 || t.getUharm7Overtime() != 0 || t.getUharm8Overtime() != 0 || t.getUharm9Overtime() != 0 || t.getUharm10Overtime() != 0 || t.getUharm11Overtime() != 0 || t.getUharm12Overtime() != 0 || t.getUharm13Overtime() != 0 || t.getUharm14Overtime() != 0 || t.getUharm15Overtime() != 0 || t.getUharm16Overtime() != 0 || t.getUharm17Overtime() != 0 || t.getUharm18Overtime() != 0 || t.getUharm19Overtime() != 0 || t.getUharm20Overtime() != 0 || t.getUharm21Overtime() != 0 || t.getUharm22Overtime() != 0 || t.getUharm23Overtime() != 0 || t.getUharm24Overtime() != 0 || t.getUharm25Overtime() != 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -541,16 +560,16 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
@Override
|
@Override
|
||||||
public String exportArea(OverAreaVO param, String methodDescribe) {
|
public String exportArea(OverAreaVO param, String methodDescribe) {
|
||||||
List<AreaExcel> result = new ArrayList<>();
|
List<AreaExcel> result = new ArrayList<>();
|
||||||
String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime()+ CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() +".xlsx";
|
String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime() + CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() + ".xlsx";
|
||||||
String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex();
|
String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex();
|
||||||
log.error("文件路径" + targetDir);
|
log.error("文件路径" + targetDir);
|
||||||
log.error("文件名" + fileName);
|
log.error("文件名" + fileName);
|
||||||
File excel = new File(targetDir, fileName);
|
File excel = new File(targetDir, fileName);
|
||||||
List<OverAreaLimitVO> list = getAreaData(param).getRecords();
|
List<OverAreaLimitVO> list = getAreaData(param).getRecords();
|
||||||
if (!CollectionUtil.isEmpty(list)) {
|
if (!CollectionUtil.isEmpty(list)) {
|
||||||
list.forEach(item->{
|
list.forEach(item -> {
|
||||||
AreaExcel areaExcel = new AreaExcel();
|
AreaExcel areaExcel = new AreaExcel();
|
||||||
BeanUtil.copyProperties(item,areaExcel);
|
BeanUtil.copyProperties(item, areaExcel);
|
||||||
result.add(areaExcel);
|
result.add(areaExcel);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -561,16 +580,16 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
@Override
|
@Override
|
||||||
public String exportSubstation(OverAreaVO param, String methodDescribe) {
|
public String exportSubstation(OverAreaVO param, String methodDescribe) {
|
||||||
List<SubstationExcel> result = new ArrayList<>();
|
List<SubstationExcel> result = new ArrayList<>();
|
||||||
String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime()+ CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() +".xlsx";
|
String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime() + CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() + ".xlsx";
|
||||||
String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex();
|
String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex();
|
||||||
log.error("文件路径" + targetDir);
|
log.error("文件路径" + targetDir);
|
||||||
log.error("文件名" + fileName);
|
log.error("文件名" + fileName);
|
||||||
File excel = new File(targetDir, fileName);
|
File excel = new File(targetDir, fileName);
|
||||||
List<WarningSubstationVO> list = getWarningSubstation(param).getRecords();
|
List<WarningSubstationVO> list = getWarningSubstation(param).getRecords();
|
||||||
if (!CollectionUtil.isEmpty(list)) {
|
if (!CollectionUtil.isEmpty(list)) {
|
||||||
list.forEach(item->{
|
list.forEach(item -> {
|
||||||
SubstationExcel substationExcel = new SubstationExcel();
|
SubstationExcel substationExcel = new SubstationExcel();
|
||||||
BeanUtil.copyProperties(item,substationExcel);
|
BeanUtil.copyProperties(item, substationExcel);
|
||||||
result.add(substationExcel);
|
result.add(substationExcel);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -581,32 +600,32 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
@Override
|
@Override
|
||||||
public String exportMonitor(OverAreaVO param, String methodDescribe) {
|
public String exportMonitor(OverAreaVO param, String methodDescribe) {
|
||||||
List<MonitorExcel> result = new ArrayList<>();
|
List<MonitorExcel> result = new ArrayList<>();
|
||||||
String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime()+ CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() +".xlsx";
|
String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime() + CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() + ".xlsx";
|
||||||
String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex();
|
String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex();
|
||||||
log.error("文件路径" + targetDir);
|
log.error("文件路径" + targetDir);
|
||||||
log.error("文件名" + fileName);
|
log.error("文件名" + fileName);
|
||||||
File excel = new File(targetDir, fileName);
|
File excel = new File(targetDir, fileName);
|
||||||
List<MonitorOverLimitVO> list = monitorOverLimitVO(param).getRecords();
|
List<MonitorOverLimitVO> list = monitorOverLimitVO(param).getRecords();
|
||||||
if (!CollectionUtil.isEmpty(list)) {
|
if (!CollectionUtil.isEmpty(list)) {
|
||||||
list.forEach(item->{
|
list.forEach(item -> {
|
||||||
MonitorExcel monitorExcel = new MonitorExcel();
|
MonitorExcel monitorExcel = new MonitorExcel();
|
||||||
BeanUtil.copyProperties(item,monitorExcel);
|
BeanUtil.copyProperties(item, monitorExcel);
|
||||||
|
|
||||||
OverLimitDays overLimitDays = new OverLimitDays();
|
OverLimitDays overLimitDays = new OverLimitDays();
|
||||||
List<UTimes> list1 = new ArrayList<>();
|
List<UTimes> list1 = new ArrayList<>();
|
||||||
UTimes uTimes = new UTimes();
|
UTimes uTimes = new UTimes();
|
||||||
BeanUtil.copyProperties(item,uTimes);
|
BeanUtil.copyProperties(item, uTimes);
|
||||||
list1.add(uTimes);
|
list1.add(uTimes);
|
||||||
overLimitDays.setUTimes(list1);
|
overLimitDays.setUTimes(list1);
|
||||||
|
|
||||||
List<ITimes> list2 = new ArrayList<>();
|
List<ITimes> list2 = new ArrayList<>();
|
||||||
ITimes iTimes = new ITimes();
|
ITimes iTimes = new ITimes();
|
||||||
BeanUtil.copyProperties(item,iTimes);
|
BeanUtil.copyProperties(item, iTimes);
|
||||||
list2.add(iTimes);
|
list2.add(iTimes);
|
||||||
overLimitDays.setITimes(list2);
|
overLimitDays.setITimes(list2);
|
||||||
|
|
||||||
List<OverLimitDays> list3 = new ArrayList<>();
|
List<OverLimitDays> list3 = new ArrayList<>();
|
||||||
BeanUtil.copyProperties(item,overLimitDays);
|
BeanUtil.copyProperties(item, overLimitDays);
|
||||||
list3.add(overLimitDays);
|
list3.add(overLimitDays);
|
||||||
monitorExcel.setOverLimitDays(list3);
|
monitorExcel.setOverLimitDays(list3);
|
||||||
result.add(monitorExcel);
|
result.add(monitorExcel);
|
||||||
@@ -619,177 +638,142 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比
|
* 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比
|
||||||
|
*
|
||||||
* @param list 集合
|
* @param list 集合
|
||||||
* type 类型
|
* type 类型
|
||||||
* @return
|
* @return
|
||||||
* @author xy
|
* @author xy
|
||||||
* @date 2022/2/25 15:05
|
* @date 2022/2/25 15:05
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public OverAreaLimitVO handleAreaData(List<LimitTarget> list, List<String> line, OverAreaVO param) {
|
public OverAreaLimitVO handleAreaData(List<LimitTarget> list, List<String> line, OverAreaVO param) {
|
||||||
int onlineCount = 0,overLineCount = 0,freqCount = 0,voltageCount = 0,ubalanceCount = 0,flickerCount = 0,iNegCount = 0,uharmCount = 0,iharmCount = 0,inuharmCount = 0;
|
int onlineCount = 0, overLineCount = 0, freqCount = 0, voltageCount = 0, ubalanceCount = 0, flickerCount = 0, iNegCount = 0, uharmCount = 0, iharmCount = 0, inuharmCount = 0;
|
||||||
int freqOverDay = 0,voltageOverDay = 0, ubalanceOverDay = 0,flickerOverDay = 0,iNegOverDay = 0,uharmOverDay = 0,iharmOverDay = 0,inuharmOverDay = 0;
|
int freqOverDay = 0, voltageOverDay = 0, ubalanceOverDay = 0, flickerOverDay = 0, iNegOverDay = 0, uharmOverDay = 0, iharmOverDay = 0, inuharmOverDay = 0;
|
||||||
OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO();
|
OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO();
|
||||||
if (!CollectionUtils.isEmpty(list)){
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
List<LimitTarget> data = (List<LimitTarget>)getAllData(line,param.getSearchBeginTime(),param.getSearchEndTime(),Param.LIMIT_TARGET);
|
List<RStatLimitTargetDPO> data = (List<RStatLimitTargetDPO>) getAllData(line, param.getSearchBeginTime(), param.getSearchEndTime(), Param.LIMIT_TARGET);
|
||||||
if (!CollectionUtils.isEmpty(data)) {
|
if (!CollectionUtils.isEmpty(data)) {
|
||||||
onlineCount = data.size();
|
onlineCount = data.size();
|
||||||
//在线监测点个数
|
//在线监测点个数
|
||||||
overAreaLimitVO.setOnlineMonitorNumber(onlineCount);
|
overAreaLimitVO.setOnlineMonitorNumber(onlineCount);
|
||||||
for (LimitTarget item : data) {
|
for (RStatLimitTargetDPO item : data) {
|
||||||
if (item.getFreqDevOverTime() > 0 || item.getVoltageDevOverTime() > 0 || item.getUBalanceOverTime() > 0 || item.getFlickerOverTime() > 0 || item.getINegOverTime() > 0 ||item.getUHarm2OverTime() > 0 || item.getIHarm2OverTime() > 0 || item.getInuHarm1OverTime() > 0) {
|
if (item.getFreqDevOvertime() > 0 || item.getVoltageDevOvertime() > 0 || item.getUbalanceOvertime() > 0 || item.getFlickerOvertime() > 0 || item.getINegOvertime() > 0 || item.getUharm2Overtime() > 0 || item.getIharm2Overtime() > 0 || item.getInuharm1Overtime() > 0) {
|
||||||
overLineCount++;
|
overLineCount++;
|
||||||
}
|
}
|
||||||
if (item.getFreqDevOverTime() > 0){
|
if (item.getFreqDevOvertime() > 0) {
|
||||||
freqCount++;
|
freqCount++;
|
||||||
}
|
}
|
||||||
if (item.getVoltageDevOverTime() > 0){
|
if (item.getVoltageDevOvertime() > 0) {
|
||||||
voltageCount++;
|
voltageCount++;
|
||||||
}
|
}
|
||||||
if (item.getUBalanceOverTime() > 0){
|
if (item.getUbalanceOvertime() > 0) {
|
||||||
ubalanceCount++;
|
ubalanceCount++;
|
||||||
}
|
}
|
||||||
if (item.getFlickerOverTime() > 0){
|
if (item.getFlickerOvertime() > 0) {
|
||||||
flickerCount++;
|
flickerCount++;
|
||||||
}
|
}
|
||||||
if (item.getINegOverTime() > 0){
|
if (item.getINegOvertime() > 0) {
|
||||||
iNegCount++;
|
iNegCount++;
|
||||||
}
|
}
|
||||||
if (item.getUHarm2OverTime() > 0){
|
if (item.getUharm2Overtime() > 0) {
|
||||||
uharmCount++;
|
uharmCount++;
|
||||||
}
|
}
|
||||||
if (item.getIHarm2OverTime() > 0){
|
if (item.getIharm2Overtime() > 0) {
|
||||||
iharmCount++;
|
iharmCount++;
|
||||||
}
|
}
|
||||||
if (item.getInuHarm1OverTime() > 0){
|
if (item.getInuharm1Overtime() > 0) {
|
||||||
inuharmCount++;
|
inuharmCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//超标监测点个数
|
//超标监测点个数
|
||||||
overAreaLimitVO.setOverLimitMonitorNumber(overLineCount);
|
overAreaLimitVO.setOverLimitMonitorNumber(overLineCount);
|
||||||
//超标监测点数占比
|
//超标监测点数占比
|
||||||
overAreaLimitVO.setOverBiLi(BigDecimal.valueOf(overLineCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setOverBiLi(BigDecimal.valueOf(overLineCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//频率偏差
|
//频率偏差
|
||||||
overAreaLimitVO.setFrequencyMonitorNumber(freqCount);
|
overAreaLimitVO.setFrequencyMonitorNumber(freqCount);
|
||||||
overAreaLimitVO.setFrequencyBiLi(BigDecimal.valueOf(freqCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setFrequencyBiLi(BigDecimal.valueOf(freqCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//电压偏差
|
//电压偏差
|
||||||
overAreaLimitVO.setVoltageMonitorNumber(voltageCount);
|
overAreaLimitVO.setVoltageMonitorNumber(voltageCount);
|
||||||
overAreaLimitVO.setVoltageBiLi(BigDecimal.valueOf(voltageCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setVoltageBiLi(BigDecimal.valueOf(voltageCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//谐波电压
|
//谐波电压
|
||||||
overAreaLimitVO.setHarmonicVoltageMonitorNumber(uharmCount);
|
overAreaLimitVO.setHarmonicVoltageMonitorNumber(uharmCount);
|
||||||
overAreaLimitVO.setHarmonicVoltageBiLi(BigDecimal.valueOf(uharmCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setHarmonicVoltageBiLi(BigDecimal.valueOf(uharmCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//谐波电流
|
//谐波电流
|
||||||
overAreaLimitVO.setHarmonicCurrentMonitorNumber(iharmCount);
|
overAreaLimitVO.setHarmonicCurrentMonitorNumber(iharmCount);
|
||||||
overAreaLimitVO.setHarmonicCurrentBiLi(BigDecimal.valueOf(iharmCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setHarmonicCurrentBiLi(BigDecimal.valueOf(iharmCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//三相电压不平衡度
|
//三相电压不平衡度
|
||||||
overAreaLimitVO.setThreePhaseVoltageMonitorNumber(ubalanceCount);
|
overAreaLimitVO.setThreePhaseVoltageMonitorNumber(ubalanceCount);
|
||||||
overAreaLimitVO.setThreePhaseVoltageBiLi(BigDecimal.valueOf(ubalanceCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setThreePhaseVoltageBiLi(BigDecimal.valueOf(ubalanceCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//闪变
|
//闪变
|
||||||
overAreaLimitVO.setFlickerMonitorNumber(flickerCount);
|
overAreaLimitVO.setFlickerMonitorNumber(flickerCount);
|
||||||
overAreaLimitVO.setFlickerBiLi(BigDecimal.valueOf(flickerCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setFlickerBiLi(BigDecimal.valueOf(flickerCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//负序电流
|
//负序电流
|
||||||
overAreaLimitVO.setNegativeMonitorNumber(iNegCount);
|
overAreaLimitVO.setNegativeMonitorNumber(iNegCount);
|
||||||
overAreaLimitVO.setNegativeBiLi(BigDecimal.valueOf(iNegCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setNegativeBiLi(BigDecimal.valueOf(iNegCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
//间谐波电压
|
//间谐波电压
|
||||||
overAreaLimitVO.setInterHarmonicMonitorNumber(inuharmCount);
|
overAreaLimitVO.setInterHarmonicMonitorNumber(inuharmCount);
|
||||||
overAreaLimitVO.setInterHarmonicBiLi(BigDecimal.valueOf(inuharmCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setInterHarmonicBiLi(BigDecimal.valueOf(inuharmCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Map<Instant,List<LimitTarget>> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime));
|
Map<Instant, List<LimitTarget>> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime));
|
||||||
for (Instant key : map.keySet()) {
|
for (Instant key : map.keySet()) {
|
||||||
List<LimitTarget> l = map.get(key);
|
List<LimitTarget> l = map.get(key);
|
||||||
for (LimitTarget pojo : l) {
|
for (LimitTarget pojo : l) {
|
||||||
if (pojo.getFreqDevOverTime() > 0){
|
if (pojo.getFreqDevOverTime() > 0) {
|
||||||
freqOverDay++;
|
freqOverDay++;
|
||||||
}
|
}
|
||||||
if (pojo.getVoltageDevOverTime() > 0){
|
if (pojo.getVoltageDevOverTime() > 0) {
|
||||||
voltageOverDay++;
|
voltageOverDay++;
|
||||||
}
|
}
|
||||||
if (pojo.getUBalanceOverTime() > 0){
|
if (pojo.getUBalanceOverTime() > 0) {
|
||||||
ubalanceOverDay++;
|
ubalanceOverDay++;
|
||||||
}
|
}
|
||||||
if (pojo.getFlickerOverTime() > 0){
|
if (pojo.getFlickerOverTime() > 0) {
|
||||||
flickerOverDay++;
|
flickerOverDay++;
|
||||||
}
|
}
|
||||||
if (pojo.getINegOverTime() > 0){
|
if (pojo.getINegOverTime() > 0) {
|
||||||
iNegOverDay++;
|
iNegOverDay++;
|
||||||
}
|
}
|
||||||
if (pojo.getUHarm2OverTime() > 0){
|
if (pojo.getUHarm2OverTime() > 0) {
|
||||||
uharmOverDay++;
|
uharmOverDay++;
|
||||||
}
|
}
|
||||||
if (pojo.getIHarm2OverTime() > 0){
|
if (pojo.getIHarm2OverTime() > 0) {
|
||||||
iharmOverDay++;
|
iharmOverDay++;
|
||||||
}
|
}
|
||||||
if (pojo.getInuHarm1OverTime() > 0){
|
if (pojo.getInuHarm1OverTime() > 0) {
|
||||||
inuharmOverDay++;
|
inuharmOverDay++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (onlineCount != 0){
|
if (onlineCount != 0) {
|
||||||
overAreaLimitVO.setFrequencyOverDayBiLi(freqCount == 0?0.0:BigDecimal.valueOf(freqOverDay*1.0/freqCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setFrequencyOverDayBiLi(freqCount == 0 ? 0.0 : BigDecimal.valueOf(freqOverDay * 1.0 / freqCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
overAreaLimitVO.setVoltageOverDayBiLi(voltageCount == 0?0.0:BigDecimal.valueOf(voltageOverDay*1.0/voltageCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setVoltageOverDayBiLi(voltageCount == 0 ? 0.0 : BigDecimal.valueOf(voltageOverDay * 1.0 / voltageCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
overAreaLimitVO.setThreePhaseVoltageOverDayBiLi(ubalanceCount == 0?0.0:BigDecimal.valueOf(ubalanceOverDay*1.0/ubalanceCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setThreePhaseVoltageOverDayBiLi(ubalanceCount == 0 ? 0.0 : BigDecimal.valueOf(ubalanceOverDay * 1.0 / ubalanceCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
overAreaLimitVO.setFlickerOverDayBiLi(flickerCount == 0?0.0:BigDecimal.valueOf(flickerOverDay*1.0/flickerCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setFlickerOverDayBiLi(flickerCount == 0 ? 0.0 : BigDecimal.valueOf(flickerOverDay * 1.0 / flickerCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
overAreaLimitVO.setNegativeOverDayBiLi(iNegCount == 0?0.0:BigDecimal.valueOf(iNegOverDay*1.0/iNegCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setNegativeOverDayBiLi(iNegCount == 0 ? 0.0 : BigDecimal.valueOf(iNegOverDay * 1.0 / iNegCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
overAreaLimitVO.setHarmonicVoltageOverDayBiLi(uharmCount == 0?0.0:BigDecimal.valueOf(uharmOverDay*1.0/uharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setHarmonicVoltageOverDayBiLi(uharmCount == 0 ? 0.0 : BigDecimal.valueOf(uharmOverDay * 1.0 / uharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
overAreaLimitVO.setHarmonicCurrentOverDayBiLi(iharmCount == 0?0.0:BigDecimal.valueOf(iharmOverDay*1.0/iharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setHarmonicCurrentOverDayBiLi(iharmCount == 0 ? 0.0 : BigDecimal.valueOf(iharmOverDay * 1.0 / iharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
overAreaLimitVO.setInterHarmonicOverDayBiLi(inuharmCount == 0?0.0:BigDecimal.valueOf(inuharmOverDay*1.0/inuharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
overAreaLimitVO.setInterHarmonicOverDayBiLi(inuharmCount == 0 ? 0.0 : BigDecimal.valueOf(inuharmOverDay * 1.0 / inuharmCount).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||||
}
|
}
|
||||||
return overAreaLimitVO;
|
return overAreaLimitVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 功能描述: 处理区域在线监测点数、超标监测点数
|
* 功能描述: 处理区域在线监测点数、超标监测点数
|
||||||
|
*
|
||||||
* @param list 集合
|
* @param list 集合
|
||||||
* @return
|
* @return
|
||||||
* @author xy
|
* @author xy
|
||||||
* @date 2022/2/25 15:05
|
* @date 2022/2/25 15:05
|
||||||
*/
|
*/
|
||||||
private List<?> getAllData(List<String> list, String startTime, String endTime, String databaseName){
|
private List<?> getAllData(List<String> list, String startTime, String endTime, String databaseName) {
|
||||||
List<?> result = new ArrayList<>();
|
List<?> result = new ArrayList<>();
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
|
||||||
StringBuilder stringBuilder1 = new StringBuilder();
|
|
||||||
stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and (");
|
|
||||||
for (int i=0;i<list.size();i++){
|
|
||||||
if (list.size() - i != 1){
|
|
||||||
stringBuilder.append(Param.LINE_ID + "='").append(list.get(i)).append("' or ");
|
|
||||||
} else {
|
|
||||||
stringBuilder.append(Param.LINE_ID + "='").append(list.get(i)).append("')");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stringBuilder.append(" group by line_id tz('Asia/Shanghai')");
|
|
||||||
stringBuilder1.append("sum(freq_dev_overtime) AS freq_dev_overtime,sum(voltage_dev_overtime) AS voltage_dev_overtime,sum(ubalance_overtime) AS ubalance_overtime,sum(flicker_overtime) AS flicker_overtime,sum(i_neg_overtime) AS i_neg_overtime,");
|
|
||||||
stringBuilder1.append("sum(uaberrance_overtime)+");
|
|
||||||
for (int i = 2; i <= 25; i++) {
|
|
||||||
if (i==25){
|
|
||||||
stringBuilder1.append("sum(uharm_").append(i).append("_overtime) AS ").append("uharm_2").append("_overtime,");
|
|
||||||
} else {
|
|
||||||
stringBuilder1.append("sum(uharm_").append(i).append("_overtime)+");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (int i = 2; i <= 25; i++) {
|
|
||||||
if (i==25){
|
|
||||||
stringBuilder1.append("sum(iharm_").append(i).append("_overtime) AS ").append("iharm_2").append("_overtime,");
|
|
||||||
} else {
|
|
||||||
stringBuilder1.append("sum(iharm_").append(i).append("_overtime)+");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (int i = 1; i <= 16; i++) {
|
|
||||||
if (i==16){
|
|
||||||
stringBuilder1.append("sum(inuharm_").append(i).append("_overtime) AS ").append("inuharm_1").append("_overtime");
|
|
||||||
} else {
|
|
||||||
stringBuilder1.append("sum(inuharm_").append(i).append("_overtime)+");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String sql = "select "+stringBuilder1+" from "+databaseName+" where " + stringBuilder;
|
|
||||||
QueryResult sqlResult = influxDbUtils.query(sql);
|
|
||||||
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
|
|
||||||
switch (databaseName) {
|
switch (databaseName) {
|
||||||
case Param.LIMIT_TARGET:
|
case Param.LIMIT_TARGET:
|
||||||
result = resultMapper.toPOJO(sqlResult,LimitTarget.class);
|
result = targetMapper.getSumTargetList(list, startTime, endTime);
|
||||||
break;
|
break;
|
||||||
case Param.LIMIT_RATE:
|
case Param.LIMIT_RATE:
|
||||||
result = resultMapper.toPOJO(sqlResult,LimitRate.class);
|
result = rateDMapper.getSumPassRateList(list, startTime, endTime);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -797,29 +781,16 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<EventDetail> getEventDetail(List<String> list, String startTime, String endTime){
|
public List<com.njcn.event.pojo.po.EventDetail> getEventDetail(List<String> list, String startTime, String endTime) {
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
return eventDetailFeignClient.getEventDetail(list, startTime, endTime).getData();
|
||||||
stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and (");
|
|
||||||
for (int i=0;i<list.size();i++){
|
|
||||||
if (list.size() - i != 1){
|
|
||||||
stringBuilder.append(Param.LINE_ID + "='").append(list.get(i)).append("' or ");
|
|
||||||
} else {
|
|
||||||
stringBuilder.append(Param.LINE_ID + "='").append(list.get(i)).append("')");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stringBuilder.append(" group by line_id tz('Asia/Shanghai')");
|
|
||||||
String sql = "select * from pqs_eventdetail where " + stringBuilder;
|
|
||||||
QueryResult sqlResult = influxDbUtils.query(sql);
|
|
||||||
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
|
|
||||||
return resultMapper.toPOJO(sqlResult, EventDetail.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<LimitTarget> getOverDays(List<String> list, String startTime, String endTime){
|
public List<LimitTarget> getOverDays(List<String> list, String startTime, String endTime) {
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
StringBuilder stringBuilder1 = new StringBuilder();
|
StringBuilder stringBuilder1 = new StringBuilder();
|
||||||
stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and (");
|
stringBuilder.append(Param.TIME + " >= '").append(startTime).append("' and ").append(Param.TIME).append(" <= '").append(endTime).append("' and (");
|
||||||
for (int i=0;i<list.size();i++){
|
for (int i = 0; i < list.size(); i++) {
|
||||||
if (list.size() - i != 1){
|
if (list.size() - i != 1) {
|
||||||
stringBuilder.append(Param.LINE_ID + "='").append(list.get(i)).append("' or ");
|
stringBuilder.append(Param.LINE_ID + "='").append(list.get(i)).append("' or ");
|
||||||
} else {
|
} else {
|
||||||
stringBuilder.append(Param.LINE_ID + "='").append(list.get(i)).append("')");
|
stringBuilder.append(Param.LINE_ID + "='").append(list.get(i)).append("')");
|
||||||
@@ -828,21 +799,21 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
stringBuilder.append(" group by line_id tz('Asia/Shanghai')");
|
stringBuilder.append(" group by line_id tz('Asia/Shanghai')");
|
||||||
stringBuilder1.append("freq_dev_overtime AS freq_dev_overtime,voltage_dev_overtime AS voltage_dev_overtime,ubalance_overtime AS ubalance_overtime,flicker_overtime AS flicker_overtime,i_neg_overtime AS i_neg_overtime,uaberrance_overtime AS uaberrance_overtime,");
|
stringBuilder1.append("freq_dev_overtime AS freq_dev_overtime,voltage_dev_overtime AS voltage_dev_overtime,ubalance_overtime AS ubalance_overtime,flicker_overtime AS flicker_overtime,i_neg_overtime AS i_neg_overtime,uaberrance_overtime AS uaberrance_overtime,");
|
||||||
for (int i = 2; i <= 25; i++) {
|
for (int i = 2; i <= 25; i++) {
|
||||||
if (i==25){
|
if (i == 25) {
|
||||||
stringBuilder1.append("uharm_").append(i).append("_overtime AS uharm_all_overtime,");
|
stringBuilder1.append("uharm_").append(i).append("_overtime AS uharm_all_overtime,");
|
||||||
} else {
|
} else {
|
||||||
stringBuilder1.append("uharm_").append(i).append("_overtime+");
|
stringBuilder1.append("uharm_").append(i).append("_overtime+");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 2; i <= 25; i++) {
|
for (int i = 2; i <= 25; i++) {
|
||||||
if (i==25){
|
if (i == 25) {
|
||||||
stringBuilder1.append("iharm_").append(i).append("_overtime AS iharm_all_overtime,");
|
stringBuilder1.append("iharm_").append(i).append("_overtime AS iharm_all_overtime,");
|
||||||
} else {
|
} else {
|
||||||
stringBuilder1.append("iharm_").append(i).append("_overtime+");
|
stringBuilder1.append("iharm_").append(i).append("_overtime+");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 1; i <= 16; i++) {
|
for (int i = 1; i <= 16; i++) {
|
||||||
if (i==16){
|
if (i == 16) {
|
||||||
stringBuilder1.append("inuharm_").append(i).append("_overtime AS inuharm_all_overtime,");
|
stringBuilder1.append("inuharm_").append(i).append("_overtime AS inuharm_all_overtime,");
|
||||||
} else {
|
} else {
|
||||||
stringBuilder1.append("inuharm_").append(i).append("_overtime+");
|
stringBuilder1.append("inuharm_").append(i).append("_overtime+");
|
||||||
@@ -850,8 +821,8 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
}
|
}
|
||||||
stringBuilder1.append("uharm_3_overtime,uharm_5_overtime,uharm_7_overtime,uharm_11_overtime,uharm_13_overtime,uharm_23_overtime,uharm_25_overtime,");
|
stringBuilder1.append("uharm_3_overtime,uharm_5_overtime,uharm_7_overtime,uharm_11_overtime,uharm_13_overtime,uharm_23_overtime,uharm_25_overtime,");
|
||||||
for (int i = 2; i <= 25; i++) {
|
for (int i = 2; i <= 25; i++) {
|
||||||
if (i!=3 && i!=5 && i!=7 && i!=11 && i!=13 && i!=23 && i!=25){
|
if (i != 3 && i != 5 && i != 7 && i != 11 && i != 13 && i != 23 && i != 25) {
|
||||||
if (i==24){
|
if (i == 24) {
|
||||||
stringBuilder1.append("uharm_").append(i).append("_overtime AS uOtherTimes,");
|
stringBuilder1.append("uharm_").append(i).append("_overtime AS uOtherTimes,");
|
||||||
} else {
|
} else {
|
||||||
stringBuilder1.append("uharm_").append(i).append("_overtime+");
|
stringBuilder1.append("uharm_").append(i).append("_overtime+");
|
||||||
@@ -860,15 +831,15 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
}
|
}
|
||||||
stringBuilder1.append("iharm_3_overtime,iharm_5_overtime,iharm_7_overtime,iharm_11_overtime,iharm_13_overtime,iharm_23_overtime,iharm_25_overtime,");
|
stringBuilder1.append("iharm_3_overtime,iharm_5_overtime,iharm_7_overtime,iharm_11_overtime,iharm_13_overtime,iharm_23_overtime,iharm_25_overtime,");
|
||||||
for (int i = 2; i <= 25; i++) {
|
for (int i = 2; i <= 25; i++) {
|
||||||
if (i!=3 && i!=5 && i!=7 && i!=11 && i!=13 && i!=23 && i!=25){
|
if (i != 3 && i != 5 && i != 7 && i != 11 && i != 13 && i != 23 && i != 25) {
|
||||||
if (i==24){
|
if (i == 24) {
|
||||||
stringBuilder1.append("iharm_").append(i).append("_overtime AS iOtherTimes");
|
stringBuilder1.append("iharm_").append(i).append("_overtime AS iOtherTimes");
|
||||||
} else {
|
} else {
|
||||||
stringBuilder1.append("iharm_").append(i).append("_overtime+");
|
stringBuilder1.append("iharm_").append(i).append("_overtime+");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String sql = "select "+stringBuilder1+" from limit_target where " + stringBuilder;
|
String sql = "select " + stringBuilder1 + " from limit_target where " + stringBuilder;
|
||||||
QueryResult sqlResult = influxDbUtils.query(sql);
|
QueryResult sqlResult = influxDbUtils.query(sql);
|
||||||
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
|
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
|
||||||
return resultMapper.toPOJO(sqlResult, LimitTarget.class);
|
return resultMapper.toPOJO(sqlResult, LimitTarget.class);
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
);
|
);
|
||||||
if(CollUtil.isNotEmpty(limitRates)){
|
if(CollUtil.isNotEmpty(limitRates)){
|
||||||
limitRates.forEach(list ->{
|
limitRates.forEach(list ->{
|
||||||
LimitTarget limitRatePO = BeanUtil.copyProperties(list,LimitTarget.class);
|
LimitTarget limitRatePO = BeanUtil.copyProperties(list, LimitTarget.class);
|
||||||
limitRatePO.setTime(list.getTime().toInstant());
|
limitRatePO.setTime(list.getTime().toInstant());
|
||||||
limitRatePO.setLineId(list.getLineId());
|
limitRatePO.setLineId(list.getLineId());
|
||||||
limitRatePO.setPhasicType(list.getPhasicType());
|
limitRatePO.setPhasicType(list.getPhasicType());
|
||||||
@@ -362,7 +362,30 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
limitRatePO.setUHarm23OverTime(list.getUharm23Overtime());
|
limitRatePO.setUHarm23OverTime(list.getUharm23Overtime());
|
||||||
limitRatePO.setUHarm24OverTime(list.getUharm24Overtime());
|
limitRatePO.setUHarm24OverTime(list.getUharm24Overtime());
|
||||||
limitRatePO.setUHarm25OverTime(list.getUharm25Overtime());
|
limitRatePO.setUHarm25OverTime(list.getUharm25Overtime());
|
||||||
|
|
||||||
|
limitRatePO.setInuHarm1OverTime(list.getInuharm1Overtime());
|
||||||
|
limitRatePO.setInuHarm2OverTime(list.getInuharm2Overtime());
|
||||||
|
limitRatePO.setInuHarm3OverTime(list.getInuharm3Overtime());
|
||||||
|
limitRatePO.setInuHarm4OverTime(list.getInuharm4Overtime());
|
||||||
|
limitRatePO.setInuHarm5OverTime(list.getInuharm5Overtime());
|
||||||
|
limitRatePO.setInuHarm6OverTime(list.getInuharm6Overtime());
|
||||||
|
limitRatePO.setInuHarm7OverTime(list.getInuharm7Overtime());
|
||||||
|
limitRatePO.setInuHarm8OverTime(list.getInuharm8Overtime());
|
||||||
|
limitRatePO.setInuHarm9OverTime(list.getInuharm9Overtime());
|
||||||
|
limitRatePO.setInuHarm10OverTime(list.getInuharm10Overtime());
|
||||||
|
limitRatePO.setInuHarm11OverTime(list.getInuharm11Overtime());
|
||||||
|
limitRatePO.setInuHarm12OverTime(list.getInuharm12Overtime());
|
||||||
|
limitRatePO.setInuHarm13OverTime(list.getInuharm13Overtime());
|
||||||
|
limitRatePO.setInuHarm14OverTime(list.getInuharm14Overtime());
|
||||||
|
limitRatePO.setInuHarm15OverTime(list.getInuharm15Overtime());
|
||||||
|
limitRatePO.setInuHarm16OverTime(list.getInuharm16Overtime());
|
||||||
|
|
||||||
|
limitRatePO.setFlickerOverTime(list.getFlickerOvertime());
|
||||||
|
limitRatePO.setFlickerAllTime(list.getFlickerAllTime());
|
||||||
|
limitRatePO.setFreqDevOverTime(list.getFreqDevOvertime());
|
||||||
limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime());
|
limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime());
|
||||||
|
limitRatePO.setUAberranceOverTime(list.getUaberranceOvertime());
|
||||||
|
limitRatePO.setINegOverTime(list.getINegOvertime());
|
||||||
listInfo.add(limitRatePO);
|
listInfo.add(limitRatePO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -625,6 +648,31 @@ public class HarmonicServiceImpl implements IHarmonicService {
|
|||||||
limitRatePO.setUHarm24OverTime(list.getUharm24Overtime());
|
limitRatePO.setUHarm24OverTime(list.getUharm24Overtime());
|
||||||
limitRatePO.setUHarm25OverTime(list.getUharm25Overtime());
|
limitRatePO.setUHarm25OverTime(list.getUharm25Overtime());
|
||||||
limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime());
|
limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime());
|
||||||
|
|
||||||
|
limitRatePO.setInuHarm1OverTime(list.getInuharm1Overtime());
|
||||||
|
limitRatePO.setInuHarm2OverTime(list.getInuharm2Overtime());
|
||||||
|
limitRatePO.setInuHarm3OverTime(list.getInuharm3Overtime());
|
||||||
|
limitRatePO.setInuHarm4OverTime(list.getInuharm4Overtime());
|
||||||
|
limitRatePO.setInuHarm5OverTime(list.getInuharm5Overtime());
|
||||||
|
limitRatePO.setInuHarm6OverTime(list.getInuharm6Overtime());
|
||||||
|
limitRatePO.setInuHarm7OverTime(list.getInuharm7Overtime());
|
||||||
|
limitRatePO.setInuHarm8OverTime(list.getInuharm8Overtime());
|
||||||
|
limitRatePO.setInuHarm9OverTime(list.getInuharm9Overtime());
|
||||||
|
limitRatePO.setInuHarm10OverTime(list.getInuharm10Overtime());
|
||||||
|
limitRatePO.setInuHarm11OverTime(list.getInuharm11Overtime());
|
||||||
|
limitRatePO.setInuHarm12OverTime(list.getInuharm12Overtime());
|
||||||
|
limitRatePO.setInuHarm13OverTime(list.getInuharm13Overtime());
|
||||||
|
limitRatePO.setInuHarm14OverTime(list.getInuharm14Overtime());
|
||||||
|
limitRatePO.setInuHarm15OverTime(list.getInuharm15Overtime());
|
||||||
|
limitRatePO.setInuHarm16OverTime(list.getInuharm16Overtime());
|
||||||
|
|
||||||
|
limitRatePO.setFlickerOverTime(list.getFlickerOvertime());
|
||||||
|
limitRatePO.setFlickerAllTime(list.getFlickerAllTime());
|
||||||
|
limitRatePO.setFreqDevOverTime(list.getFreqDevOvertime());
|
||||||
|
limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime());
|
||||||
|
limitRatePO.setUAberranceOverTime(list.getUaberranceOvertime());
|
||||||
|
limitRatePO.setINegOverTime(list.getINegOvertime());
|
||||||
|
|
||||||
listInfo.add(limitRatePO);
|
listInfo.add(limitRatePO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,9 @@ public enum DicDataEnum {
|
|||||||
*/
|
*/
|
||||||
COMM_ERR("通讯异常", "Comm_Err"),
|
COMM_ERR("通讯异常", "Comm_Err"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 暂态统计指标
|
||||||
|
*/
|
||||||
TOTAL_INDICATORS("总暂态指标", "Total_Indicators"),
|
TOTAL_INDICATORS("总暂态指标", "Total_Indicators"),
|
||||||
VOLTAGE_DIP("电压暂降", "Voltage_Dip"),
|
VOLTAGE_DIP("电压暂降", "Voltage_Dip"),
|
||||||
VOLTAGE_RISE("电压暂升", "Voltage_Rise"),
|
VOLTAGE_RISE("电压暂升", "Voltage_Rise"),
|
||||||
|
|||||||
Reference in New Issue
Block a user