谐波监测-详细分析:告警变电站统计 和 区域稳态指标超标明细代码优化
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 <= #{endTime}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
`my_index`
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -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 <= #{endTime}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
`my_index`
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -50,7 +50,9 @@ public enum DicDataEnum {
|
||||
*/
|
||||
COMM_ERR("通讯异常", "Comm_Err"),
|
||||
|
||||
|
||||
/**
|
||||
* 暂态统计指标
|
||||
*/
|
||||
TOTAL_INDICATORS("总暂态指标", "Total_Indicators"),
|
||||
VOLTAGE_DIP("电压暂降", "Voltage_Dip"),
|
||||
VOLTAGE_RISE("电压暂升", "Voltage_Rise"),
|
||||
|
||||
Reference in New Issue
Block a user