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

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,31 +82,33 @@ 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) {
public Page<OverAreaLimitVO> getAreaData(OverAreaVO param) {
Page<OverAreaLimitVO> page = new Page<>();
page.setSize(param.getPageSize());
page.setCurrent(param.getPageNum());
List<OverAreaLimitVO> list = new ArrayList<>();
param.setServerName(generalInfo.getMicroServiceName());
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
if (!CollectionUtils.isEmpty(deptList)){
if (!CollectionUtils.isEmpty(deptList)) {
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);
List<List<GeneralDeviceDTO>> pageList = Lists.partition(deptList,param.getPageSize());
List<GeneralDeviceDTO> temList = pageList.get(param.getPageNum()-1);
temList.forEach(item->{
List<List<GeneralDeviceDTO>> pageList = Lists.partition(deptList, param.getPageSize());
List<GeneralDeviceDTO> temList = pageList.get(param.getPageNum() - 1);
temList.forEach(item -> {
OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO();
if (!CollectionUtils.isEmpty(item.getLineIndexes())){
List<LimitTarget> limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(),param.getSearchBeginTime(),param.getSearchEndTime());
overAreaLimitVO = handleAreaData(limitTargetList,item.getLineIndexes(),param);
if (!CollectionUtils.isEmpty(item.getLineIndexes())) {
List<LimitTarget> limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime());
overAreaLimitVO = handleAreaData(limitTargetList, item.getLineIndexes(), param);
}
overAreaLimitVO.setName(item.getName());
list.add(overAreaLimitVO);
});
if (!CollectionUtils.isEmpty(list)){
if (!CollectionUtils.isEmpty(list)) {
List<OverAreaLimitVO> recordList = new ArrayList<>();
//默认 根据在线监测点个数 倒叙排序
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
@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<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();
if (!CollectionUtils.isEmpty(subList)){
if (!CollectionUtils.isEmpty(subList)) {
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);
List<List<GeneralDeviceDTO>> pageList = Lists.partition(subList,param.getPageSize());
List<GeneralDeviceDTO> temList = pageList.get(param.getPageNum()-1);
temList.forEach(item->{
List<List<GeneralDeviceDTO>> pageList = Lists.partition(subList, param.getPageSize());
List<GeneralDeviceDTO> temList = pageList.get(param.getPageNum() - 1);
temList.forEach(item -> {
line.addAll(item.getLineIndexes());
subInfo.add(item.getIndex());
});
if (!CollectionUtils.isEmpty(line)){
substationDTOList = lineFeignClient.getWarningSub(subInfo).getData();
List<LimitRate> limitRateList = (List<LimitRate>)getAllData(line,param.getSearchBeginTime(),param.getSearchEndTime(),Param.LIMIT_RATE);
if (!CollectionUtils.isEmpty(limitRateList)){
map = limitRateList.stream().collect(Collectors.groupingBy(LimitRate::getLineId));
if (!CollectionUtils.isEmpty(line)) {
substationDTOList = lineFeignClient.getWarningSub(subInfo).getData();
List<RStatLimitRateDPO> limitRateList = (List<RStatLimitRateDPO>) getAllData(line, param.getSearchBeginTime(), param.getSearchEndTime(), Param.LIMIT_RATE);
if (!CollectionUtils.isEmpty(limitRateList)) {
map = limitRateList.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId));
}
List<EventDetail> eventDetailList = getEventDetail(line,param.getSearchBeginTime(),param.getSearchEndTime());
if (!CollectionUtils.isEmpty(eventDetailList)){
map2 = eventDetailList.stream().collect(Collectors.groupingBy(EventDetail::getLineId));
List<com.njcn.event.pojo.po.EventDetail> eventDetailList = getEventDetail(line, param.getSearchBeginTime(), param.getSearchEndTime());
if (!CollectionUtils.isEmpty(eventDetailList)) {
map2 = eventDetailList.stream().collect(Collectors.groupingBy(com.njcn.event.pojo.po.EventDetail::getLineId));
}
}
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 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 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 eventUp = 0, eventDown = 0, eventInterrupt = 0, eventUps = 0, eventDowns = 0, eventInterrupts = 0;
WarningSubstationVO warningSubstationVO = new WarningSubstationVO();
//电站id
warningSubstationVO.setId(item.getIndex());
//电站名称
warningSubstationVO.setPlantName(item.getName());
List<String> lineList = item.getLineIndexes();
if (!CollectionUtils.isEmpty(lineList)){
if (!CollectionUtils.isEmpty(lineList)) {
for (String item2 : lineList) {
//谐波统计
if (!CollectionUtils.isEmpty(map.get(item2))){
LimitRate limitRate = map.get(item2).get(0);
if (!Objects.isNull(limitRate)){
if (!CollectionUtils.isEmpty(map.get(item2))) {
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);
if (!CollectionUtils.isEmpty(eventDetailList)){
for (EventDetail item3 : eventDetailList) {
if (item3.getWaveType() == 1){
eventDowns++;
} else if (item3.getWaveType() == 2){
eventUps++;
} else if (item3.getWaveType() == 3){
eventInterrupts++;
if (!CollectionUtils.isEmpty(map2.get(item2))) {
List<com.njcn.event.pojo.po.EventDetail> eventDetailList = map2.get(item2);
if (!CollectionUtils.isEmpty(eventDetailList)) {
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++;
}
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++;
}
if (eventUps > 0){
if (eventUps > 0) {
eventUp++;
}
if (eventInterrupts > 0){
if (eventInterrupts > 0) {
eventInterrupt++;
}
}
}
//在线监测点数量(个)
warningSubstationVO.setOnlineMonitorCounts(onlineMonitorCount);
if (onlineMonitorCount != 0){
if (onlineMonitorCount != 0) {
//告警监测点数量(个)
warningSubstationVO.setAlertMonitorCounts(alertMonitorCount);
//告警次数
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);
}
}
if (!CollectionUtils.isEmpty(list)){
if (!CollectionUtils.isEmpty(list)) {
for (WarningSubstationVO item1 : list) {
for (WarningSubstationDTO item2 : substationDTOList) {
if (Objects.equals(item1.getId(),item2.getId())){
if (Objects.equals(item1.getId(), item2.getId())) {
item1.setProvinceCompany(item2.getProvince());
item1.setCityCompany(item2.getCity());
item1.setPlantVoltageLevel(item2.getScale());
@@ -291,12 +310,12 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
List<String> lineList = new ArrayList<>();
List<GeneralDeviceDTO> deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
if (!CollectionUtils.isEmpty(deptList)) {
deptList.forEach(item->{
deptList.forEach(item -> {
lineList.addAll(item.getLineIndexes());
});
}
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())));
List<MonitorOverLimitVO> pageRecords = page.getRecords();
if (CollectionUtils.isEmpty(pageRecords)) {
@@ -309,12 +328,12 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
pollutionParamDTO.setLineList(list);
List<OverLimitLineDTO> overLimitLineList = lineFeignClient.getOverLimitLineInfo(pollutionParamDTO).getData();
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()))));
Map<String, List<RStatLimitTargetDPO>> rsMap = rStatLimitTargetDPOS.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getLineId));
for (OverLimitLineDTO vo : overLimitLineList) {
MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO();
BeanUtil.copyProperties(vo,monitorOverLimitVO);
BeanUtil.copyProperties(vo, monitorOverLimitVO);
MonitorOverLimitVO source = monMap.get(vo.getId()).get(0);
monitorOverLimitVO.setOverDay(source.getOverDay());
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());
page.setRecords(recordList);
@@ -509,15 +528,15 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
private boolean filterNotQualifiedHarmVolData(RStatLimitTargetDPO t) {
// 电压畸变率+谐波电压含有率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();
if (i > 0){
if (i > 0) {
return true;
}
return false;
}
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();
if (i > 0){
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) {
return true;
}
return false;
@@ -525,14 +544,14 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
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();
if (i > 0){
if (i > 0) {
return true;
}
return false;
}
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 false;
@@ -541,16 +560,16 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
@Override
public String exportArea(OverAreaVO param, String methodDescribe) {
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();
log.error("文件路径" + targetDir);
log.error("文件名" + fileName);
File excel = new File(targetDir, fileName);
List<OverAreaLimitVO> list = getAreaData(param).getRecords();
if (!CollectionUtil.isEmpty(list)) {
list.forEach(item->{
list.forEach(item -> {
AreaExcel areaExcel = new AreaExcel();
BeanUtil.copyProperties(item,areaExcel);
BeanUtil.copyProperties(item, areaExcel);
result.add(areaExcel);
});
}
@@ -561,16 +580,16 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
@Override
public String exportSubstation(OverAreaVO param, String methodDescribe) {
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();
log.error("文件路径" + targetDir);
log.error("文件名" + fileName);
File excel = new File(targetDir, fileName);
List<WarningSubstationVO> list = getWarningSubstation(param).getRecords();
if (!CollectionUtil.isEmpty(list)) {
list.forEach(item->{
list.forEach(item -> {
SubstationExcel substationExcel = new SubstationExcel();
BeanUtil.copyProperties(item,substationExcel);
BeanUtil.copyProperties(item, substationExcel);
result.add(substationExcel);
});
}
@@ -581,32 +600,32 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
@Override
public String exportMonitor(OverAreaVO param, String methodDescribe) {
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();
log.error("文件路径" + targetDir);
log.error("文件名" + fileName);
File excel = new File(targetDir, fileName);
List<MonitorOverLimitVO> list = monitorOverLimitVO(param).getRecords();
if (!CollectionUtil.isEmpty(list)) {
list.forEach(item->{
list.forEach(item -> {
MonitorExcel monitorExcel = new MonitorExcel();
BeanUtil.copyProperties(item,monitorExcel);
BeanUtil.copyProperties(item, monitorExcel);
OverLimitDays overLimitDays = new OverLimitDays();
List<UTimes> list1 = new ArrayList<>();
UTimes uTimes = new UTimes();
BeanUtil.copyProperties(item,uTimes);
BeanUtil.copyProperties(item, uTimes);
list1.add(uTimes);
overLimitDays.setUTimes(list1);
List<ITimes> list2 = new ArrayList<>();
ITimes iTimes = new ITimes();
BeanUtil.copyProperties(item,iTimes);
BeanUtil.copyProperties(item, iTimes);
list2.add(iTimes);
overLimitDays.setITimes(list2);
List<OverLimitDays> list3 = new ArrayList<>();
BeanUtil.copyProperties(item,overLimitDays);
BeanUtil.copyProperties(item, overLimitDays);
list3.add(overLimitDays);
monitorExcel.setOverLimitDays(list3);
result.add(monitorExcel);
@@ -619,177 +638,142 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
/**
* 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比
*
* @param list 集合
* type 类型
* type 类型
* @return
* @author xy
* @date 2022/2/25 15:05
*/
@SuppressWarnings("unchecked")
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 freqOverDay = 0,voltageOverDay = 0, ubalanceOverDay = 0,flickerOverDay = 0,iNegOverDay = 0,uharmOverDay = 0,iharmOverDay = 0,inuharmOverDay = 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;
OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO();
if (!CollectionUtils.isEmpty(list)){
List<LimitTarget> data = (List<LimitTarget>)getAllData(line,param.getSearchBeginTime(),param.getSearchEndTime(),Param.LIMIT_TARGET);
if (!CollectionUtils.isEmpty(list)) {
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++;
}
}
//超标监测点个数
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.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.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.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.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.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.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.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.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()) {
List<LimitTarget> l = map.get(key);
for (LimitTarget pojo : l) {
if (pojo.getFreqDevOverTime() > 0){
if (pojo.getFreqDevOverTime() > 0) {
freqOverDay++;
}
if (pojo.getVoltageDevOverTime() > 0){
if (pojo.getVoltageDevOverTime() > 0) {
voltageOverDay++;
}
if (pojo.getUBalanceOverTime() > 0){
if (pojo.getUBalanceOverTime() > 0) {
ubalanceOverDay++;
}
if (pojo.getFlickerOverTime() > 0){
if (pojo.getFlickerOverTime() > 0) {
flickerOverDay++;
}
if (pojo.getINegOverTime() > 0){
if (pojo.getINegOverTime() > 0) {
iNegOverDay++;
}
if (pojo.getUHarm2OverTime() > 0){
if (pojo.getUHarm2OverTime() > 0) {
uharmOverDay++;
}
if (pojo.getIHarm2OverTime() > 0){
if (pojo.getIHarm2OverTime() > 0) {
iharmOverDay++;
}
if (pojo.getInuHarm1OverTime() > 0){
if (pojo.getInuHarm1OverTime() > 0) {
inuharmOverDay++;
}
}
}
if (onlineCount != 0){
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.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.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.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());
if (onlineCount != 0) {
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.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.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.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());
}
return overAreaLimitVO;
}
/**
* 功能描述: 处理区域在线监测点数、超标监测点数
*
* @param list 集合
* @return
* @author xy
* @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<>();
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,29 +781,16 @@ 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){
public List<LimitTarget> getOverDays(List<String> list, String startTime, String endTime) {
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){
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("')");
@@ -828,21 +799,21 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
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,");
for (int i = 2; i <= 25; i++) {
if (i==25){
if (i == 25) {
stringBuilder1.append("uharm_").append(i).append("_overtime AS uharm_all_overtime,");
} else {
stringBuilder1.append("uharm_").append(i).append("_overtime+");
}
}
for (int i = 2; i <= 25; i++) {
if (i==25){
if (i == 25) {
stringBuilder1.append("iharm_").append(i).append("_overtime AS iharm_all_overtime,");
} else {
stringBuilder1.append("iharm_").append(i).append("_overtime+");
}
}
for (int i = 1; i <= 16; i++) {
if (i==16){
if (i == 16) {
stringBuilder1.append("inuharm_").append(i).append("_overtime AS inuharm_all_overtime,");
} else {
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,");
for (int i = 2; i <= 25; i++) {
if (i!=3 && i!=5 && i!=7 && i!=11 && i!=13 && i!=23 && i!=25){
if (i==24){
if (i != 3 && i != 5 && i != 7 && i != 11 && i != 13 && i != 23 && i != 25) {
if (i == 24) {
stringBuilder1.append("uharm_").append(i).append("_overtime AS uOtherTimes,");
} else {
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,");
for (int i = 2; i <= 25; i++) {
if (i!=3 && i!=5 && i!=7 && i!=11 && i!=13 && i!=23 && i!=25){
if (i==24){
if (i != 3 && i != 5 && i != 7 && i != 11 && i != 13 && i != 23 && i != 25) {
if (i == 24) {
stringBuilder1.append("iharm_").append(i).append("_overtime AS iOtherTimes");
} else {
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);
InfluxDBResultMapper resultMapper = new InfluxDBResultMapper();
return resultMapper.toPOJO(sqlResult, LimitTarget.class);

View File

@@ -303,7 +303,7 @@ public class HarmonicServiceImpl implements IHarmonicService {
);
if(CollUtil.isNotEmpty(limitRates)){
limitRates.forEach(list ->{
LimitTarget limitRatePO = BeanUtil.copyProperties(list,LimitTarget.class);
LimitTarget limitRatePO = BeanUtil.copyProperties(list, LimitTarget.class);
limitRatePO.setTime(list.getTime().toInstant());
limitRatePO.setLineId(list.getLineId());
limitRatePO.setPhasicType(list.getPhasicType());
@@ -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"),