|
|
|
|
@@ -2,6 +2,9 @@ package com.njcn.prepare.harmonic.service.mysql.upload.impl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.date.DatePattern;
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
@@ -82,7 +85,6 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Async("asyncExecutor")
|
|
|
|
|
public void handlerDay(String date){
|
|
|
|
|
List<RUploadCommPointBus> poLIst = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
@@ -177,6 +179,7 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
|
|
|
|
|
rUploadCommPointBus.setMonitorId(point.getMonitorId());
|
|
|
|
|
rUploadCommPointBus.setDataSource("01");
|
|
|
|
|
rUploadCommPointBus.setCnMonitorId(point.getId());
|
|
|
|
|
rUploadCommPointBus.setUploadStatus(DataStateEnum.DELETED.getCode());
|
|
|
|
|
poLIst.add(rUploadCommPointBus);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@@ -202,7 +205,7 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
|
|
|
|
|
}
|
|
|
|
|
if(cpMap.containsKey(item.getCnMonitorId())){
|
|
|
|
|
RStatDataVDPO rStatDataVDPO = cpMap.get(item.getCnMonitorId());
|
|
|
|
|
item.setGVrms(rStatDataVDPO.getRms());
|
|
|
|
|
item.setgVrms(rStatDataVDPO.getRms());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Integer limitDay = 0;
|
|
|
|
|
@@ -254,6 +257,158 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void handlerMonth(String date){
|
|
|
|
|
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN));
|
|
|
|
|
DateTime end = DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN);
|
|
|
|
|
|
|
|
|
|
String month = DateUtil.format(end,DatePattern.NORM_MONTH_PATTERN);
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<RUploadCommPointBus> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
lambdaQueryWrapper.between(RUploadCommPointBus::getStatisticalDate,begin,end).eq(RUploadCommPointBus::getStatisticalType,DicDataEnum.STATISTICAL_TYPE_D.getCode());
|
|
|
|
|
List<RUploadCommPointBus> rUploadCommPointBusList = this.list(lambdaQueryWrapper);
|
|
|
|
|
|
|
|
|
|
List<RUploadCommPointBus> poLIst = new ArrayList<>();
|
|
|
|
|
Map<String,List<RUploadCommPointBus>> map = rUploadCommPointBusList.stream().collect(Collectors.groupingBy(RUploadCommPointBus::getBusId));
|
|
|
|
|
map.forEach((busId,list)->{
|
|
|
|
|
RUploadCommPointBus one = list.get(0);
|
|
|
|
|
RUploadCommPointBus rUploadCommPointBus = new RUploadCommPointBus();
|
|
|
|
|
rUploadCommPointBus.setObjId(IdUtil.simpleUUID());
|
|
|
|
|
rUploadCommPointBus.setBusId(busId);
|
|
|
|
|
rUploadCommPointBus.setBusName(one.getBusName());
|
|
|
|
|
rUploadCommPointBus.setBusVoltageLevel(one.getBusVoltageLevel());
|
|
|
|
|
rUploadCommPointBus.setStatisticalType(DicDataEnum.STATISTICAL_TYPE_M.getCode());
|
|
|
|
|
rUploadCommPointBus.setStatisticalDate(month);
|
|
|
|
|
rUploadCommPointBus.setProvinceOrg(one.getProvinceOrg());
|
|
|
|
|
rUploadCommPointBus.setProvinceOrgName(one.getProvinceOrgName());
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setCityOrg(one.getCityOrg());
|
|
|
|
|
rUploadCommPointBus.setCityOrgName(one.getCityOrgName());
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setMaintOrg(one.getMaintOrg());
|
|
|
|
|
rUploadCommPointBus.setMaintOrgName(one.getMaintOrgName());
|
|
|
|
|
rUploadCommPointBus.setStationType("zf01");
|
|
|
|
|
rUploadCommPointBus.setStationId(one.getStationId());
|
|
|
|
|
rUploadCommPointBus.setStationName(one.getStationName());
|
|
|
|
|
rUploadCommPointBus.setStationVoltageLevel(one.getStationVoltageLevel());
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setDataSource("01");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> temList = list.stream().map(RUploadCommPointBus::getMonitorId).collect(Collectors.toList());
|
|
|
|
|
String point = findMostFrequentString(temList);
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setMonitorId(point);
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setAvgVrms(list.stream().filter(item->Objects.nonNull(item.getAvgVrms())).mapToDouble(RUploadCommPointBus::getAvgVrms).average().orElse(0.0));
|
|
|
|
|
rUploadCommPointBus.setgVrms(list.stream().filter(item->Objects.nonNull(item.getgVrms())).mapToDouble(RUploadCommPointBus::getgVrms).average().orElse(0.0));
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setHarmVOvDuration(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDuration())).mapToInt(RUploadCommPointBus::getHarmVOvDuration).sum());
|
|
|
|
|
rUploadCommPointBus.setHarmVOvDays(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDays())).mapToInt(RUploadCommPointBus::getHarmVOvDays).sum());
|
|
|
|
|
rUploadCommPointBus.setVunbanOvDuration(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDuration())).mapToInt(RUploadCommPointBus::getVunbanOvDuration).sum());
|
|
|
|
|
rUploadCommPointBus.setVunbanOvDays(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDays())).mapToInt(RUploadCommPointBus::getVunbanOvDays).sum());
|
|
|
|
|
rUploadCommPointBus.setPltOvDuration(list.stream().filter(item->Objects.nonNull(item.getPltOvDuration())).mapToInt(RUploadCommPointBus::getPltOvDuration).sum());
|
|
|
|
|
rUploadCommPointBus.setPltOvDays(list.stream().filter(item->Objects.nonNull(item.getPltOvDays())).mapToInt(RUploadCommPointBus::getPltOvDays).sum());
|
|
|
|
|
rUploadCommPointBus.setOvDays(list.stream().filter(item->Objects.nonNull(item.getOvDays())).mapToInt(RUploadCommPointBus::getOvDays).sum());
|
|
|
|
|
rUploadCommPointBus.setUploadStatus(DataStateEnum.DELETED.getCode());
|
|
|
|
|
poLIst.add(rUploadCommPointBus);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if(CollUtil.isNotEmpty(poLIst)){
|
|
|
|
|
this.saveOrUpdateBatchByMultiId(poLIst);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void handlerYear(String date){
|
|
|
|
|
DateTime begin = DateUtil.beginOfYear(DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN));
|
|
|
|
|
DateTime end = DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN);
|
|
|
|
|
|
|
|
|
|
String year = DateUtil.format(end,DatePattern.NORM_YEAR_PATTERN);
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<RUploadCommPointBus> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
lambdaQueryWrapper.between(RUploadCommPointBus::getStatisticalDate,begin,end).eq(RUploadCommPointBus::getStatisticalType,DicDataEnum.STATISTICAL_TYPE_D.getCode());
|
|
|
|
|
List<RUploadCommPointBus> rUploadCommPointBusList = this.list(lambdaQueryWrapper);
|
|
|
|
|
|
|
|
|
|
List<RUploadCommPointBus> poLIst = new ArrayList<>();
|
|
|
|
|
Map<String,List<RUploadCommPointBus>> map = rUploadCommPointBusList.stream().collect(Collectors.groupingBy(RUploadCommPointBus::getBusId));
|
|
|
|
|
map.forEach((busId,list)->{
|
|
|
|
|
RUploadCommPointBus one = list.get(0);
|
|
|
|
|
|
|
|
|
|
RUploadCommPointBus rUploadCommPointBus = new RUploadCommPointBus();
|
|
|
|
|
rUploadCommPointBus.setStatisticalType(DicDataEnum.STATISTICAL_TYPE_Y.getCode());
|
|
|
|
|
rUploadCommPointBus.setStatisticalDate(year);
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setObjId(IdUtil.simpleUUID());
|
|
|
|
|
rUploadCommPointBus.setBusId(busId);
|
|
|
|
|
rUploadCommPointBus.setBusName(one.getBusName());
|
|
|
|
|
rUploadCommPointBus.setBusVoltageLevel(one.getBusVoltageLevel());
|
|
|
|
|
rUploadCommPointBus.setProvinceOrg(one.getProvinceOrg());
|
|
|
|
|
rUploadCommPointBus.setProvinceOrgName(one.getProvinceOrgName());
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setCityOrg(one.getCityOrg());
|
|
|
|
|
rUploadCommPointBus.setCityOrgName(one.getCityOrgName());
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setMaintOrg(one.getMaintOrg());
|
|
|
|
|
rUploadCommPointBus.setMaintOrgName(one.getMaintOrgName());
|
|
|
|
|
rUploadCommPointBus.setStationType("zf01");
|
|
|
|
|
rUploadCommPointBus.setStationId(one.getStationId());
|
|
|
|
|
rUploadCommPointBus.setStationName(one.getStationName());
|
|
|
|
|
rUploadCommPointBus.setStationVoltageLevel(one.getStationVoltageLevel());
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setDataSource("01");
|
|
|
|
|
|
|
|
|
|
List<String> temList = list.stream().map(RUploadCommPointBus::getMonitorId).collect(Collectors.toList());
|
|
|
|
|
String point = findMostFrequentString(temList);
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setMonitorId(point);
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setAvgVrms(list.stream().filter(item->Objects.nonNull(item.getAvgVrms())).mapToDouble(RUploadCommPointBus::getAvgVrms).average().orElse(0.0));
|
|
|
|
|
rUploadCommPointBus.setgVrms(list.stream().filter(item->Objects.nonNull(item.getgVrms())).mapToDouble(RUploadCommPointBus::getgVrms).average().orElse(0.0));
|
|
|
|
|
|
|
|
|
|
rUploadCommPointBus.setHarmVOvDuration(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDuration())).mapToInt(RUploadCommPointBus::getHarmVOvDuration).sum());
|
|
|
|
|
rUploadCommPointBus.setHarmVOvDays(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDays())).mapToInt(RUploadCommPointBus::getHarmVOvDays).sum());
|
|
|
|
|
rUploadCommPointBus.setVunbanOvDuration(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDuration())).mapToInt(RUploadCommPointBus::getVunbanOvDuration).sum());
|
|
|
|
|
rUploadCommPointBus.setVunbanOvDays(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDays())).mapToInt(RUploadCommPointBus::getVunbanOvDays).sum());
|
|
|
|
|
rUploadCommPointBus.setPltOvDuration(list.stream().filter(item->Objects.nonNull(item.getPltOvDuration())).mapToInt(RUploadCommPointBus::getPltOvDuration).sum());
|
|
|
|
|
rUploadCommPointBus.setPltOvDays(list.stream().filter(item->Objects.nonNull(item.getPltOvDays())).mapToInt(RUploadCommPointBus::getPltOvDays).sum());
|
|
|
|
|
rUploadCommPointBus.setOvDays(list.stream().filter(item->Objects.nonNull(item.getOvDays())).mapToInt(RUploadCommPointBus::getOvDays).sum());
|
|
|
|
|
rUploadCommPointBus.setUploadStatus(DataStateEnum.DELETED.getCode());
|
|
|
|
|
poLIst.add(rUploadCommPointBus);
|
|
|
|
|
});
|
|
|
|
|
if(CollUtil.isNotEmpty(poLIst)){
|
|
|
|
|
this.saveOrUpdateBatchByMultiId(poLIst);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String findMostFrequentString(List<String> strings) {
|
|
|
|
|
if (strings == null || strings.isEmpty()) {
|
|
|
|
|
throw new IllegalArgumentException("输入的列表不能为空");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 使用HashMap来记录每个字符串及其出现次数
|
|
|
|
|
Map<String, Integer> frequencyMap = new HashMap<>();
|
|
|
|
|
for (String str : strings) {
|
|
|
|
|
frequencyMap.put(str, frequencyMap.getOrDefault(str, 0) + 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 初始化最大出现次数和对应的字符串
|
|
|
|
|
int maxCount = 0;
|
|
|
|
|
String mostFrequent = strings.get(0); // 假设列表不为空,则取第一个字符串作为初始值
|
|
|
|
|
|
|
|
|
|
// 遍历HashMap找到出现次数最多的字符串
|
|
|
|
|
for (Map.Entry<String, Integer> entry : frequencyMap.entrySet()) {
|
|
|
|
|
if (entry.getValue() > maxCount) {
|
|
|
|
|
maxCount = entry.getValue();
|
|
|
|
|
mostFrequent = entry.getKey();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return mostFrequent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***
|
|
|
|
|
* 获取越限最大值
|
|
|
|
|
* @param object
|
|
|
|
|
@@ -306,13 +461,6 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
|
|
|
|
|
return monitorRes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void handlerMonth(String date){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void handlerYear(String date){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|