终端在线率,终端完整性开发
This commit is contained in:
@@ -2,6 +2,7 @@ package com.njcn.device.pq.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
|
||||
import com.njcn.device.pq.pojo.vo.LineIntegrityDataVO;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalTree;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@@ -46,4 +47,5 @@ public interface LineIntegrityDataMapper extends BaseMapper<LineIntegrityDataVO>
|
||||
@Param("lineGrade")String lineGrade);
|
||||
|
||||
|
||||
List<AlarmStrategyVO> getAlarmAlgoDescribe(@Param("list") List<AlarmStrategyVO> alarmStrategyVos);
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
msdd.`Name` AS 'manufacturer',
|
||||
pldsdd.`Name` AS 'lineGradeName',
|
||||
pldsdd.`id` AS 'lineGrade',
|
||||
pldsdd.Algo_Describe AS `algoDescribe`,
|
||||
pld.Load_Type AS 'loadType'
|
||||
FROM
|
||||
pq_line AS line
|
||||
@@ -103,5 +104,17 @@
|
||||
and pld.Line_Grade = #{lineGrade}
|
||||
</if>
|
||||
</select>
|
||||
<select id="getAlarmAlgoDescribe" resultType="com.njcn.device.pq.pojo.vo.AlarmStrategyVO">
|
||||
SELECT
|
||||
sdd.id AS id,
|
||||
sdd.Algo_Describe AS algoDescribe,
|
||||
pas.Integrity_Value AS integrityValue
|
||||
FROM sys_dict_data sdd
|
||||
LEFT JOIN pqs_alarm_strategy pas ON pas.Id = sdd.Id
|
||||
WHERE sdd.Id IN
|
||||
<foreach collection="list" item="item" open="(" close=")" separator=",">
|
||||
#{item.id}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
<mapper namespace="com.njcn.device.pq.mapper.RStatIntegrityDMapper">
|
||||
|
||||
<select id="getLineIntegrityRate" resultType="LineDataIntegrity">
|
||||
select line_index lineId,avg(real_time/due_time) integrityData
|
||||
select line_index lineId,
|
||||
avg(real_time/due_time)*100 integrityData,
|
||||
sum(real_time) `real`,
|
||||
sum(due_time) due
|
||||
from r_stat_integrity_d
|
||||
where line_index in
|
||||
<foreach collection="lineIds" item="item" open="(" close=")" separator=",">
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
pdevice.Com_Flag AS comFlag,
|
||||
sddManufacturer.`Name` AS manufacturer,
|
||||
pdevice.Update_Time AS updateTime,
|
||||
max(sddLineGrade.Algo_Describe) as algoDescribe
|
||||
min(sddLineGrade.Algo_Describe) as algoDescribe
|
||||
FROM
|
||||
pq_line AS device
|
||||
LEFT JOIN pq_line AS voltage ON device.id = voltage.pid
|
||||
@@ -172,7 +172,11 @@
|
||||
|
||||
|
||||
<select id="getDevOnlineByDevIds" resultType="TerminalOnlineRateData">
|
||||
select dev_index devId,avg(online_min/(online_min+offline_min)) onlineRate
|
||||
select
|
||||
dev_index devId,
|
||||
avg(online_min/(online_min+offline_min))*100 onlineRate,
|
||||
sum(online_min) onlineMin,
|
||||
sum(offline_min) offlineMin
|
||||
from r_stat_onlinerate_d
|
||||
where dev_index in
|
||||
<foreach collection="devIds" item="item" open="(" close=")" separator=",">
|
||||
|
||||
@@ -14,12 +14,15 @@ import com.njcn.device.pq.pojo.param.LineIntegrityDataParam;
|
||||
import com.njcn.device.pq.pojo.po.LineDataIntegrity;
|
||||
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
|
||||
import com.njcn.device.pq.pojo.vo.LineIntegrityDataVO;
|
||||
import com.njcn.device.pq.pojo.vo.LineIntegrityDataVO;
|
||||
import com.njcn.device.pq.service.LineIntegrityDataService;
|
||||
import com.njcn.device.pq.utils.DataStatisticsUtil;
|
||||
import com.njcn.influxdb.param.InfluxDBPublicParam;
|
||||
import com.njcn.influxdb.utils.InfluxDBCommUtils;
|
||||
import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
import com.njcn.system.pojo.enums.StatisticsEnum;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.influxdb.dto.QueryResult;
|
||||
@@ -27,10 +30,7 @@ import org.influxdb.impl.InfluxDBResultMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -80,6 +80,9 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
|
||||
if (CollectionUtil.isEmpty(alarmStrategyVos)) {
|
||||
throw new BusinessException(DeviceResponseEnum.QUERY_ALARMSTRATEGY_DATA_EMPTY);
|
||||
}
|
||||
List<AlarmStrategyVO> alarmAlgoDescribe = lineIntegrityDataMapper.getAlarmAlgoDescribe(alarmStrategyVos);
|
||||
Map<Integer, Integer> mapAlarm = alarmAlgoDescribe.stream().collect(Collectors.toMap(AlarmStrategyVO::getAlgoDescribe, AlarmStrategyVO::getIntegrityValue));
|
||||
|
||||
Map<String, Integer> mapA = alarmStrategyVos.stream().collect(Collectors.toMap(AlarmStrategyVO::getId, AlarmStrategyVO::getIntegrityValue));
|
||||
|
||||
|
||||
@@ -108,6 +111,7 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
|
||||
// 通过供电公司索引查询省会
|
||||
List<LineIntegrityDataVO> proList = lineIntegrityDataMapper.getProvinceList(gdIds);
|
||||
|
||||
// 查询监测点数据完整性
|
||||
List<LineDataIntegrity> percentageOfCompleteDatas = rStatIntegrityDMapper.getLineIntegrityRate(generalDeviceDTO.getLineIndexes(),lineIntegrityDataParam.getSearchBeginTime(), lineIntegrityDataParam.getSearchEndTime());
|
||||
|
||||
|
||||
@@ -123,16 +127,16 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
|
||||
if (StrUtil.isNotBlank(lineDataIntegrity.getLineGrade())) {
|
||||
if (mapA.containsKey(lineDataIntegrity.getLineGrade())) {
|
||||
if (temValue > mapA.get(lineDataIntegrity.getLineGrade())) {
|
||||
lineDataIntegrity.setLinePassRate(1);
|
||||
lineDataIntegrity.setValueOver(1);
|
||||
} else {
|
||||
lineDataIntegrity.setLinePassRate(0);
|
||||
lineDataIntegrity.setValueOver(0);
|
||||
}
|
||||
} else {
|
||||
throw new BusinessException(DeviceResponseEnum.LINE_GRADE_LESS);
|
||||
}
|
||||
} else {
|
||||
//默认没有设置等级的监测点标志为1 0.不合格 1.合格
|
||||
lineDataIntegrity.setLinePassRate(1);
|
||||
lineDataIntegrity.setValueOver(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -140,7 +144,7 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
|
||||
if (!flag) {
|
||||
//表示未匹配到数据完整性
|
||||
lineDataIntegrity.setIntegrityData(3.14159);
|
||||
lineDataIntegrity.setLinePassRate(0);
|
||||
lineDataIntegrity.setValueOver(0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,11 +163,10 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
|
||||
lineIntegrityDataVO.setChildren(proList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 数据封装
|
||||
Double temValue = lineList.stream().filter(item->item.getIntegrityData()!=3.14159).mapToDouble(LineIntegrityDataVO::getIntegrityData).average().orElse(3.14159);
|
||||
|
||||
LineIntegrityDataVO temp = lineList.stream().filter(t -> t.getAlgoDescribe() != null).min(Comparator.comparing(LineIntegrityDataVO::getAlgoDescribe)).orElse(new LineIntegrityDataVO());
|
||||
lineIntegrityDataVO.setAlgoDescribe(temp.getAlgoDescribe());
|
||||
lineIntegrityDataVO.setId(generalDeviceDTO.getIndex());
|
||||
lineIntegrityDataVO.setName(generalDeviceDTO.getName());
|
||||
lineIntegrityDataVO.setLevel(0);
|
||||
@@ -171,12 +174,56 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
|
||||
pro.add(lineIntegrityDataVO);
|
||||
|
||||
}
|
||||
|
||||
getAreaIntegrityData(mapAlarm,pro);
|
||||
return pro;
|
||||
} else {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void getAreaIntegrityData(Map<Integer, Integer> mapAlarm,List<LineIntegrityDataVO> proList) {
|
||||
for (LineIntegrityDataVO proItem : proList) {
|
||||
List<LineIntegrityDataVO> gds = proItem.getChildren();
|
||||
if (CollectionUtil.isNotEmpty(gds)) {
|
||||
for (LineIntegrityDataVO gdItem : gds) {
|
||||
List<LineIntegrityDataVO> subs = gdItem.getChildren();
|
||||
if (CollectionUtil.isNotEmpty(subs)) {
|
||||
for (LineIntegrityDataVO subItem : subs) {
|
||||
if (Objects.nonNull(subItem.getAlgoDescribe())) {
|
||||
if (mapAlarm.containsKey(subItem.getAlgoDescribe())) {
|
||||
if (subItem.getIntegrityData() != 3.14159 && subItem.getIntegrityData() < mapAlarm.get(subItem.getAlgoDescribe())) {
|
||||
subItem.setValueOver(1);
|
||||
} else {
|
||||
subItem.setValueOver(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Objects.nonNull(gdItem.getAlgoDescribe())) {
|
||||
if (mapAlarm.containsKey(gdItem.getAlgoDescribe())) {
|
||||
if (gdItem.getIntegrityData() != 3.14159 && gdItem.getIntegrityData() < mapAlarm.get(gdItem.getAlgoDescribe())) {
|
||||
gdItem.setValueOver(1);
|
||||
} else {
|
||||
gdItem.setValueOver(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Objects.nonNull(proItem.getAlgoDescribe())) {
|
||||
if (mapAlarm.containsKey(proItem.getAlgoDescribe()))
|
||||
if (proItem.getIntegrityData() != 3.14159 && proItem.getIntegrityData() < mapAlarm.get(proItem.getAlgoDescribe())){
|
||||
proItem.setValueOver(1);
|
||||
} else {
|
||||
proItem.setValueOver(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理变电站
|
||||
*
|
||||
@@ -204,10 +251,11 @@ public class LineIntegrityDataServiceImpl extends ServiceImpl<LineIntegrityDataM
|
||||
if (lineAdministrationTree.getId().equals(pid)) {
|
||||
List<LineIntegrityDataVO> lineIntegrityDataVOList = groupLine.get(pid);
|
||||
lineAdministrationTree.setChildren(lineIntegrityDataVOList);
|
||||
|
||||
//父级完整性匹配
|
||||
Double temValue = lineIntegrityDataVOList.stream().filter(item->item.getIntegrityData()!=3.14159).mapToDouble(LineIntegrityDataVO::getIntegrityData).average().orElse(3.14159);
|
||||
Double temValue = lineIntegrityDataVOList.stream().filter(item->item.getIntegrityData() != 3.14159).mapToDouble(LineIntegrityDataVO::getIntegrityData).average().orElse(3.14159);
|
||||
lineAdministrationTree.setIntegrityData(temValue);
|
||||
LineIntegrityDataVO temp = lineIntegrityDataVOList.stream().filter(t -> t.getAlgoDescribe() != null).min(Comparator.comparing(LineIntegrityDataVO::getAlgoDescribe)).orElse(new LineIntegrityDataVO());
|
||||
lineAdministrationTree.setAlgoDescribe(temp.getAlgoDescribe());
|
||||
}
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
@@ -111,35 +111,35 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
||||
|
||||
List<String> devIds = deviceList.stream().map(TerminalOnlineRateDataVO::getId).collect(Collectors.toList());
|
||||
|
||||
List<TerminalOnlineRateData> terminalOnlineRateData = terminalOnlineRateDataMapper.getDevOnlineByDevIds(devIds,terminalOnlineRateDataParam.getSearchBeginTime(),terminalOnlineRateDataParam.getSearchEndTime());
|
||||
// 根据装置id获取装置在线率
|
||||
List<TerminalOnlineRateData> terminalOnlineRateList = terminalOnlineRateDataMapper.getDevOnlineByDevIds(devIds,terminalOnlineRateDataParam.getSearchBeginTime(),terminalOnlineRateDataParam.getSearchEndTime());
|
||||
|
||||
// 处理终端在线率
|
||||
DataStatisticsUtil.getTerminalOnlineRateData(terminalOnlineRateData, deviceList);
|
||||
DataStatisticsUtil.getTerminalOnlineRateData(terminalOnlineRateList, deviceList);
|
||||
|
||||
// 通过供电站索引查询供电站信息
|
||||
// 通过装置pid即供电站索引查询供电站信息
|
||||
List<String> subIds = deviceList.stream().map(TerminalOnlineRateDataVO::getPid).distinct().collect(Collectors.toList());
|
||||
List<TerminalOnlineRateDataVO> subList = terminalOnlineRateDataMapper.getSubList(subIds);
|
||||
|
||||
// 通过供电公司索引查询供电公司信息
|
||||
// 通过供电站pid即供电公司索引查询供电公司信息
|
||||
List<String> gdIds = subList.stream().map(TerminalOnlineRateDataVO::getPid).distinct().collect(Collectors.toList());
|
||||
List<TerminalOnlineRateDataVO> gdList = terminalOnlineRateDataMapper.getGdList(gdIds);
|
||||
|
||||
// 通过供电公司索引查询省会
|
||||
List<TerminalOnlineRateDataVO> proList = terminalOnlineRateDataMapper.getProvinceList(gdIds);
|
||||
|
||||
|
||||
//处理变电站
|
||||
dealChildrenData(subList, deviceList, false);
|
||||
//处理供电公司
|
||||
dealChildrenData(gdList, subList, false);
|
||||
|
||||
|
||||
// 数据封装
|
||||
terminalOnlineRateDataVO.setId(generalDeviceDTO.getIndex());
|
||||
terminalOnlineRateDataVO.setName(generalDeviceDTO.getName());
|
||||
terminalOnlineRateDataVO.setLevel(0);
|
||||
|
||||
if (terminalOnlineRateDataParam.getStatisticalType().getCode().equalsIgnoreCase(StatisticsEnum.POWER_NETWORK.getCode())) {
|
||||
TerminalOnlineRateDataVO temp = gdList.stream().filter(t -> t.getAlgoDescribe() != null).min(Comparator.comparing(TerminalOnlineRateDataVO::getAlgoDescribe)).orElseGet(TerminalOnlineRateDataVO::new);
|
||||
terminalOnlineRateDataVO.setAlgoDescribe(temp.getAlgoDescribe());
|
||||
terminalOnlineRateDataVO.setChildren(gdList);
|
||||
} else {
|
||||
//还需要额外处理省会
|
||||
@@ -182,7 +182,10 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
||||
Set<String> pids = groupLine.keySet();
|
||||
for (String pid : pids) {
|
||||
if (terminalOnlineRateDataVO.getId().equals(pid)) {
|
||||
terminalOnlineRateDataVO.setChildren(groupLine.get(pid));
|
||||
List<TerminalOnlineRateDataVO> list = groupLine.get(pid);
|
||||
TerminalOnlineRateDataVO temp = list.stream().filter(t -> t.getAlgoDescribe() != null).min(Comparator.comparing(TerminalOnlineRateDataVO::getAlgoDescribe)).orElse(new TerminalOnlineRateDataVO());
|
||||
terminalOnlineRateDataVO.setAlgoDescribe(temp.getAlgoDescribe());
|
||||
terminalOnlineRateDataVO.setChildren(list);
|
||||
}
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
@@ -201,8 +204,10 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
||||
Map<String, AlarmStrategyVO> map = alarmStrategyVos.stream().collect(Collectors.toMap(AlarmStrategyVO::getId, Function.identity()));
|
||||
|
||||
if (StrUtil.isNotBlank(lineGrade)) {
|
||||
// 根据入参终端等级查字典表
|
||||
DictData dictData = dicDataFeignClient.getDicDataById(lineGrade).getData();
|
||||
if (map.containsKey(dictData.getId())) {
|
||||
// key:监测点等级AlgoDescribe value:监测点对应在线率告警阈值
|
||||
mapAlarm.put(dictData.getAlgoDescribe(), map.get(dictData.getId()).getOnlineValue());
|
||||
} else {
|
||||
throw new BusinessException(DeviceResponseEnum.QUERY_ALARMSTRATEGY_DATA_EMPTY);
|
||||
@@ -218,53 +223,71 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
|
||||
});
|
||||
}
|
||||
|
||||
terminalOnlineRateData.forEach(proItem -> {
|
||||
List<TerminalOnlineRateDataVO> gd = proItem.getChildren();
|
||||
if (CollectionUtil.isNotEmpty(gd)) {
|
||||
gd.forEach(gdItem -> {
|
||||
List<TerminalOnlineRateDataVO> sub = gdItem.getChildren();
|
||||
if (CollectionUtil.isNotEmpty(sub)) {
|
||||
sub.forEach(subItem -> {
|
||||
List<TerminalOnlineRateDataVO> dev = subItem.getChildren();
|
||||
if (CollectionUtil.isNotEmpty(dev)) {
|
||||
dev.forEach(devItem -> {
|
||||
List<TerminalOnlineRateDataVO> tem = devItem.getChildren();
|
||||
if (CollectionUtil.isNotEmpty(tem)) {
|
||||
Double temAvg = tem.stream().filter(item -> item.getOnlineRate() != 3.14159).collect(Collectors.averagingDouble(TerminalOnlineRateDataVO::getOnlineRate));
|
||||
devItem.setOnlineRate(temAvg);
|
||||
|
||||
if (Objects.nonNull(devItem.getAlgoDescribe())) {
|
||||
if (mapAlarm.containsKey(devItem.getAlgoDescribe())) {
|
||||
if (devItem.getOnlineRate() != 3.14159 && devItem.getOnlineRate() > mapAlarm.get(devItem.getAlgoDescribe())) {
|
||||
devItem.setValueOver(1);
|
||||
} else {
|
||||
devItem.setValueOver(0);
|
||||
}
|
||||
for (TerminalOnlineRateDataVO proItem : terminalOnlineRateData) {
|
||||
List<TerminalOnlineRateDataVO> gds = proItem.getChildren();
|
||||
if (CollectionUtil.isNotEmpty(gds)) {
|
||||
for (TerminalOnlineRateDataVO gdItem : gds) {
|
||||
List<TerminalOnlineRateDataVO> subs = gdItem.getChildren();
|
||||
if (CollectionUtil.isNotEmpty(subs)) {
|
||||
for (TerminalOnlineRateDataVO subItem : subs) {
|
||||
// 装置集合
|
||||
List<TerminalOnlineRateDataVO> devs = subItem.getChildren();
|
||||
if (CollectionUtil.isNotEmpty(devs)) {
|
||||
for (TerminalOnlineRateDataVO devItem : devs) {
|
||||
if (Objects.nonNull(devItem.getAlgoDescribe())) {
|
||||
if (mapAlarm.containsKey(devItem.getAlgoDescribe())) {
|
||||
if (devItem.getOnlineRate() != 3.14159 && devItem.getOnlineRate() > mapAlarm.get(devItem.getAlgoDescribe())) {
|
||||
devItem.setValueOver(1);
|
||||
} else {
|
||||
devItem.setValueOver(0);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
subItem.setOnlineRate(3.14159);
|
||||
}
|
||||
});
|
||||
Double devAvg = dev.stream().filter(item -> item.getOnlineRate() != 3.14159).collect(Collectors.averagingDouble(TerminalOnlineRateDataVO::getOnlineRate));
|
||||
}
|
||||
Double devAvg = devs.stream().filter(item -> item.getOnlineRate() != 3.14159).collect(Collectors.averagingDouble(TerminalOnlineRateDataVO::getOnlineRate));
|
||||
subItem.setOnlineRate(devAvg);
|
||||
} else {
|
||||
subItem.setOnlineRate(3.14159);
|
||||
}
|
||||
});
|
||||
Double subAvg = sub.stream().filter(item -> item.getOnlineRate() != 3.14159).collect(Collectors.averagingDouble(TerminalOnlineRateDataVO::getOnlineRate));
|
||||
if (Objects.nonNull(subItem.getAlgoDescribe())) {
|
||||
if (mapAlarm.containsKey(subItem.getAlgoDescribe())) {
|
||||
if (subItem.getOnlineRate() != 3.14159 && subItem.getOnlineRate() > mapAlarm.get(subItem.getAlgoDescribe())) {
|
||||
subItem.setValueOver(1);
|
||||
} else {
|
||||
subItem.setValueOver(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Double subAvg = subs.stream().filter(item -> item.getOnlineRate() != 3.14159).collect(Collectors.averagingDouble(TerminalOnlineRateDataVO::getOnlineRate));
|
||||
gdItem.setOnlineRate(subAvg);
|
||||
} else {
|
||||
gdItem.setOnlineRate(3.14159);
|
||||
}
|
||||
});
|
||||
Double gdAvg = gd.stream().filter(item -> item.getOnlineRate() != 3.14159).collect(Collectors.averagingDouble(TerminalOnlineRateDataVO::getOnlineRate));
|
||||
if (Objects.nonNull(gdItem.getAlgoDescribe())) {
|
||||
if (mapAlarm.containsKey(gdItem.getAlgoDescribe())) {
|
||||
if (gdItem.getOnlineRate() != 3.14159 && gdItem.getOnlineRate() > mapAlarm.get(gdItem.getAlgoDescribe())) {
|
||||
gdItem.setValueOver(1);
|
||||
} else {
|
||||
gdItem.setValueOver(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Double gdAvg = gds.stream().filter(item -> item.getOnlineRate() != 3.14159).collect(Collectors.averagingDouble(TerminalOnlineRateDataVO::getOnlineRate));
|
||||
proItem.setOnlineRate(gdAvg);
|
||||
} else {
|
||||
proItem.setOnlineRate(3.14159);
|
||||
}
|
||||
});
|
||||
if (Objects.nonNull(proItem.getAlgoDescribe())) {
|
||||
if (mapAlarm.containsKey(proItem.getAlgoDescribe()))
|
||||
if (proItem.getOnlineRate() != 3.14159 && proItem.getOnlineRate() > mapAlarm.get(proItem.getAlgoDescribe())){
|
||||
proItem.setValueOver(1);
|
||||
} else {
|
||||
proItem.setValueOver(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -114,17 +114,17 @@ public class DataStatisticsUtil {
|
||||
/**
|
||||
* 获取终端在线率
|
||||
*
|
||||
* @param terminalOnlineRateData
|
||||
* @param terminalOnlineRateList
|
||||
* @param deviceList
|
||||
*/
|
||||
public static void getTerminalOnlineRateData(List<TerminalOnlineRateData> terminalOnlineRateData, List<TerminalOnlineRateDataVO> deviceList) {
|
||||
public static void getTerminalOnlineRateData(List<TerminalOnlineRateData> terminalOnlineRateList, List<TerminalOnlineRateDataVO> deviceList) {
|
||||
|
||||
if (CollectionUtil.isNotEmpty(terminalOnlineRateData)) {
|
||||
if (CollectionUtil.isNotEmpty(terminalOnlineRateList)) {
|
||||
// 根据监测点id分类
|
||||
|
||||
deviceList = deviceList.stream().peek(onlineRateDataVO -> {
|
||||
boolean flag = false;
|
||||
for (TerminalOnlineRateData onlineRateData : terminalOnlineRateData) {
|
||||
for (TerminalOnlineRateData onlineRateData : terminalOnlineRateList) {
|
||||
if (onlineRateDataVO.getId().equals(onlineRateData.getDevId())) {
|
||||
flag = true;
|
||||
onlineRateDataVO.setOnlineRate(onlineRateData.getOnlineRate());
|
||||
|
||||
Reference in New Issue
Block a user