Commit 9060a6a9 authored by yangyang's avatar yangyang

智慧分析 - 健康等级

parent 11a40a1d
...@@ -16,6 +16,8 @@ import java.util.List; ...@@ -16,6 +16,8 @@ import java.util.List;
*/ */
public interface IFanHealthIndexService { public interface IFanHealthIndexService {
List<FanHealthIndex> getInfoListByGroupByCdFan(String startTime, String tableName, String analysisObjectType);
List<FanHealthIndex> getInfoListByGroupByZxtFan(String startTime, String tableName, String analysisObjectType); List<FanHealthIndex> getInfoListByGroupByZxtFan(String startTime, String tableName, String analysisObjectType);
/** /**
......
...@@ -17,6 +17,10 @@ import java.util.List; ...@@ -17,6 +17,10 @@ import java.util.List;
*/ */
public interface IPvHealthIndexService { public interface IPvHealthIndexService {
List<PvHealthIndex> getInfoListByGroupByCdPv(String startTime,
String tableName,
String analysisObjectType);
/** /**
* 设备加权平均 * 设备加权平均
......
...@@ -36,6 +36,52 @@ public class FanHealthIndexServiceImpl implements IFanHealthIndexService { ...@@ -36,6 +36,52 @@ public class FanHealthIndexServiceImpl implements IFanHealthIndexService {
@Autowired @Autowired
private IdxBizFanWeightMapper idxBizFanWeightMapper; private IdxBizFanWeightMapper idxBizFanWeightMapper;
@Override
public List<FanHealthIndex> getInfoListByGroupByCdFan(String startTime, String tableName, String analysisObjectType) {
List<FanHealthIndex> fanHealthIndicesZxt = fanHealthIndexMapper.getInfoList(startTime, tableName, analysisObjectType);
QueryWrapper<IdxBizFanWeight> idxBizFanWeightQueryWrapper = new QueryWrapper<>();
idxBizFanWeightQueryWrapper.eq("type", "5");
idxBizFanWeightQueryWrapper.isNotNull("value");
List<IdxBizFanWeight> idxBizFanWeights = idxBizFanWeightMapper.selectList(idxBizFanWeightQueryWrapper);
Map<String, Float> weightMap = idxBizFanWeights.stream().collect(Collectors.toMap(o -> o.getArae() + o.getStation() + o.getEquipmentName() + o.getSubarray() + o.getPointName(), IdxBizFanWeight::getValue));
// 开始计算加权平均
Map<String, List<FanHealthIndex>> fanHealthIndicesZxtMap = fanHealthIndicesZxt.stream().collect(Collectors.groupingBy(o -> o.getGatewayId() + o.getStation() + o.getAnalysisObjType() + o.getArea() + o.getSubSystem() + o.getEquipmentName() + o.getNumber() + o.getOrgCode()));
List<FanHealthIndex> fanHealthIndicesZxtNews = new ArrayList<>();
fanHealthIndicesZxtMap.forEach((k, v) -> {
FanHealthIndex fanHealthIndex = new FanHealthIndex();
fanHealthIndex.setIndexAddress(v.get(0).getIndexAddress());
fanHealthIndex.setGatewayId(v.get(0).getGatewayId());
fanHealthIndex.setStation(v.get(0).getStation());
fanHealthIndex.setAnalysisObjType("测点");
fanHealthIndex.setAnalysisObjSeq(v.get(0).getAnalysisObjSeq());
fanHealthIndex.setWeight(v.get(0).getWeight());
fanHealthIndex.setArea(v.get(0).getArea());
fanHealthIndex.setSubSystem(v.get(0).getSubSystem());
fanHealthIndex.setNumber(v.get(0).getNumber());
fanHealthIndex.setEquipmentName(v.get(0).getEquipmentName());
fanHealthIndex.setPointName(v.get(0).getPointName());
fanHealthIndex.setKks(v.get(0).getNumber());
fanHealthIndex.setOrgCode(v.get(0).getOrgCode());
// 例如 子系统 = (测点1 * 测点1权重 + 测点2 * 测点2权重 + .... 测点n权重) / (测点1权重 + 测点2权重 + .... 测点n权重)
// 但是测点是没有权重的,所以子系统无法计算加权平均
// 设备 = (子系统1 * 子系统1权重 + 子系统2 * 子系统2权重 + .... 子系统n权重) / (子系统1权重 + 子系统2权重 + .... 子系统n权重)
// 但如果没有配置子系统的权重,如何计算?
try {
// 加权平均
Double totalHealthIndex = v.stream().mapToDouble(o -> getWeight(() -> o.getArea() + o.getStation() + o.getEquipmentName() + o.getSubSystem() + o.getPointName(), weightMap) * o.getHealthIndex()).sum();
Double totalAnomaly = v.stream().mapToDouble(o -> getWeight(() -> o.getArea() + o.getStation() + o.getEquipmentName() + o.getSubSystem() + o.getPointName(), weightMap) * o.getAnomaly()).sum();
Double totalWeight = v.stream().mapToDouble(o -> getWeight(() -> o.getArea() + o.getStation() + o.getEquipmentName() + o.getSubSystem() + o.getPointName(), weightMap)).sum();
fanHealthIndex.setAnomaly(totalAnomaly / totalWeight);
fanHealthIndex.setHealthIndex(totalHealthIndex / totalWeight);
} catch (Exception e) {
// 普通平均
this.calculateAvg(fanHealthIndex, v);
}
fanHealthIndicesZxtNews.add(fanHealthIndex);
});
return fanHealthIndicesZxtNews;
}
/** /**
* 子系统加权平均 * 子系统加权平均
* 加权平均数 = (w1 * x1 + w2 * x2 + … + wn * xn) / (w1 + w2 + … + wn) * 加权平均数 = (w1 * x1 + w2 * x2 + … + wn * xn) / (w1 + w2 + … + wn)
......
...@@ -37,6 +37,53 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService { ...@@ -37,6 +37,53 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService {
@Autowired @Autowired
private IdxBizPvWeightMapper idxBizPvWeightMapper; private IdxBizPvWeightMapper idxBizPvWeightMapper;
@Override
public List<PvHealthIndex> getInfoListByGroupByCdPv(String startTime, String tableName, String analysisObjectType) {
List<PvHealthIndex> pvHealthIndices = pvHealthIndexMapper.getInfoList(startTime, tableName, analysisObjectType);
QueryWrapper<IdxBizPvWeight> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", "5");
queryWrapper.isNotNull("value");
List<IdxBizPvWeight> idxBizFanWeights = idxBizPvWeightMapper.selectList(queryWrapper);
Map<String, Float> weightMap = idxBizFanWeights.stream().collect(Collectors.toMap(o -> o.getArae() + o.getStation() + o.getEquipmentName() + o.getSubarray() + o.getPointName(), IdxBizPvWeight::getValue));
// 开始计算加权平均
Map<String, List<PvHealthIndex>> healthIndicesMap = pvHealthIndices.stream().collect(Collectors.groupingBy(o -> o.getGatewayId() + o.getIndexAddress() + o.getStation() + o.getAnalysisObjType() + o.getAnalysisObjSeq() + o.getWeight() + o.getArea() + o.getSubarray() + o.getManufacturer() + o.getEquipmentName() + o.getPointName() + o.getDeviceType() + o.getKks() + o.getOrgCode()));
List<PvHealthIndex> pvHealthIndexList = new ArrayList<>();
healthIndicesMap.forEach((k, v) -> {
PvHealthIndex pvHealthIndex = new PvHealthIndex();
pvHealthIndex.setIndexAddress(v.get(0).getIndexAddress());
pvHealthIndex.setGatewayId(v.get(0).getGatewayId());
pvHealthIndex.setStation(v.get(0).getStation());
pvHealthIndex.setAnalysisObjType("测点");
pvHealthIndex.setAnalysisObjSeq(v.get(0).getAnalysisObjSeq());
pvHealthIndex.setWeight(v.get(0).getWeight());
pvHealthIndex.setArea(v.get(0).getArea());
pvHealthIndex.setSubarray(v.get(0).getSubarray());
pvHealthIndex.setManufacturer(v.get(0).getManufacturer());
pvHealthIndex.setEquipmentName(v.get(0).getEquipmentName());
pvHealthIndex.setPointName(v.get(0).getPointName());
pvHealthIndex.setDeviceType(v.get(0).getDeviceType());
pvHealthIndex.setKks(v.get(0).getKks());
pvHealthIndex.setOrgCode(v.get(0).getOrgCode());
// 例如 子系统 = (测点1 * 测点1权重 + 测点2 * 测点2权重 + .... 测点n权重) / (测点1权重 + 测点2权重 + .... 测点n权重)
// 但是测点是没有权重的,所以子系统无法计算加权平均
// 设备 = (子系统1 * 子系统1权重 + 子系统2 * 子系统2权重 + .... 子系统n权重) / (子系统1权重 + 子系统2权重 + .... 子系统n权重)
// 但如果没有配置子系统的权重,如何计算?
try {
// 加权平均
Double totalHealthIndex = v.stream().mapToDouble(o -> getWeight(() -> o.getArea() + o.getStation() + o.getEquipmentName() + o.getSubarray() + o.getPointName(), weightMap) * o.getHealthIndex()).sum();
Double totalAnomaly = v.stream().mapToDouble(o -> getWeight(() -> o.getArea() + o.getStation() + o.getEquipmentName() + o.getSubarray() + o.getPointName(), weightMap) * o.getAnomaly()).sum();
Double totalWeight = v.stream().mapToDouble(o -> getWeight(() -> o.getArea() + o.getStation() + o.getEquipmentName() + o.getSubarray() + o.getPointName(), weightMap)).sum();
pvHealthIndex.setAnomaly(totalAnomaly / totalWeight);
pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight);
} catch (Exception e) {
// 普通平均
this.calculateAvg(pvHealthIndex, v);
}
pvHealthIndexList.add(pvHealthIndex);
});
return pvHealthIndexList;
}
/** /**
* 设备加权平均 * 设备加权平均
* 加权平均数 = (w1 * x1 + w2 * x2 + … + wn * xn) / (w1 + w2 + … + wn) * 加权平均数 = (w1 * x1 + w2 * x2 + … + wn * xn) / (w1 + w2 + … + wn)
...@@ -87,7 +134,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService { ...@@ -87,7 +134,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService {
pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight); pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight);
} catch (Exception e) { } catch (Exception e) {
// 普通平均 // 普通平均
log.error("计算加权平均异常", e.getMessage());
this.calculateAvg(pvHealthIndex, v); this.calculateAvg(pvHealthIndex, v);
} }
pvHealthIndexList.add(pvHealthIndex); pvHealthIndexList.add(pvHealthIndex);
...@@ -144,7 +190,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService { ...@@ -144,7 +190,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService {
pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight); pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight);
} catch (Exception e) { } catch (Exception e) {
// 普通平均 // 普通平均
log.error("计算加权平均异常", e.getMessage());
this.calculateAvg(pvHealthIndex, v); this.calculateAvg(pvHealthIndex, v);
} }
pvHealthIndexList.add(pvHealthIndex); pvHealthIndexList.add(pvHealthIndex);
...@@ -199,7 +244,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService { ...@@ -199,7 +244,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService {
pvHealthIndex.setAnomaly(totalAnomaly / totalWeight); pvHealthIndex.setAnomaly(totalAnomaly / totalWeight);
pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight); pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight);
} catch (Exception e) { } catch (Exception e) {
log.error("计算加权平均异常", e.getMessage());
// 普通平均 // 普通平均
this.calculateAvg(pvHealthIndex, v); this.calculateAvg(pvHealthIndex, v);
} }
...@@ -253,7 +297,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService { ...@@ -253,7 +297,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService {
pvHealthIndex.setAnomaly(totalAnomaly / totalWeight); pvHealthIndex.setAnomaly(totalAnomaly / totalWeight);
pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight); pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight);
} catch (Exception e) { } catch (Exception e) {
log.error("计算加权平均异常", e.getMessage());
// 普通平均 // 普通平均
this.calculateAvg(pvHealthIndex, v); this.calculateAvg(pvHealthIndex, v);
} }
...@@ -307,7 +350,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService { ...@@ -307,7 +350,6 @@ public class PvHealthIndexServiceImpl implements IPvHealthIndexService {
pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight); pvHealthIndex.setHealthIndex(totalHealthIndex / totalWeight);
} catch (Exception e) { } catch (Exception e) {
// 普通平均 // 普通平均
log.error("计算加权平均异常", e.getMessage());
this.calculateAvg(pvHealthIndex, v); this.calculateAvg(pvHealthIndex, v);
} }
pvHealthIndexList.add(pvHealthIndex); pvHealthIndexList.add(pvHealthIndex);
......
...@@ -24,6 +24,7 @@ import org.springframework.stereotype.Service; ...@@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
import java.text.ParseException; import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -69,59 +70,27 @@ public class TdengineTimeServiceImpl { ...@@ -69,59 +70,27 @@ public class TdengineTimeServiceImpl {
String startTime = DateUtils.dateFormat(DateUtils.dateAddMinutes(new Date(), -489), DateUtils.DATE_TIME_PATTERN); String startTime = DateUtils.dateFormat(DateUtils.dateAddMinutes(new Date(), -489), DateUtils.DATE_TIME_PATTERN);
// 子系统 // 子系统
List<IdxBizFanHealthLevel> levelListZxt = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "子系统").last("limit 4")); List<IdxBizFanHealthLevel> levelListZxt = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "子系统").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesZxt = fanHealthIndexMapper.getInfoListByGroupByZxtFan(startTime, "fan_health_index_moment", "测点"); List<FanHealthIndex> fanHealthIndicesZxt = fanHealthIndexService.getInfoListByGroupByZxtFan(startTime, "fan_health_index_moment", "测点");
saveBatchFan(fanHealthIndicesZxt, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListZxt); saveBatchFan(fanHealthIndicesZxt, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListZxt);
// 设备 // 设备
List<IdxBizFanHealthLevel> levelListSb = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "设备").last("limit 4")); List<IdxBizFanHealthLevel> levelListSb = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "设备").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesSb = fanHealthIndexMapper.getInfoListByGroupBySbFan(startTime, "fan_health_index_moment", "子系统"); List<FanHealthIndex> fanHealthIndicesSb = fanHealthIndexService.getInfoListByGroupBySbFan(startTime, "fan_health_index_moment", "子系统");
saveBatchFan(fanHealthIndicesSb, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListSb); saveBatchFan(fanHealthIndicesSb, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListSb);
// 场站 // 场站
List<IdxBizFanHealthLevel> levelListCz = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "场站").last("limit 4")); List<IdxBizFanHealthLevel> levelListCz = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "场站").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesCz = fanHealthIndexMapper.getInfoListByGroupByCzFan(startTime, "fan_health_index_moment", "设备"); List<FanHealthIndex> fanHealthIndicesCz = fanHealthIndexService.getInfoListByGroupByCzFan(startTime, "fan_health_index_moment", "设备");
saveBatchFan(fanHealthIndicesCz, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListCz); saveBatchFan(fanHealthIndicesCz, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListCz);
// 区域 // 区域
List<IdxBizFanHealthLevel> levelListQy = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "片区").last("limit 4")); List<IdxBizFanHealthLevel> levelListQy = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "片区").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesQy = fanHealthIndexMapper.getInfoListByGroupByQyFan(startTime, "fan_health_index_moment", "场站"); List<FanHealthIndex> fanHealthIndicesQy = fanHealthIndexService.getInfoListByGroupByQyFan(startTime, "fan_health_index_moment", "场站");
saveBatchFan(fanHealthIndicesQy, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQy); saveBatchFan(fanHealthIndicesQy, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQy);
// 全域【所有 / 全国】 // 全域【所有 / 全国】
List<IdxBizFanHealthLevel> levelListQg = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "全域").last("limit 4")); List<IdxBizFanHealthLevel> levelListQg = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "全域").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesQg = fanHealthIndexMapper.getInfoListByGroupByQgFan(startTime, "fan_health_index_moment", "片区"); List<FanHealthIndex> fanHealthIndicesQg = fanHealthIndexService.getInfoListByGroupByQgFan(startTime, "fan_health_index_moment", "片区");
saveBatchFan(fanHealthIndicesQg, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQg); saveBatchFan(fanHealthIndicesQg, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQg);
} }
public void insertMomentDataNew(String recDate) throws ParseException {
//s 489分钟 为 8小时 + 19分钟
String startTime = DateUtils.dateFormat(DateUtils.dateAddMinutes(new Date(), -489), DateUtils.DATE_TIME_PATTERN);
startTime = "2024-07-23 08:00:00";
// 子系统
List<IdxBizFanHealthLevel> levelListZxt = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "子系统").last("limit 4"));
List<FanHealthIndex> fanHealthIndices = fanHealthIndexService.getInfoListByGroupByZxtFan(startTime, "fan_health_index_moment", "测点");
List<FanHealthIndex> fanHealthIndicesZxt = fanHealthIndexMapper.getInfoListByGroupByZxtFan(startTime, "fan_health_index_moment", "测点");
//saveBatchFan(fanHealthIndicesZxt, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListZxt);
// 设备
List<IdxBizFanHealthLevel> levelListSb = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "设备").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesSb = fanHealthIndexMapper.getInfoListByGroupBySbFan(startTime, "fan_health_index_moment", "子系统");
//saveBatchFan(fanHealthIndicesSb, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListSb);
// 场站
List<IdxBizFanHealthLevel> levelListCz = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "场站").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesCz = fanHealthIndexMapper.getInfoListByGroupByCzFan(startTime, "fan_health_index_moment", "设备");
//saveBatchFan(fanHealthIndicesCz, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListCz);
// 区域
List<IdxBizFanHealthLevel> levelListQy = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "片区").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesQy = fanHealthIndexMapper.getInfoListByGroupByQyFan(startTime, "fan_health_index_moment", "场站");
//saveBatchFan(fanHealthIndicesQy, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQy);
// 全域【所有 / 全国】
List<IdxBizFanHealthLevel> levelListQg = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "全域").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesQg = fanHealthIndexMapper.getInfoListByGroupByQgFan(startTime, "fan_health_index_moment", "片区");
// saveBatchFan(fanHealthIndicesQg, "fan_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQg);
}
/** /**
* 风电 - 按小时生成测点、子系统、设备、场站、区域 数据 * 风电 - 按小时生成测点、子系统、设备、场站、区域 数据
...@@ -141,24 +110,24 @@ public class TdengineTimeServiceImpl { ...@@ -141,24 +110,24 @@ public class TdengineTimeServiceImpl {
saveBatchFan(fanHealthIndices, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelList); saveBatchFan(fanHealthIndices, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelList);
// 子系统 // 子系统
List<IdxBizFanHealthLevel> levelListZxt = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "子系统").last("limit 4")); List<IdxBizFanHealthLevel> levelListZxt = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "子系统").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesZxt = fanHealthIndexMapper.getInfoListByGroupByZxtFan(startTime, "fan_health_index_moment", "测点"); List<FanHealthIndex> fanHealthIndicesZxt = fanHealthIndexService.getInfoListByGroupByZxtFan(startTime, "fan_health_index_moment", "测点");
saveBatchFan(fanHealthIndicesZxt, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListZxt); saveBatchFan(fanHealthIndicesZxt, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListZxt);
// 设备 // 设备
List<IdxBizFanHealthLevel> levelListSb = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "设备").last("limit 4")); List<IdxBizFanHealthLevel> levelListSb = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "设备").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesSb = fanHealthIndexMapper.getInfoListByGroupBySbFan(startTime, "fan_health_index_moment", "子系统"); List<FanHealthIndex> fanHealthIndicesSb = fanHealthIndexService.getInfoListByGroupBySbFan(startTime, "fan_health_index_moment", "子系统");
saveBatchFan(fanHealthIndicesSb, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListSb); saveBatchFan(fanHealthIndicesSb, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListSb);
// 场站 // 场站
List<IdxBizFanHealthLevel> levelListCz = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "场站").last("limit 4")); List<IdxBizFanHealthLevel> levelListCz = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "场站").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesCz = fanHealthIndexMapper.getInfoListByGroupByCzFan(startTime, "fan_health_index_moment", "设备"); List<FanHealthIndex> fanHealthIndicesCz = fanHealthIndexService.getInfoListByGroupByCzFan(startTime, "fan_health_index_moment", "设备");
saveBatchFan(fanHealthIndicesCz, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListCz); saveBatchFan(fanHealthIndicesCz, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListCz);
// 区域 // 区域
List<IdxBizFanHealthLevel> levelListQy = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "片区").last("limit 4")); List<IdxBizFanHealthLevel> levelListQy = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "片区").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesQy = fanHealthIndexMapper.getInfoListByGroupByQyFan(startTime, "fan_health_index_moment", "场站"); List<FanHealthIndex> fanHealthIndicesQy = fanHealthIndexService.getInfoListByGroupByQyFan(startTime, "fan_health_index_moment", "场站");
saveBatchFan(fanHealthIndicesQy, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListQy); saveBatchFan(fanHealthIndicesQy, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListQy);
// 全域【所有 / 全国】 // 全域【所有 / 全国】
List<IdxBizFanHealthLevel> levelListQg = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "全域").last("limit 4")); List<IdxBizFanHealthLevel> levelListQg = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "全域").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesQg = fanHealthIndexMapper.getInfoListByGroupByQgFan(startTime, "fan_health_index_moment", "片区"); List<FanHealthIndex> fanHealthIndicesQg = fanHealthIndexService.getInfoListByGroupByQgFan(startTime, "fan_health_index_moment", "片区");
saveBatchFan(fanHealthIndicesQg, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListQg); saveBatchFan(fanHealthIndicesQg, "fan_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListQg);
//预警生成 //预警生成
...@@ -184,23 +153,23 @@ public class TdengineTimeServiceImpl { ...@@ -184,23 +153,23 @@ public class TdengineTimeServiceImpl {
// 子系统 // 子系统
List<IdxBizFanHealthLevel> levelListZxt = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "子系统").last("limit 4")); List<IdxBizFanHealthLevel> levelListZxt = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "子系统").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesZxt = fanHealthIndexMapper.getInfoListByGroupByZxtFan(startTime, "fan_health_index_hour", "测点"); List<FanHealthIndex> fanHealthIndicesZxt = fanHealthIndexService.getInfoListByGroupByZxtFan(startTime, "fan_health_index_hour", "测点");
saveBatchFan(fanHealthIndicesZxt, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListZxt); saveBatchFan(fanHealthIndicesZxt, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListZxt);
// 设备 // 设备
List<IdxBizFanHealthLevel> levelListSb = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "设备").last("limit 4")); List<IdxBizFanHealthLevel> levelListSb = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "设备").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesSb = fanHealthIndexMapper.getInfoListByGroupBySbFan(startTime, "fan_health_index_hour", "子系统"); List<FanHealthIndex> fanHealthIndicesSb = fanHealthIndexService.getInfoListByGroupBySbFan(startTime, "fan_health_index_hour", "子系统");
saveBatchFan(fanHealthIndicesSb, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListSb); saveBatchFan(fanHealthIndicesSb, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListSb);
// 场站 // 场站
List<IdxBizFanHealthLevel> levelListCz = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "场站").last("limit 4")); List<IdxBizFanHealthLevel> levelListCz = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "场站").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesCz = fanHealthIndexMapper.getInfoListByGroupByCzFan(startTime, "fan_health_index_hour", "设备"); List<FanHealthIndex> fanHealthIndicesCz = fanHealthIndexService.getInfoListByGroupByCzFan(startTime, "fan_health_index_hour", "设备");
saveBatchFan(fanHealthIndicesCz, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListCz); saveBatchFan(fanHealthIndicesCz, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListCz);
// 区域 // 区域
List<IdxBizFanHealthLevel> levelListQy = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "片区").last("limit 4")); List<IdxBizFanHealthLevel> levelListQy = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "片区").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesQy = fanHealthIndexMapper.getInfoListByGroupByQyFan(startTime, "fan_health_index_hour", "场站"); List<FanHealthIndex> fanHealthIndicesQy = fanHealthIndexService.getInfoListByGroupByQyFan(startTime, "fan_health_index_hour", "场站");
saveBatchFan(fanHealthIndicesQy, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListQy); saveBatchFan(fanHealthIndicesQy, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListQy);
// 全域【所有 / 全国】 // 全域【所有 / 全国】
List<IdxBizFanHealthLevel> levelListQg = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "全域").last("limit 4")); List<IdxBizFanHealthLevel> levelListQg = idxBizFanHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizFanHealthLevel>().eq(IdxBizFanHealthLevel::getAnalysisObjType, "全域").last("limit 4"));
List<FanHealthIndex> fanHealthIndicesQg = fanHealthIndexMapper.getInfoListByGroupByQgFan(startTime, "fan_health_index_hour", "片区"); List<FanHealthIndex> fanHealthIndicesQg = fanHealthIndexService.getInfoListByGroupByQgFan(startTime, "fan_health_index_hour", "片区");
saveBatchFan(fanHealthIndicesQg, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListQg); saveBatchFan(fanHealthIndicesQg, "fan_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListQg);
//预警生成 //预警生成
...@@ -254,28 +223,29 @@ public class TdengineTimeServiceImpl { ...@@ -254,28 +223,29 @@ public class TdengineTimeServiceImpl {
String startTime = DateUtils.dateFormat(DateUtils.dateAddMinutes(new Date(), -489), DateUtils.DATE_TIME_PATTERN); String startTime = DateUtils.dateFormat(DateUtils.dateAddMinutes(new Date(), -489), DateUtils.DATE_TIME_PATTERN);
// 设备 // 设备
List<IdxBizPvHealthLevel> levelListSb = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "设备").last("limit 4")); List<IdxBizPvHealthLevel> levelListSb = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "设备").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesSb = pvHealthIndexMapper.getInfoListByGroupBySbPv(startTime, "pv_health_index_moment", "测点"); List<PvHealthIndex> fanHealthIndicesSb = pvHealthIndexService.getInfoListByGroupBySbPv(startTime, "pv_health_index_moment", "测点");
saveBatchPv(fanHealthIndicesSb, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListSb); saveBatchPv(fanHealthIndicesSb, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListSb);
// 子阵 // 子阵
List<IdxBizPvHealthLevel> levelListZz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "子阵").last("limit 4")); List<IdxBizPvHealthLevel> levelListZz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "子阵").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesZz = pvHealthIndexMapper.getInfoListByGroupByZzPv(startTime, "pv_health_index_moment", "设备"); List<PvHealthIndex> fanHealthIndicesZz = pvHealthIndexService.getInfoListByGroupByZzPv(startTime, "pv_health_index_moment", "设备");
saveBatchPv(fanHealthIndicesZz, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListZz); saveBatchPv(fanHealthIndicesZz, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListZz);
// 场站 // 场站
List<IdxBizPvHealthLevel> levelListCz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "场站").last("limit 4")); List<IdxBizPvHealthLevel> levelListCz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "场站").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesCz = pvHealthIndexMapper.getInfoListByGroupByCzPv(startTime, "pv_health_index_moment", "子阵"); List<PvHealthIndex> fanHealthIndicesCz = pvHealthIndexService.getInfoListByGroupByCzPv(startTime, "pv_health_index_moment", "子阵");
saveBatchPv(fanHealthIndicesCz, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListCz); saveBatchPv(fanHealthIndicesCz, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListCz);
// 片区 // 片区
List<IdxBizPvHealthLevel> levelListQy = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "片区").last("limit 4")); List<IdxBizPvHealthLevel> levelListQy = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "片区").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesQy = pvHealthIndexMapper.getInfoListByGroupByQyPv(startTime, "pv_health_index_moment", "场站"); List<PvHealthIndex> fanHealthIndicesQy = pvHealthIndexService.getInfoListByGroupByQyPv(startTime, "pv_health_index_moment", "场站");
saveBatchPv(fanHealthIndicesQy, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQy); saveBatchPv(fanHealthIndicesQy, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQy);
// 全域【所有 / 全国】 // 全域【所有 / 全国】
List<IdxBizPvHealthLevel> levelListQg = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "全域").last("limit 4")); List<IdxBizPvHealthLevel> levelListQg = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "全域").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesQg = pvHealthIndexMapper.getInfoListByGroupByQgPv(startTime, "pv_health_index_moment", "片区"); List<PvHealthIndex> fanHealthIndicesQg = pvHealthIndexService.getInfoListByGroupByQgPv(startTime, "pv_health_index_moment", "片区");
saveBatchPv(fanHealthIndicesQg, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQg); saveBatchPv(fanHealthIndicesQg, "pv_health_index_moment", recDate, WarningPeriodEnum.MINUTES.getName(), levelListQg);
} }
/** /**
* 光伏 - 按小时生成 测点、设备、子阵、场站和片区数据 * 光伏 - 按小时生成 测点、设备、子阵、场站和片区数据
*/ */
...@@ -294,23 +264,23 @@ public class TdengineTimeServiceImpl { ...@@ -294,23 +264,23 @@ public class TdengineTimeServiceImpl {
saveBatchPv(fanHealthIndices, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelList); saveBatchPv(fanHealthIndices, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelList);
// 设备 // 设备
List<IdxBizPvHealthLevel> levelListSb = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "设备").last("limit 4")); List<IdxBizPvHealthLevel> levelListSb = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "设备").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesSb = pvHealthIndexMapper.getInfoListByGroupBySbPv(startTime, "pv_health_index_moment", "测点"); List<PvHealthIndex> fanHealthIndicesSb = pvHealthIndexService.getInfoListByGroupBySbPv(startTime, "pv_health_index_moment", "测点");
saveBatchPv(fanHealthIndicesSb, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListSb); saveBatchPv(fanHealthIndicesSb, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListSb);
// 子阵 // 子阵
List<IdxBizPvHealthLevel> levelListZz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "子阵").last("limit 4")); List<IdxBizPvHealthLevel> levelListZz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "子阵").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesZz = pvHealthIndexMapper.getInfoListByGroupByZzPv(startTime, "pv_health_index_moment", "设备"); List<PvHealthIndex> fanHealthIndicesZz = pvHealthIndexService.getInfoListByGroupByZzPv(startTime, "pv_health_index_moment", "设备");
saveBatchPv(fanHealthIndicesZz, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListZz); saveBatchPv(fanHealthIndicesZz, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListZz);
// 场站 // 场站
List<IdxBizPvHealthLevel> levelListCz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "场站").last("limit 4")); List<IdxBizPvHealthLevel> levelListCz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "场站").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesCz = pvHealthIndexMapper.getInfoListByGroupByCzPv(startTime, "pv_health_index_moment", "子阵"); List<PvHealthIndex> fanHealthIndicesCz = pvHealthIndexService.getInfoListByGroupByCzPv(startTime, "pv_health_index_moment", "子阵");
saveBatchPv(fanHealthIndicesCz, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListCz); saveBatchPv(fanHealthIndicesCz, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListCz);
// 片区 // 片区
List<IdxBizPvHealthLevel> levelListQy = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "片区").last("limit 4")); List<IdxBizPvHealthLevel> levelListQy = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "片区").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesQy = pvHealthIndexMapper.getInfoListByGroupByQyPv(startTime, "pv_health_index_moment", "场站"); List<PvHealthIndex> fanHealthIndicesQy = pvHealthIndexService.getInfoListByGroupByQyPv(startTime, "pv_health_index_moment", "场站");
saveBatchPv(fanHealthIndicesQy, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListQy); saveBatchPv(fanHealthIndicesQy, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListQy);
// 全域【所有 / 全国】 // 全域【所有 / 全国】
List<IdxBizPvHealthLevel> levelListQg = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "全域").last("limit 4")); List<IdxBizPvHealthLevel> levelListQg = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "全域").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesQg = pvHealthIndexMapper.getInfoListByGroupByQgPv(startTime, "pv_health_index_moment", "片区"); List<PvHealthIndex> fanHealthIndicesQg = pvHealthIndexService.getInfoListByGroupByQgPv(startTime, "pv_health_index_moment", "片区");
saveBatchPv(fanHealthIndicesQg, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListQg); saveBatchPv(fanHealthIndicesQg, "pv_health_index_hour", recDate, WarningPeriodEnum.HOUR.getName(), levelListQg);
//预警生成 //预警生成
...@@ -335,23 +305,23 @@ public class TdengineTimeServiceImpl { ...@@ -335,23 +305,23 @@ public class TdengineTimeServiceImpl {
saveBatchPv(fanHealthIndices, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelList); saveBatchPv(fanHealthIndices, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelList);
// 设备 // 设备
List<IdxBizPvHealthLevel> levelListSb = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "设备").last("limit 4")); List<IdxBizPvHealthLevel> levelListSb = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "设备").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesSb = pvHealthIndexMapper.getInfoListByGroupBySbPv(startTime, "pv_health_index_hour", "测点"); List<PvHealthIndex> fanHealthIndicesSb = pvHealthIndexService.getInfoListByGroupBySbPv(startTime, "pv_health_index_hour", "测点");
saveBatchPv(fanHealthIndicesSb, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListSb); saveBatchPv(fanHealthIndicesSb, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListSb);
// 子阵 // 子阵
List<IdxBizPvHealthLevel> levelListZz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "子阵").last("limit 4")); List<IdxBizPvHealthLevel> levelListZz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "子阵").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesZz = pvHealthIndexMapper.getInfoListByGroupByZzPv(startTime, "pv_health_index_hour", "设备"); List<PvHealthIndex> fanHealthIndicesZz = pvHealthIndexService.getInfoListByGroupByZzPv(startTime, "pv_health_index_hour", "设备");
saveBatchPv(fanHealthIndicesZz, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListZz); saveBatchPv(fanHealthIndicesZz, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListZz);
// 场站 // 场站
List<IdxBizPvHealthLevel> levelListCz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "场站").last("limit 4")); List<IdxBizPvHealthLevel> levelListCz = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "场站").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesCz = pvHealthIndexMapper.getInfoListByGroupByCzPv(startTime, "pv_health_index_hour", "子阵"); List<PvHealthIndex> fanHealthIndicesCz = pvHealthIndexService.getInfoListByGroupByCzPv(startTime, "pv_health_index_hour", "子阵");
saveBatchPv(fanHealthIndicesCz, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListCz); saveBatchPv(fanHealthIndicesCz, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListCz);
// 片区 // 片区
List<IdxBizPvHealthLevel> levelListQy = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "片区").last("limit 4")); List<IdxBizPvHealthLevel> levelListQy = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "片区").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesQy = pvHealthIndexMapper.getInfoListByGroupByQyPv(startTime, "pv_health_index_hour", "场站"); List<PvHealthIndex> fanHealthIndicesQy = pvHealthIndexService.getInfoListByGroupByQyPv(startTime, "pv_health_index_hour", "场站");
saveBatchPv(fanHealthIndicesQy, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListQy); saveBatchPv(fanHealthIndicesQy, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListQy);
// 全域【所有 / 全国】 // 全域【所有 / 全国】
List<IdxBizPvHealthLevel> levelListQg = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "全域").last("limit 4")); List<IdxBizPvHealthLevel> levelListQg = idxBizPvHealthLevelMapper.selectList(new LambdaQueryWrapper<IdxBizPvHealthLevel>().eq(IdxBizPvHealthLevel::getAnalysisObjType, "全域").last("limit 4"));
List<PvHealthIndex> fanHealthIndicesQg = pvHealthIndexMapper.getInfoListByGroupByQgPv(startTime, "pv_health_index_hour", "片区"); List<PvHealthIndex> fanHealthIndicesQg = pvHealthIndexService.getInfoListByGroupByQgPv(startTime, "pv_health_index_hour", "片区");
saveBatchPv(fanHealthIndicesQg, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListQg); saveBatchPv(fanHealthIndicesQg, "pv_health_index_day", recDate, WarningPeriodEnum.DAY.getName(), levelListQg);
//预警生成 //预警生成
...@@ -392,4 +362,67 @@ public class TdengineTimeServiceImpl { ...@@ -392,4 +362,67 @@ public class TdengineTimeServiceImpl {
} }
} }
} }
public void insertMomentDataTest(String startTime) throws ParseException {
//s 489分钟 为 8小时 + 19分钟
// 子系统
List<FanHealthIndex> fanHealthIndicesZxt = fanHealthIndexMapper.getInfoListByGroupByZxtFan(startTime, "fan_health_index_moment", "测点");
List<FanHealthIndex> fanHealthIndicesNew = fanHealthIndexService.getInfoListByGroupByZxtFan(startTime, "fan_health_index_moment", "测点");
print("子系统", fanHealthIndicesZxt, fanHealthIndicesNew);
// 设备
List<FanHealthIndex> fanHealthIndicesSbNew = fanHealthIndexService.getInfoListByGroupBySbFan(startTime, "fan_health_index_moment", "子系统");
List<FanHealthIndex> fanHealthIndicesSb = fanHealthIndexMapper.getInfoListByGroupBySbFan(startTime, "fan_health_index_moment", "子系统");
print("设备", fanHealthIndicesSb, fanHealthIndicesSbNew);
// 场站
List<FanHealthIndex> fanHealthIndicesCz = fanHealthIndexMapper.getInfoListByGroupByCzFan(startTime, "fan_health_index_moment", "设备");
List<FanHealthIndex> fanHealthIndicesCzNew = fanHealthIndexService.getInfoListByGroupByCzFan(startTime, "fan_health_index_moment", "设备");
print("场站", fanHealthIndicesCz, fanHealthIndicesCzNew);
// 区域
List<FanHealthIndex> fanHealthIndicesQy = fanHealthIndexMapper.getInfoListByGroupByQyFan(startTime, "fan_health_index_moment", "场站");
List<FanHealthIndex> fanHealthIndicesQyNew = fanHealthIndexService.getInfoListByGroupByQyFan(startTime, "fan_health_index_moment", "场站");
print("区域", fanHealthIndicesQy, fanHealthIndicesQyNew);
// 全域【所有 / 全国】
List<FanHealthIndex> fanHealthIndicesQg = fanHealthIndexMapper.getInfoListByGroupByQgFan(startTime, "fan_health_index_moment", "片区");
List<FanHealthIndex> fanHealthIndicesQgNew = fanHealthIndexService.getInfoListByGroupByQgFan(startTime, "fan_health_index_moment", "片区");
print("全域", fanHealthIndicesQg, fanHealthIndicesQgNew);
}
public void insertMomentDataPvTest(String startTime) throws ParseException {
// 设备
List<PvHealthIndex> fanHealthIndicesSb = pvHealthIndexMapper.getInfoListByGroupBySbPv(startTime, "pv_health_index_moment", "测点");
List<PvHealthIndex> fanHealthIndicesSbNew = pvHealthIndexService.getInfoListByGroupBySbPv(startTime, "pv_health_index_moment", "测点");
printPv("设备", fanHealthIndicesSb, fanHealthIndicesSbNew);
// 子阵
List<PvHealthIndex> fanHealthIndicesZz = pvHealthIndexMapper.getInfoListByGroupByZzPv(startTime, "pv_health_index_moment", "设备");
List<PvHealthIndex> fanHealthIndicesZzNew = pvHealthIndexService.getInfoListByGroupByZzPv(startTime, "pv_health_index_moment", "设备");
printPv("子阵", fanHealthIndicesZz, fanHealthIndicesZzNew);
// 场站
List<PvHealthIndex> fanHealthIndicesCz = pvHealthIndexMapper.getInfoListByGroupByCzPv(startTime, "pv_health_index_moment", "子阵");
List<PvHealthIndex> fanHealthIndicesCzNew = pvHealthIndexService.getInfoListByGroupByCzPv(startTime, "pv_health_index_moment", "子阵");
printPv("场站", fanHealthIndicesCz, fanHealthIndicesCzNew);
// 片区
List<PvHealthIndex> fanHealthIndicesQy = pvHealthIndexMapper.getInfoListByGroupByQyPv(startTime, "pv_health_index_moment", "场站");
List<PvHealthIndex> fanHealthIndicesQyNew = pvHealthIndexService.getInfoListByGroupByQyPv(startTime, "pv_health_index_moment", "场站");
printPv("片区", fanHealthIndicesQy, fanHealthIndicesQyNew);
// 全域【所有 / 全国】
List<PvHealthIndex> fanHealthIndicesQg = pvHealthIndexMapper.getInfoListByGroupByQgPv(startTime, "pv_health_index_moment", "片区");
List<PvHealthIndex> fanHealthIndicesQgNew = pvHealthIndexService.getInfoListByGroupByQgPv(startTime, "pv_health_index_moment", "片区");
printPv("全域", fanHealthIndicesQg, fanHealthIndicesQgNew);
}
public void print(String desc, List<FanHealthIndex> olds, List<FanHealthIndex> news) {
olds.sort(Comparator.comparing(FanHealthIndex::getArea).thenComparing(FanHealthIndex::getStation).thenComparing(FanHealthIndex::getEquipmentName).thenComparing(FanHealthIndex::getSubSystem).thenComparing(FanHealthIndex::getPointName));
news.sort(Comparator.comparing(FanHealthIndex::getArea).thenComparing(FanHealthIndex::getStation).thenComparing(FanHealthIndex::getEquipmentName).thenComparing(FanHealthIndex::getSubSystem).thenComparing(FanHealthIndex::getPointName));
log.info("对比{} old => {}", desc, olds);
log.info("对比{} news => {}", desc, news);
}
public void printPv(String desc, List<PvHealthIndex> olds, List<PvHealthIndex> news) {
olds.sort(Comparator.comparing(PvHealthIndex::getArea).thenComparing(PvHealthIndex::getStation).thenComparing(PvHealthIndex::getEquipmentName).thenComparing(PvHealthIndex::getSubarray).thenComparing(PvHealthIndex::getPointName));
news.sort(Comparator.comparing(PvHealthIndex::getArea).thenComparing(PvHealthIndex::getStation).thenComparing(PvHealthIndex::getEquipmentName).thenComparing(PvHealthIndex::getSubarray).thenComparing(PvHealthIndex::getPointName));
log.info("对比{} old => {}", desc, olds);
log.info("对比{} news => {}", desc, news);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment