谐波统计接口调整

This commit is contained in:
2025-05-13 14:55:39 +08:00
parent 757a68d57a
commit 0e3ece7007
3 changed files with 39 additions and 140 deletions

View File

@@ -56,6 +56,7 @@ import java.io.File;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Instant;
import java.time.LocalDate;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -105,7 +106,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
temList.forEach(item -> {
OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO();
if (!CollectionUtils.isEmpty(item.getLineIndexes())) {
List<LimitTarget> limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime());
List<RStatLimitTargetDPO> limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime());
overAreaLimitVO = handleAreaData(limitTargetList, item.getLineIndexes(), param);
}
overAreaLimitVO.setName(item.getName());
@@ -503,7 +504,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
* @date 2022/2/25 15:05
*/
@SuppressWarnings("unchecked")
public OverAreaLimitVO handleAreaData(List<LimitTarget> list, List<String> line, OverAreaVO param) {
public OverAreaLimitVO handleAreaData(List<RStatLimitTargetDPO> 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;
OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO();
@@ -572,32 +573,32 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
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));
for (Instant key : map.keySet()) {
List<LimitTarget> l = map.get(key);
for (LimitTarget pojo : l) {
if (pojo.getFreqDevOverTime() > 0) {
Map<LocalDate, List<RStatLimitTargetDPO>> map = list.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getTime));
for (LocalDate key : map.keySet()) {
List<RStatLimitTargetDPO> l = map.get(key);
for (RStatLimitTargetDPO pojo : l) {
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.getInuharm2Overtime() > 0) {
inuharmOverDay++;
}
}

View File

@@ -328,107 +328,12 @@ public class HarmonicServiceImpl implements IHarmonicService {
* @author xy
* @date 2022/2/25 15:05
*/
public List<LimitTarget> getLimitTarget(List<String> lineList, String startTime, String endTime) {
List<LimitTarget> listInfo = new ArrayList<>();
List<RStatLimitTargetDPO> limitRates = targetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>()
public List<RStatLimitTargetDPO> getLimitTarget(List<String> lineList, String startTime, String endTime) {
return targetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>()
.in(RStatLimitTargetDPO::getLineId, lineList)
.ge(StrUtil.isNotBlank(startTime), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime)))
.le(StrUtil.isNotBlank(endTime), RStatLimitTargetDPO::getTime, DateUtil.endOfDay(DateUtil.parse(endTime)))
);
if (CollUtil.isNotEmpty(limitRates)) {
limitRates.forEach(list -> {
LimitTarget limitRatePO = BeanUtil.copyProperties(list, LimitTarget.class);
LocalDateTime localDateTime = list.getTime().atStartOfDay();
// 将LocalDateTime转换为Instant
Instant instant = localDateTime.toInstant(ZoneOffset.ofHours(8));
limitRatePO.setTime(instant);
limitRatePO.setLineId(list.getLineId());
limitRatePO.setPhasicType(list.getPhasicType());
limitRatePO.setAllTime(list.getAllTime());
limitRatePO.setFlickerAllTime(list.getFlickerAllTime());
limitRatePO.setFlickerOverTime(list.getFlickerOvertime());
limitRatePO.setFreqDevOverTime(list.getFreqDevOvertime());
limitRatePO.setIHarm2OverTime(list.getIharm2Overtime());
limitRatePO.setIHarm3OverTime(list.getIharm3Overtime());
limitRatePO.setIHarm4OverTime(list.getIharm4Overtime());
limitRatePO.setIHarm5OverTime(list.getIharm5Overtime());
limitRatePO.setIHarm6OverTime(list.getIharm6Overtime());
limitRatePO.setIHarm7OverTime(list.getIharm7Overtime());
limitRatePO.setIHarm8OverTime(list.getIharm8Overtime());
limitRatePO.setIHarm9OverTime(list.getIharm9Overtime());
limitRatePO.setIHarm10OverTime(list.getIharm10Overtime());
limitRatePO.setIHarm11OverTime(list.getIharm11Overtime());
limitRatePO.setIHarm12OverTime(list.getIharm12Overtime());
limitRatePO.setIHarm13OverTime(list.getIharm13Overtime());
limitRatePO.setIHarm14OverTime(list.getIharm14Overtime());
limitRatePO.setIHarm15OverTime(list.getIharm15Overtime());
limitRatePO.setIHarm16OverTime(list.getIharm16Overtime());
limitRatePO.setIHarm17OverTime(list.getIharm17Overtime());
limitRatePO.setIHarm18OverTime(list.getIharm18Overtime());
limitRatePO.setIHarm19OverTime(list.getIharm19Overtime());
limitRatePO.setIHarm20OverTime(list.getIharm20Overtime());
limitRatePO.setIHarm21OverTime(list.getIharm21Overtime());
limitRatePO.setIHarm22OverTime(list.getIharm22Overtime());
limitRatePO.setIHarm23OverTime(list.getIharm23Overtime());
limitRatePO.setIHarm24OverTime(list.getIharm24Overtime());
limitRatePO.setIHarm25OverTime(list.getIharm25Overtime());
limitRatePO.setINegOverTime(list.getINegOvertime());
limitRatePO.setUAberranceOverTime(list.getUaberranceOvertime());
limitRatePO.setUBalanceOverTime(list.getUbalanceOvertime());
limitRatePO.setUHarm2OverTime(list.getUharm2Overtime());
limitRatePO.setUHarm3OverTime(list.getUharm3Overtime());
limitRatePO.setUHarm4OverTime(list.getUharm4Overtime());
limitRatePO.setUHarm5OverTime(list.getUharm5Overtime());
limitRatePO.setUHarm6OverTime(list.getUharm6Overtime());
limitRatePO.setUHarm7OverTime(list.getUharm7Overtime());
limitRatePO.setUHarm8OverTime(list.getUharm8Overtime());
limitRatePO.setUHarm9OverTime(list.getUharm9Overtime());
limitRatePO.setUHarm10OverTime(list.getUharm10Overtime());
limitRatePO.setUHarm11OverTime(list.getUharm11Overtime());
limitRatePO.setUHarm12OverTime(list.getUharm12Overtime());
limitRatePO.setUHarm13OverTime(list.getUharm13Overtime());
limitRatePO.setUHarm14OverTime(list.getUharm14Overtime());
limitRatePO.setUHarm15OverTime(list.getUharm15Overtime());
limitRatePO.setUHarm16OverTime(list.getUharm16Overtime());
limitRatePO.setUHarm17OverTime(list.getUharm17Overtime());
limitRatePO.setUHarm18OverTime(list.getUharm18Overtime());
limitRatePO.setUHarm19OverTime(list.getUharm19Overtime());
limitRatePO.setUHarm20OverTime(list.getUharm20Overtime());
limitRatePO.setUHarm21OverTime(list.getUharm21Overtime());
limitRatePO.setUHarm22OverTime(list.getUharm22Overtime());
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);
});
}
return listInfo;
}
public AreaDTO handleDataNew(List<RStatLimitTargetDPO> list, List<RStatLimitTargetDPO> sumList, String type) {
@@ -497,7 +402,7 @@ public class HarmonicServiceImpl implements IHarmonicService {
* @author xy
* @date 2022/2/25 15:05
*/
public AreaDTO handleData(List<LimitTarget> list, String type, List<String> lineList, String startTime, String endTime) {
public AreaDTO handleData(List<RStatLimitTargetDPO> list, String type, List<String> lineList, String startTime, String endTime) {
int onlineCount = 0, overLineCount = 0, overCountByDay = 0;
double avgOverDay = 0.0, ratio = 0.0;
AreaDTO areaDTO = new AreaDTO();
@@ -526,18 +431,18 @@ public class HarmonicServiceImpl implements IHarmonicService {
}
}
}
Map<Instant, List<LimitTarget>> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime));
for (Instant key : map.keySet()) {
Map<LocalDate, List<RStatLimitTargetDPO>> map = list.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getTime));
for (LocalDate key : map.keySet()) {
int overDay = 0;
List<LimitTarget> l = map.get(key);
for (LimitTarget pojo : l) {
List<RStatLimitTargetDPO> l = map.get(key);
for (RStatLimitTargetDPO pojo : l) {
if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) {
if (pojo.getUAberranceOverTime() > 0 || pojo.getUHarm2OverTime() > 0 || pojo.getUHarm3OverTime() > 0 || pojo.getUHarm4OverTime() > 0 || pojo.getUHarm5OverTime() > 0 || pojo.getUHarm6OverTime() > 0 || pojo.getUHarm7OverTime() > 0 || pojo.getUHarm8OverTime() > 0 || pojo.getUHarm9OverTime() > 0 || pojo.getUHarm10OverTime() > 0 || pojo.getUHarm11OverTime() > 0 || pojo.getUHarm12OverTime() > 0 || pojo.getUHarm13OverTime() > 0 || pojo.getUHarm14OverTime() > 0 || pojo.getUHarm15OverTime() > 0 || pojo.getUHarm16OverTime() > 0 || pojo.getUHarm17OverTime() > 0 || pojo.getUHarm18OverTime() > 0 || pojo.getUHarm19OverTime() > 0 || pojo.getUHarm20OverTime() > 0 || pojo.getUHarm21OverTime() > 0 || pojo.getUHarm22OverTime() > 0 || pojo.getUHarm23OverTime() > 0 || pojo.getUHarm24OverTime() > 0 || pojo.getUHarm25OverTime() > 0) {
if (pojo.getUaberranceOvertime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm3Overtime() > 0 || pojo.getUharm4Overtime() > 0 || pojo.getUharm5Overtime() > 0 || pojo.getUharm6Overtime() > 0 || pojo.getUharm7Overtime() > 0 || pojo.getUharm8Overtime() > 0 || pojo.getUharm9Overtime() > 0 || pojo.getUharm10Overtime() > 0 || pojo.getUharm11Overtime() > 0 || pojo.getUharm12Overtime() > 0 || pojo.getUharm13Overtime() > 0 || pojo.getUharm14Overtime() > 0 || pojo.getUharm15Overtime() > 0 || pojo.getUharm16Overtime() > 0 || pojo.getUharm17Overtime() > 0 || pojo.getUharm18Overtime() > 0 || pojo.getUharm19Overtime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm21Overtime() > 0 || pojo.getUharm22Overtime() > 0 || pojo.getUharm23Overtime() > 0 || pojo.getUharm24Overtime() > 0 || pojo.getUharm25Overtime() > 0) {
overCountByDay = overCountByDay + 1;
overDay = overDay + 1;
}
} else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) {
if (pojo.getIHarm2OverTime() > 0 || pojo.getIHarm3OverTime() > 0 || pojo.getIHarm4OverTime() > 0 || pojo.getIHarm5OverTime() > 0 || pojo.getIHarm6OverTime() > 0 || pojo.getIHarm7OverTime() > 0 || pojo.getIHarm8OverTime() > 0 || pojo.getIHarm9OverTime() > 0 || pojo.getIHarm10OverTime() > 0 || pojo.getIHarm11OverTime() > 0 || pojo.getIHarm12OverTime() > 0 || pojo.getIHarm13OverTime() > 0 || pojo.getIHarm14OverTime() > 0 || pojo.getIHarm15OverTime() > 0 || pojo.getIHarm16OverTime() > 0 || pojo.getIHarm17OverTime() > 0 || pojo.getIHarm18OverTime() > 0 || pojo.getIHarm19OverTime() > 0 || pojo.getIHarm20OverTime() > 0 || pojo.getIHarm21OverTime() > 0 || pojo.getIHarm22OverTime() > 0 || pojo.getIHarm23OverTime() > 0 || pojo.getIHarm24OverTime() > 0 || pojo.getIHarm25OverTime() > 0) {
if (pojo.getIharm2Overtime() > 0 || pojo.getIharm3Overtime() > 0 || pojo.getIharm4Overtime() > 0 || pojo.getIharm5Overtime() > 0 || pojo.getIharm6Overtime() > 0 || pojo.getIharm7Overtime() > 0 || pojo.getIharm8Overtime() > 0 || pojo.getIharm9Overtime() > 0 || pojo.getIharm10Overtime() > 0 || pojo.getIharm11Overtime() > 0 || pojo.getIharm12Overtime() > 0 || pojo.getIharm13Overtime() > 0 || pojo.getIharm14Overtime() > 0 || pojo.getIharm15Overtime() > 0 || pojo.getIharm16Overtime() > 0 || pojo.getIharm17Overtime() > 0 || pojo.getIharm18Overtime() > 0 || pojo.getIharm19Overtime() > 0 || pojo.getIharm20Overtime() > 0 || pojo.getIharm21Overtime() > 0 || pojo.getIharm22Overtime() > 0 || pojo.getIharm23Overtime() > 0 || pojo.getIharm24Overtime() > 0 || pojo.getIharm25Overtime() > 0) {
overCountByDay = overCountByDay + 1;
overDay = overDay + 1;
}

View File

@@ -684,32 +684,25 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
List<PollutionLineDTO> list = new ArrayList<>();
if (param.getType() == 0) {
param.setServerName(generalInfo.getMicroServiceName());
List<String> lineList = new ArrayList<>();
PollutionParamDTO paramDTO = new PollutionParamDTO();
if (StringUtils.isBlank(RequestUtil.getDeptIndex())) {
return list;
}
List<GeneralDeviceDTO> deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
deviceList.forEach(item -> {
if (!CollectionUtils.isEmpty(item.getLineIndexes())) {
lineList.addAll(item.getLineIndexes());
}
});
if (!CollectionUtils.isEmpty(lineList)) {
paramDTO.setLineList(lineList);
list = lineFeignClient.getLineInfo(paramDTO).getData();
List<PublicDTO> result = rMpPollutionDPOMapper.getTop10Line(lineList, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())), param.getStatisticalType().getId());
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData();
List<String> ids = generalDeviceDTOList.stream().filter(it->CollUtil.isNotEmpty(it.getLineIndexes())).flatMap(it->it.getLineIndexes().stream()).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(ids)) {
List<PublicDTO> result = rMpPollutionDPOMapper.getTop10Line(ids, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())), param.getStatisticalType().getId());
if (!CollectionUtils.isEmpty(result)) {
list.stream().map(list1 -> result.stream().filter(list2 -> Objects.equals(list1.getId(), list2.getId())).findAny().map(m -> {
list1.setData(m.getData());
return list1;
})).collect(Collectors.toList());
List<String> monitorIds = result.stream().map(PublicDTO::getId).distinct().collect(Collectors.toList());
paramDTO.setLineList(monitorIds);
List<PollutionLineDTO> monitorList = lineFeignClient.getLineInfo(paramDTO).getData();
Map<String,PollutionLineDTO> monitorMap = monitorList.stream().collect(Collectors.toMap(PollutionLineDTO::getId,Function.identity()));
list = result.stream().map(it->{
PollutionLineDTO pollutionLineDTO = new PollutionLineDTO();
pollutionLineDTO.setData(NumberUtil.round(it.getData(),2).doubleValue());
PollutionLineDTO monitor = monitorMap.get(it.getId());
pollutionLineDTO.setName(monitor.getSubstation()+"_"+monitor.getName());
return pollutionLineDTO;
}).sorted(Comparator.comparing(PollutionLineDTO::getData,Comparator.reverseOrder())).collect(Collectors.toList());
}
}
list.sort((item1, item2) -> item2.getData().compareTo(item1.getData()));
if (list.size() > Param.UP_LIMIT) {
return list.subList(Param.DOWN_LIMIT, Param.UP_LIMIT);
}
return list;
}
//pms查询信息