From 3efc36d5f1c662ccd9c6ab702b40c9fdc8904b92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=B6=85?= <973677575@qq.com> Date: Wed, 6 Jul 2022 21:38:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=A8=E7=BA=BF=E7=8E=87?= =?UTF-8?q?=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OnlineRateDataServiceImpl.java | 149 +++--------------- 1 file changed, 25 insertions(+), 124 deletions(-) diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java index 2a4ec9459..11d3770c1 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/OnlineRateDataServiceImpl.java @@ -1,6 +1,5 @@ package com.njcn.harmonic.service.impl; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.njcn.common.config.GeneralInfo; import com.njcn.device.api.GeneralDeviceInfoClient; @@ -21,7 +20,6 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; -import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -100,43 +98,7 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService { onlineRateCensusVO.setSingle(single); onlineRateCensusVO.setRatio(ratio); - // List list = new ArrayList<>(); - // List periodList = new ArrayList<>(); - // OnlineRateCensusVO onlineRateCensusVO = new OnlineRateCensusVO(); - // OnlineRateParam onlineRateParam = new OnlineRateParam(); - // BeanUtil.copyProperties(onlineRateCensusParam,onlineRateParam); - // List type = new ArrayList<>(); - // List single = new ArrayList<>(); - // List ratio = new ArrayList<>(); - // if (Objects.equals(onlineRateCensusParam.getStatisticalType(),0)){ - // list = getOnlineRateData(onlineRateParam).get(0).getChildren(); - // } else { - // list = getOnlineRateData(onlineRateParam); - // } - // if (!CollectionUtils.isEmpty(list)){ - // list.forEach(onlineRateVO -> { - // type.add(onlineRateVO.getName()); - // single.add(onlineRateVO.getOnlineRateData()); - // onlineRateCensusVO.setType(type); - // onlineRateCensusVO.setSingle(single); - // }); - // } - // if (StringUtils.isNotBlank(onlineRateCensusParam.getPeriodBeginTime()) && - // StringUtils.isNotBlank(onlineRateCensusParam.getPeriodEndTime())){ - // onlineRateParam.setSearchBeginTime(onlineRateCensusParam.getPeriodBeginTime()); - // onlineRateParam.setSearchEndTime(onlineRateCensusParam.getPeriodEndTime()); - // if (Objects.equals(onlineRateCensusParam.getStatisticalType(),0)){ - // periodList = getOnlineRateData(onlineRateParam).get(0).getChildren(); - // } else { - // periodList = getOnlineRateData(onlineRateParam); - // } - // if (!CollectionUtils.isEmpty(periodList)) { - // periodList.forEach(onlineRateVO -> { - // ratio.add(onlineRateVO.getOnlineRateData()); - // onlineRateCensusVO.setRatio(ratio); - // }); - // } - // } + return onlineRateCensusVO; } @@ -161,9 +123,9 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService { })).collect(Collectors.toList()); } substationList.stream().peek(item -> item.setChildren(getChildCategoryList(item, deviceList))).collect(Collectors.toList()); + setSubstationListOnlineRate(substationList); powerCompanyList.stream().peek(item -> item.setChildren(getChildCategoryList(item, substationList))).collect(Collectors.toList()); - setFatherOnlineRate(substationList); - setFatherOnlineRate(powerCompanyList); + setPowerCompanyListOnlineRate(powerCompanyList); return powerCompanyList; } @@ -216,102 +178,41 @@ public class OnlineRateDataServiceImpl implements OnlineRateDataService { return publicDTOList; } - /** - * 父级组装 - */ - private void setFatherData(Map> map, List list, DeviceInfoParam.BusinessParam onlineRateParam) { - for (String key : map.keySet()) { - if (!CollectionUtils.isEmpty(map.get(key))) { - List onlineRateVOList = getTreeData(map.get(key), onlineRateParam); - //拼接父级 - OnlineRateVO onlineRateVO = new OnlineRateVO(); - onlineRateVO.setId("0"); - onlineRateVO.setName(key); - onlineRateVO.setLevel(0); - if (CollectionUtil.isNotEmpty(onlineRateVOList)) { - onlineRateVO.setChildren(onlineRateVOList); - } - list.add(onlineRateVO); - setTopOnlineRate(list); - } - } - } - /** - * 计算父级终端在线率 + * 计算变电站层级在线率 */ - private void setFatherOnlineRate(List list) { + private void setSubstationListOnlineRate(List list) { list.forEach(item -> { List children = item.getChildren(); List tempList = children.stream().filter(s -> !Objects.equals(s.getOnlineRateData(), 3.14159)).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(tempList)) { - item.setOnlineRateData(tempList.stream().mapToDouble(OnlineRateVO::getOnlineRateData).sum() / children.size()); + item.setOnlineRateData(tempList.stream().mapToDouble(OnlineRateVO::getOnlineRateData).sum() / tempList.size()); + } else { + item.setOnlineRateData(3.14159); + } + }); + } + /** + * 计算供电公司层级在线率 + */ + private void setPowerCompanyListOnlineRate(List list) { + list.forEach(item -> { + List rateVOS = new ArrayList<>(); + item.getChildren().forEach(item1 -> { + item1.getChildren().forEach(item2 -> { + rateVOS.add(item2); + }); + }); + List tempList = rateVOS.stream().filter(s -> !Objects.equals(s.getOnlineRateData(), 3.14159)).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(tempList)) { + item.setOnlineRateData(tempList.stream().mapToDouble(OnlineRateVO::getOnlineRateData).sum() / tempList.size()); } else { item.setOnlineRateData(3.14159); } }); } - //变电站 - private void setSubstationIntegrity(List list) { - list.forEach(item -> { - List children = item.getChildren(); - List result = new ArrayList<>(children); - double aver = result.stream().mapToDouble(OnlineRateVO::getOnlineRateData).average().orElseThrow(IllegalStateException::new); - item.setOnlineRateData(BigDecimal.valueOf(aver).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); - }); - } - - //供电公司 - private void setPowerCompanyIntegrity(List list) { - list.forEach(item -> { - List result = new ArrayList<>(); - List children = item.getChildren(); - children.forEach(item2 -> { - List children2 = item2.getChildren(); - result.addAll(children2); - }); - double aver = result.stream().mapToDouble(OnlineRateVO::getOnlineRateData).average().orElseThrow(IllegalStateException::new); - item.setOnlineRateData(BigDecimal.valueOf(aver).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); - }); - } - - //省级 - private void setAreaIntegrity(List list) { - list.forEach(item -> { - List result = new ArrayList<>(); - List children = item.getChildren(); - children.forEach(item2 -> { - List children2 = item2.getChildren(); - children2.forEach(item3 -> { - List children3 = item3.getChildren(); - result.addAll(children3); - }); - }); - double aver = result.stream().mapToDouble(OnlineRateVO::getOnlineRateData).average().orElseThrow(IllegalStateException::new); - item.setOnlineRateData(BigDecimal.valueOf(aver).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); - }); - } - - private void setTopOnlineRate(List list) { - list.forEach(item -> { - List result = new ArrayList<>(); - List children = item.getChildren(); - children.forEach(item2 -> { - List children2 = item2.getChildren(); - children2.forEach(item3 -> { - List children3 = item3.getChildren(); - children3.forEach(item4 -> { - List children4 = item4.getChildren(); - result.addAll(children4); - }); - }); - }); - double aver = result.stream().mapToDouble(OnlineRateVO::getOnlineRateData).average().orElseThrow(IllegalStateException::new); - item.setOnlineRateData(BigDecimal.valueOf(aver).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); - }); - } }