谐波监测-详细分析:告警变电站统计 和 区域稳态指标超标明细代码优化

This commit is contained in:
wr
2023-04-24 20:31:16 +08:00
parent f32790abba
commit 8a42cf07d6
8 changed files with 482 additions and 240 deletions

View File

@@ -80,34 +80,41 @@ public class EventDetailServiceImpl extends ServiceImpl<EventDetailMapper, RmpEv
@Override
public List<EventDetail> getEventDetail(List<String> lineIndexes, String startTime, String endTime, List<Integer> waveType) {
//组装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 (");
for (int i = 0; i < lineIndexes.size(); i++) {
if (lineIndexes.size() - i != 1) {
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;
List<RmpEventDetailPO> info = this.list(new LambdaQueryWrapper<RmpEventDetailPO>()
.ne(RmpEventDetailPO::getMeasurementPointId, lineIndexes)
.ge(StrUtil.isNotBlank(startTime), RmpEventDetailPO::getStartTime,DateUtil.beginOfDay(DateUtil.parse(startTime)))
.le(StrUtil.isNotBlank(endTime), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(endTime)))
);
return BeanUtil.copyToList(info, EventDetail.class);
//结果集
QueryResult result = influxDbUtils.query(sql);
//结果集映射到对象中
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
List<EventDetail> eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class);
return eventDetailList;
// //组装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 (");
// for (int i = 0; i < lineIndexes.size(); i++) {
// if (lineIndexes.size() - i != 1) {
// 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

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.vo.MonitorOverLimitVO;
import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
@@ -40,4 +41,16 @@ public interface RStatLimitRateDMapper extends BaseMapper<RStatLimitRateDPO> {
@Param("ids") List<String> lineIndexes,
@Param("statTime") String searchBeginTime,
@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);
}

View File

@@ -15,4 +15,15 @@ public interface RStatLimitTargetMapper extends BaseMapper<RStatLimitTargetDPO>
Page<MonitorOverLimitVO> getSumLimitTargetPage(Page<MonitorOverLimitVO>p,
@Param("ids") List<String> lineIndexes,
@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);
}

View File

@@ -210,4 +210,99 @@
GROUP BY
`time`
</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 &lt;= #{endTime}
</if>
</where>
GROUP BY
`my_index`
</select>
</mapper>

View File

@@ -68,4 +68,99 @@
AND time_id BETWEEN #{startTime} AND #{endTime}
GROUP BY my_index
</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 &lt;= #{endTime}
</if>
</where>
GROUP BY
`my_index`
</select>
</mapper>

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
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.PollutionParamDTO;
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.mapper.RStatLimitRateDMapper;
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.substation.SubstationExcel;
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.day.RStatLimitRateDPO;
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.influxdb.utils.InfluxDbUtils;
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 lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -78,6 +82,8 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
private final RStatLimitRateDMapper rateDMapper;
private final RStatLimitTargetMapper targetMapper;
private final EventDetailFeignClient eventDetailFeignClient;
private final DicDataFeignClient dicDataFeignClient;
@Override
public Page<OverAreaLimitVO> getAreaData(OverAreaVO param) {
@@ -116,13 +122,17 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
@Override
@SuppressWarnings("unchecked")
public Page<WarningSubstationVO> getWarningSubstation(OverAreaVO param) {
//获取暂态统计指标
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
Page<WarningSubstationVO> page = new Page<>();
page.setSize(param.getPageSize());
page.setCurrent(param.getPageNum());
List<String> line = new ArrayList<>(), subInfo = new ArrayList<>();
List<WarningSubstationDTO> substationDTOList = new ArrayList<>();
Map<String,List<LimitRate>> map = new HashMap<>();
Map<String,List<EventDetail>> map2 = new HashMap<>();
Map<String, List<RStatLimitRateDPO>> map = new HashMap<>();
Map<String, List<com.njcn.event.pojo.po.EventDetail>> map2 = new HashMap<>();
param.setServerName(generalInfo.getMicroServiceName());
List<WarningSubstationVO> list = new ArrayList<>();
List<GeneralDeviceDTO> subList = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData();
@@ -138,13 +148,13 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
});
if (!CollectionUtils.isEmpty(line)) {
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)) {
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)) {
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) {
@@ -161,59 +171,68 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
for (String item2 : lineList) {
//谐波统计
if (!CollectionUtils.isEmpty(map.get(item2))) {
LimitRate limitRate = map.get(item2).get(0);
RStatLimitRateDPO limitRate = map.get(item2).get(0);
if (!Objects.isNull(limitRate)) {
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++;
}
if (limitRate.getFreqDevOverTime() > 0){
if (limitRate.getFreqDevOvertime() > 0) {
freqCount++;
freqCounts = freqCounts + limitRate.getFreqDevOverTime();
freqCounts = freqCounts + limitRate.getFreqDevOvertime();
}
if (limitRate.getVoltageDevOverTime() > 0){
if (limitRate.getVoltageDevOvertime() > 0) {
voltageCount++;
voltageCounts = voltageCounts + limitRate.getVoltageDevOverTime();
voltageCounts = voltageCounts + limitRate.getVoltageDevOvertime();
}
if (limitRate.getUHarm2OverTime() > 0){
if (limitRate.getUharm2Overtime() > 0) {
uharmCount++;
uharmCounts = uharmCounts + limitRate.getUHarm2OverTime();
uharmCounts = uharmCounts + limitRate.getUharm2Overtime();
}
if (limitRate.getIHarm2OverTime() > 0){
if (limitRate.getIharm2Overtime() > 0) {
iharmCount++;
iharmCounts = iharmCounts + limitRate.getIHarm2OverTime();
iharmCounts = iharmCounts + limitRate.getIharm2Overtime();
}
if (limitRate.getUBalanceOverTime() > 0){
if (limitRate.getUbalanceOvertime() > 0) {
ubalanceCount++;
ubalanceCounts = ubalanceCounts + limitRate.getUBalanceOverTime();
ubalanceCounts = ubalanceCounts + limitRate.getUbalanceOvertime();
}
if (limitRate.getFlickerOverTime() > 0){
if (limitRate.getFlickerOvertime() > 0) {
flickerCount++;
flickerCounts = flickerCounts + limitRate.getFlickerOverTime();
flickerCounts = flickerCounts + limitRate.getFlickerOvertime();
}
if (limitRate.getInuHarm1OverTime() > 0){
if (limitRate.getInuharm1Overtime() > 0) {
inuharmCount++;
inuharmCounts = inuharmCounts + limitRate.getInuHarm1OverTime();
inuharmCounts = inuharmCounts + limitRate.getInuharm1Overtime();
}
if (limitRate.getINegOverTime() > 0){
if (limitRate.getINegOvertime() > 0) {
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))) {
List<EventDetail> eventDetailList = map2.get(item2);
List<com.njcn.event.pojo.po.EventDetail> eventDetailList = map2.get(item2);
if (!CollectionUtils.isEmpty(eventDetailList)) {
for (EventDetail item3 : eventDetailList) {
if (item3.getWaveType() == 1){
for (com.njcn.event.pojo.po.EventDetail item3 : eventDetailList) {
String eventType = item3.getEventType();
List<String> code = eventStatis.stream().filter(x -> x.getId().equals(eventType))
.map(DictData::getCode).collect(Collectors.toList());
if (CollUtil.isNotEmpty(code)) {
if (DicDataEnum.VOLTAGE_DIP.getCode().equals(code.get(0))) {
eventDowns++;
} else if (item3.getWaveType() == 2){
}
if (DicDataEnum.VOLTAGE_RISE.getCode().equals(code.get(0))) {
eventUps++;
} else if (item3.getWaveType() == 3){
}
if (DicDataEnum.SHORT_INTERRUPTIONS.getCode().equals(code.get(0))) {
eventInterrupts++;
}
}
}
}
}
@@ -619,6 +638,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
/**
* 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比
*
* @param list 集合
* type 类型
* @return
@@ -631,37 +651,37 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
int freqOverDay = 0, voltageOverDay = 0, ubalanceOverDay = 0, flickerOverDay = 0, iNegOverDay = 0, uharmOverDay = 0, iharmOverDay = 0, inuharmOverDay = 0;
OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO();
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)) {
onlineCount = data.size();
//在线监测点个数
overAreaLimitVO.setOnlineMonitorNumber(onlineCount);
for (LimitTarget 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) {
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) {
overLineCount++;
}
if (item.getFreqDevOverTime() > 0){
if (item.getFreqDevOvertime() > 0) {
freqCount++;
}
if (item.getVoltageDevOverTime() > 0){
if (item.getVoltageDevOvertime() > 0) {
voltageCount++;
}
if (item.getUBalanceOverTime() > 0){
if (item.getUbalanceOvertime() > 0) {
ubalanceCount++;
}
if (item.getFlickerOverTime() > 0){
if (item.getFlickerOvertime() > 0) {
flickerCount++;
}
if (item.getINegOverTime() > 0){
if (item.getINegOvertime() > 0) {
iNegCount++;
}
if (item.getUHarm2OverTime() > 0){
if (item.getUharm2Overtime() > 0) {
uharmCount++;
}
if (item.getIHarm2OverTime() > 0){
if (item.getIharm2Overtime() > 0) {
iharmCount++;
}
if (item.getInuHarm1OverTime() > 0){
if (item.getInuharm1Overtime() > 0) {
inuharmCount++;
}
}
@@ -740,6 +760,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
/**
* 功能描述: 处理区域在线监测点数、超标监测点数
*
* @param list 集合
* @return
* @author xy
@@ -747,49 +768,12 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
*/
private List<?> getAllData(List<String> list, String startTime, String endTime, String databaseName) {
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) {
case Param.LIMIT_TARGET:
result = resultMapper.toPOJO(sqlResult,LimitTarget.class);
result = targetMapper.getSumTargetList(list, startTime, endTime);
break;
case Param.LIMIT_RATE:
result = resultMapper.toPOJO(sqlResult,LimitRate.class);
result = rateDMapper.getSumPassRateList(list, startTime, endTime);
break;
default:
break;
@@ -797,21 +781,8 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
return result;
}
public List<EventDetail> getEventDetail(List<String> list, String startTime, String endTime){
StringBuilder stringBuilder = 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')");
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<com.njcn.event.pojo.po.EventDetail> getEventDetail(List<String> list, String startTime, String endTime) {
return eventDetailFeignClient.getEventDetail(list, startTime, endTime).getData();
}
public List<LimitTarget> getOverDays(List<String> list, String startTime, String endTime) {

View File

@@ -362,7 +362,30 @@ public class HarmonicServiceImpl implements IHarmonicService {
limitRatePO.setUHarm23OverTime(list.getUharm23Overtime());
limitRatePO.setUHarm24OverTime(list.getUharm24Overtime());
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.setUAberranceOverTime(list.getUaberranceOvertime());
limitRatePO.setINegOverTime(list.getINegOvertime());
listInfo.add(limitRatePO);
});
}
@@ -625,6 +648,31 @@ public class HarmonicServiceImpl implements IHarmonicService {
limitRatePO.setUHarm24OverTime(list.getUharm24Overtime());
limitRatePO.setUHarm25OverTime(list.getUharm25Overtime());
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);
});
}

View File

@@ -50,7 +50,9 @@ public enum DicDataEnum {
*/
COMM_ERR("通讯异常", "Comm_Err"),
/**
* 暂态统计指标
*/
TOTAL_INDICATORS("总暂态指标", "Total_Indicators"),
VOLTAGE_DIP("电压暂降", "Voltage_Dip"),
VOLTAGE_RISE("电压暂升", "Voltage_Rise"),