From 06d3d15a5a08637041cc601101c063b11b07a346 Mon Sep 17 00:00:00 2001 From: net <net@netdeMBP.lan> Date: 星期五, 14 二月 2025 17:25:21 +0800 Subject: [PATCH] 合并理去杀杀人 --- zhitan-system/src/main/java/com/zhitan/consumptionanalysis/service/impl/ConsumptionAnalysisServiceImpl.java | 369 ++++++++++++++++++++++++++-------------------------- 1 files changed, 185 insertions(+), 184 deletions(-) diff --git a/zhitan-system/src/main/java/com/zhitan/consumptionanalysis/service/impl/ConsumptionAnalysisServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/consumptionanalysis/service/impl/ConsumptionAnalysisServiceImpl.java index 4f48bc5..7d1db3e 100644 --- a/zhitan-system/src/main/java/com/zhitan/consumptionanalysis/service/impl/ConsumptionAnalysisServiceImpl.java +++ b/zhitan-system/src/main/java/com/zhitan/consumptionanalysis/service/impl/ConsumptionAnalysisServiceImpl.java @@ -44,20 +44,20 @@ private final ModelNodeMapper modelNodeMapper; private final EnergyIndicatorsMapper energyIndicatorsMapper; - + private final ProductOutputMapper productOutputMapper; - + private final SysEnergyMapper sysEnergyMapper; private final IDataItemService dataItemService; private final IModelNodeService modelNodeService; - + @Override public ConsumptionAnalysisVO getByArea(ConsumptionAnalysisDTO dto) { List<ConsumptionAnalysisData> dataList = new ArrayList<>(); List<ChartData> chartDataList = new ArrayList<>(); - + ConsumptionAnalysisVO consumptionAnalysisVO = new ConsumptionAnalysisVO(); final String analysisType = dto.getAnalysisType(); final String nodeId = dto.getNodeId(); @@ -67,7 +67,7 @@ /** * 鏌ヨ鐐逛綅涓庣敤鑳藉崟鍏冧俊鎭� */ - List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId,energyType); + List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId, energyType); // if (CollectionUtils.isEmpty(nodeIndexInforList)) { // return consumptionAnalysisVO; @@ -88,7 +88,7 @@ //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� lastTime = DateUtil.offsetMonth(beginTime, -12); lastEndTime = DateUtil.offsetMonth(endTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ lastTime = DateUtil.offsetDay(beginTime, -1); lastEndTime = DateUtil.offsetDay(endTime, -1); @@ -103,7 +103,7 @@ //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� lastTime = DateUtil.offsetMonth(beginTime, -12); lastEndTime = DateUtil.offsetMonth(endTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ lastTime = DateUtil.offsetMonth(beginTime, -1); lastEndTime = DateUtil.offsetMonth(endTime, -1); @@ -118,18 +118,18 @@ //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� lastTime = DateUtil.offsetMonth(beginTime, -12); lastEndTime = DateUtil.offsetMonth(endTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ - lastTime = DateUtil.offsetMonth(beginTime, -1); - lastEndTime = DateUtil.offsetMonth(endTime, -1); + lastTime = DateUtil.offsetMonth(beginTime, -1); + lastEndTime = DateUtil.offsetMonth(endTime, -1); } - + timeFormat = "yyyy-MM"; } // 鏍规嵁indexId鏌ヨdataItem List<DataItem> dataItemList = new ArrayList<>(); List<DataItem> lastDataItemList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(indexIds)) { + if (CollectionUtils.isNotEmpty(indexIds)) { dataItemList = dataItemService.getDataItemTimeRangeInforByIndexIds(beginTime, endTime, shixuTimeType, indexIds); lastDataItemList = dataItemService.getDataItemTimeRangeInforByIndexIds(lastTime, lastEndTime, shixuTimeType, indexIds); } @@ -144,11 +144,11 @@ final String compareTime; DateTime dateTime; if (TimeType.DAY.name().equals(queryTimeType)) { - + if ("YOY".equals(analysisType)) { //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� dateTime = DateUtil.offsetMonth(beginTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ dateTime = DateUtil.offsetDay(beginTime, -1); } @@ -158,7 +158,7 @@ if ("YOY".equals(analysisType)) { //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� dateTime = DateUtil.offsetMonth(beginTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ dateTime = DateUtil.offsetMonth(beginTime, -1); } @@ -168,25 +168,25 @@ if ("YOY".equals(analysisType)) { //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� dateTime = DateUtil.offsetMonth(beginTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ - dateTime = DateUtil.offsetMonth(beginTime, -1); + dateTime = DateUtil.offsetMonth(beginTime, -1); } compareTime = DateUtil.format(dateTime, timeFormat); } - - + + final List<DataItem> dataItems = dataItemMap.get(currentTime); final List<DataItem> lastDataItems = lastDataItemMap.get(compareTime); BigDecimal sum = new BigDecimal(0); BigDecimal lastSum = new BigDecimal(0); if (CollectionUtils.isNotEmpty(dataItems)) { - // 姹傚拰 - sum = BigDecimal.valueOf(dataItems.stream() + // 姹傚拰 + sum = BigDecimal.valueOf(dataItems.stream() .mapToDouble(DataItem::getValue).sum()).setScale(CommonConst.DIGIT_2, RoundingMode.HALF_UP); } - - if(CollectionUtils.isNotEmpty(lastDataItems)) { + + if (CollectionUtils.isNotEmpty(lastDataItems)) { lastSum = BigDecimal.valueOf(lastDataItems.stream() .mapToDouble(DataItem::getValue).sum()).setScale(CommonConst.DIGIT_2, RoundingMode.HALF_UP); } @@ -194,7 +194,7 @@ data.setCompareValue(lastSum.doubleValue()); data.setCurrentTime(currentTime); data.setCompareTime(compareTime); - + if ("YOY".equals(analysisType)) { //鍚屾瘮鍒嗘瀽 @@ -238,7 +238,7 @@ chartDataList.add(chartData); }); - + consumptionAnalysisVO.setDataList(dataList); consumptionAnalysisVO.setChartDataList(chartDataList); return consumptionAnalysisVO; @@ -252,32 +252,32 @@ String queryTimeType = dto.getTimeType(); // 鍒涘缓涓�涓狹ap鏉ュ瓨鍌ㄦ�诲拰 Map<String, BigDecimal> result = new HashMap<>(); - - + + //鏍规嵁妯″瀷鍚嶇О鏌ヨmodelCode final String parentId = dto.getNodeId(); - + //鏍规嵁鎬荤粨鐐规煡璇� final List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeByParentId(parentId); final List<String> eneryIdList = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getEnergyId).distinct().collect(Collectors.toList()); final LambdaQueryWrapper<SysEnergy> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList),SysEnergy::getEnersno,eneryIdList); + queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList), SysEnergy::getEnersno, eneryIdList); final List<SysEnergy> sysEnergies = sysEnergyMapper.selectList(queryWrapper); final Map<String, String> energyNameMap = sysEnergies.stream().collect(Collectors.toMap(SysEnergy::getEnersno, SysEnergy::getEnername)); final Map<String, String> nodeNameMap = new HashMap<>(); - nodeIndexInforList.forEach(n->{ + nodeIndexInforList.forEach(n -> { final String nodeId = n.getNodeId(); final String name = n.getName(); - if(!nodeNameMap.containsKey(nodeId)){ - nodeNameMap.put(nodeId,name); + if (!nodeNameMap.containsKey(nodeId)) { + nodeNameMap.put(nodeId, name); } }); // 鎸夌収鐐逛綅杩涜鍒嗙粍 Map<String, List<ModelNodeIndexInfor>> nodeIndexMap = nodeIndexInforList.stream().collect( Collectors.groupingBy(ModelNodeIndexInfor::getNodeId)); - + // 鏍规嵁nodeId鑾峰彇鑳芥簮绫诲瀷 // 鎵�鏈夌偣浣嶄俊鎭� List<String> indexIds = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getIndexId).distinct().collect(Collectors.toList()); @@ -300,27 +300,26 @@ endTime = DateUtil.endOfYear(queryTime); shixuTimeType = TimeType.MONTH.name(); } - - + + // 鏍规嵁indexId鏌ヨdataItem List<DataItem> dataItemList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(indexIds)) { + if (CollectionUtils.isNotEmpty(indexIds)) { dataItemList = dataItemService.getDataItemTimeRangeInforByIndexIds(beginTime, endTime, shixuTimeType, indexIds); } final Map<String, List<DataItem>> dataItemMap = dataItemList.stream().collect(Collectors.groupingBy(DataItem::getIndexId)); - + // 鏍规嵁鐐逛綅鍒嗙粍锛屾眰鍜� - Map<String,BigDecimal> dataItemTotalMap = new HashMap<>(); - dataItemMap.forEach((key,value)->{ + Map<String, BigDecimal> dataItemTotalMap = new HashMap<>(); + dataItemMap.forEach((key, value) -> { BigDecimal sum = BigDecimal.valueOf(value.stream() .mapToDouble(DataItem::getValue).sum()).setScale(CommonConst.DIGIT_2, RoundingMode.HALF_UP); - dataItemTotalMap.put(key,sum); + dataItemTotalMap.put(key, sum); }); - - - nodeIndexMap.forEach((nodeId,indexList)->{ - indexList.forEach(index->{ + + nodeIndexMap.forEach((nodeId, indexList) -> { + indexList.forEach(index -> { final String energyId = index.getEnergyId(); final String indexId = index.getIndexId(); final BigDecimal total = dataItemTotalMap.getOrDefault(indexId, BigDecimal.ZERO); @@ -337,15 +336,15 @@ String energyId = keys[1]; BigDecimal totalEnergy = entry.getValue(); chartData.setEnergyTypeNo(energyId); - chartData.setEnergyTypeName(energyNameMap.getOrDefault(energyId,"")); - chartData.setNodeName(nodeNameMap.getOrDefault(nodeId,"")); + chartData.setEnergyTypeName(energyNameMap.getOrDefault(energyId, "")); + chartData.setNodeName(nodeNameMap.getOrDefault(nodeId, "")); chartData.setEnergyConsumption(totalEnergy.doubleValue()); chartData.setNodeId(nodeId); rankingEnergyData.add(chartData); - + } final Map<String, List<RankingEnergyData>> collect = rankingEnergyData.stream().collect(Collectors.groupingBy(RankingEnergyData::getNodeId)); - nodeNameMap.forEach((key,value)->{ + nodeNameMap.forEach((key, value) -> { final List<RankingEnergyData> rankingEnergyData1 = collect.get(key); RankingDataVO rankingDataVO = new RankingDataVO(); rankingDataVO.setNodeId(key); @@ -353,7 +352,7 @@ rankingDataVO.setData(rankingEnergyData1); rankingDataVOArrayList.add(rankingDataVO); }); - + return rankingDataVOArrayList; } @@ -382,7 +381,7 @@ List<EnergyProportion> energyProportionList = new ArrayList<>(); ConsumptionAnalysisVO consumptionAnalysisVO = new ConsumptionAnalysisVO(); - + //todo hmj 缁煎悎鑳借�楀厛榛樿鍙栧悓姣� final String analysisType = "YOY"; final String nodeId = dto.getNodeId(); @@ -392,24 +391,25 @@ /** * 鏌ヨ鐐逛綅涓庣敤鑳藉崟鍏冧俊鎭� */ - List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId,energyType); + List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId, energyType); // if (CollectionUtils.isEmpty(nodeIndexInforList)) { // return consumptionAnalysisVO; // } - + //淇敼杩囨护缁熻鐐逛綅 + nodeIndexInforList = nodeIndexInforList.stream().filter(x -> "STATISTIC".equals(x.getIndexType())).collect(Collectors.toList()); final List<String> eneryIdList = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getEnergyId).distinct().collect(Collectors.toList()); final LambdaQueryWrapper<SysEnergy> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList),SysEnergy::getEnersno,eneryIdList); + queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList), SysEnergy::getEnersno, eneryIdList); final List<SysEnergy> sysEnergies = sysEnergyMapper.selectList(queryWrapper); final Map<String, BigDecimal> energyCoefficientMap = sysEnergies.stream().collect(Collectors.toMap(SysEnergy::getEnersno, SysEnergy::getCoefficient)); - final Map<String, String> energyNameMap = sysEnergies.stream().collect(Collectors.toMap(SysEnergy::getEnersno,SysEnergy::getEnername)); + final Map<String, String> energyNameMap = sysEnergies.stream().collect(Collectors.toMap(SysEnergy::getEnersno, SysEnergy::getEnername)); final Map<String, String> indexIdEnergyIdMap = new HashMap<>(); - nodeIndexInforList.forEach(n->{ + nodeIndexInforList.forEach(n -> { final String indexId = n.getIndexId(); final String energyId = n.getEnergyId(); - if(!indexIdEnergyIdMap.containsKey(indexId)){ - indexIdEnergyIdMap.put(indexId,energyId); + if (!indexIdEnergyIdMap.containsKey(indexId)) { + indexIdEnergyIdMap.put(indexId, energyId); } }); List<String> indexIds = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toList()); @@ -428,7 +428,7 @@ //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� lastTime = DateUtil.offsetMonth(beginTime, -12); lastEndTime = DateUtil.offsetMonth(endTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ lastTime = DateUtil.offsetDay(beginTime, -1); lastEndTime = DateUtil.offsetDay(endTime, -1); @@ -443,7 +443,7 @@ //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� lastTime = DateUtil.offsetMonth(beginTime, -12); lastEndTime = DateUtil.offsetMonth(endTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ lastTime = DateUtil.offsetMonth(beginTime, -1); lastEndTime = DateUtil.offsetMonth(endTime, -1); @@ -458,10 +458,10 @@ //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� lastTime = DateUtil.offsetMonth(beginTime, -12); lastEndTime = DateUtil.offsetMonth(endTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ - lastTime = DateUtil.offsetMonth(beginTime, -1); - lastEndTime = DateUtil.offsetMonth(endTime, -1); + lastTime = DateUtil.offsetMonth(beginTime, -1); + lastEndTime = DateUtil.offsetMonth(endTime, -1); } timeFormat = "yyyy-MM"; @@ -469,7 +469,7 @@ // 鏍规嵁indexId鏌ヨdataItem List<DataItem> dataItemList = new ArrayList<>(); List<DataItem> lastDataItemList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(indexIds)) { + if (CollectionUtils.isNotEmpty(indexIds)) { dataItemList = dataItemService.getDataItemTimeRangeInforByIndexIds(beginTime, endTime, shixuTimeType, indexIds); lastDataItemList = dataItemService.getDataItemTimeRangeInforByIndexIds(lastTime, lastEndTime, shixuTimeType, indexIds); } @@ -478,7 +478,7 @@ // 鍊嶇巼 BigDecimal multiple = BigDecimal.valueOf(CommonConst.DIGIT_100); - Map<String,Double> energyProportionMap = new HashMap<>(); + Map<String, Double> energyProportionMap = new HashMap<>(); while (!beginTime.after(endTime)) { ConsumptionAnalysisData data = new ConsumptionAnalysisData(); final String currentTime = DateUtil.format(beginTime, timeFormat); @@ -489,7 +489,7 @@ if ("YOY".equals(analysisType)) { //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� dateTime = DateUtil.offsetMonth(beginTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ dateTime = DateUtil.offsetDay(beginTime, -1); } @@ -499,7 +499,7 @@ if ("YOY".equals(analysisType)) { //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� dateTime = DateUtil.offsetMonth(beginTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ dateTime = DateUtil.offsetMonth(beginTime, -1); } @@ -509,9 +509,9 @@ if ("YOY".equals(analysisType)) { //鍚屾瘮鍒嗘瀽锛屾椂闂村彇鍘诲勾鐨� dateTime = DateUtil.offsetMonth(beginTime, -12); - }else { + } else { //鐜瘮鍒嗘瀽锛屾椂闂村彇 鏄ㄥぉ - dateTime = DateUtil.offsetMonth(beginTime, -1); + dateTime = DateUtil.offsetMonth(beginTime, -1); } compareTime = DateUtil.format(dateTime, timeFormat); } @@ -523,38 +523,40 @@ BigDecimal lastSum = new BigDecimal(0); if (CollectionUtils.isNotEmpty(dataItems)) { // 姹傚拰 - for (int i=0;i<dataItems.size(); i++){ + for (int i = 0; i < dataItems.size(); i++) { final DataItem dataItem = dataItems.get(i); final String indexId = dataItem.getIndexId(); final String energyId = indexIdEnergyIdMap.get(indexId); - + final BigDecimal coefficient = energyCoefficientMap.get(energyId); - if(coefficient == null){ + if (coefficient == null) { throw new RuntimeException("鑳芥簮绫诲瀷" + energyId + "娌℃湁閰嶇疆鎶樻爣绯绘暟锛屾棤娉曡绠�"); } - - sum = sum.add(new BigDecimal(dataItem.getValue()).multiply(coefficient)).setScale(2, RoundingMode.HALF_UP);; + + sum = sum.add(new BigDecimal(dataItem.getValue()).multiply(coefficient)).setScale(2, RoundingMode.HALF_UP); + ; // if(energyProportionMap.containsKey(energyId)) { // energyProportionMap.put(energyId,energyProportionMap.get(energyId) + sum.doubleValue()); // }else { // energyProportionMap.put(energyId, sum.doubleValue()); // } } - + } - if(CollectionUtils.isNotEmpty(lastDataItems)) { - for (int i=0;i<lastDataItems.size(); i++){ + if (CollectionUtils.isNotEmpty(lastDataItems)) { + for (int i = 0; i < lastDataItems.size(); i++) { final DataItem dataItem = lastDataItems.get(i); final String indexId = dataItem.getIndexId(); final String energyId = indexIdEnergyIdMap.get(indexId); final BigDecimal coefficient = energyCoefficientMap.get(energyId); - if(coefficient == null){ + if (coefficient == null) { throw new RuntimeException("鑳芥簮绫诲瀷" + energyId + "娌℃湁閰嶇疆鎶樻爣绯绘暟锛屾棤娉曡绠�"); } - lastSum = lastSum.add(new BigDecimal(dataItem.getValue()).multiply(coefficient)).setScale(2, RoundingMode.HALF_UP);; + lastSum = lastSum.add(new BigDecimal(dataItem.getValue()).multiply(coefficient)).setScale(2, RoundingMode.HALF_UP); + ; } } data.setCurrentValue(sum.doubleValue()); @@ -605,34 +607,34 @@ chartDataList.add(chartData); }); - - Double eneryTotal = energyProportionMap.values().stream().mapToDouble(Double::doubleValue).sum(); + + Double eneryTotal = energyProportionMap.values().stream().mapToDouble(Double::doubleValue).sum(); Map<String, List<DataItem>> indexDataItemMap = dataItemList.stream().collect(Collectors.groupingBy(DataItem::getIndexId)); - - indexDataItemMap.forEach((indexId,value)->{ + + indexDataItemMap.forEach((indexId, value) -> { final String energyId = indexIdEnergyIdMap.get(indexId); final BigDecimal coefficient = energyCoefficientMap.get(energyId); - if(coefficient == null){ + if (coefficient == null) { throw new RuntimeException("鑳芥簮绫诲瀷" + energyId + "娌℃湁閰嶇疆鎶樻爣绯绘暟锛屾棤娉曡绠�"); } final double sum = value.stream().map(DataItem::getValue).mapToDouble(Double::doubleValue).sum(); - if(energyProportionMap.containsKey(energyId)) { - energyProportionMap.put(energyId,energyProportionMap.get(energyId) + sum * coefficient.doubleValue()); - }else { + if (energyProportionMap.containsKey(energyId)) { + energyProportionMap.put(energyId, energyProportionMap.get(energyId) + sum * coefficient.doubleValue()); + } else { energyProportionMap.put(energyId, sum * coefficient.doubleValue()); } }); - - energyProportionMap.forEach((key,value)->{ + + energyProportionMap.forEach((key, value) -> { EnergyProportion energyProportion = new EnergyProportion(); energyProportion.setEnergyNo(key); - energyProportion.setEnergyName(energyNameMap.getOrDefault(key,"")); + energyProportion.setEnergyName(energyNameMap.getOrDefault(key, "")); energyProportion.setCount(value); - energyProportion.setPercentage(value/eneryTotal * 100); - + energyProportion.setPercentage(value / eneryTotal * 100); + energyProportionList.add(energyProportion); }); @@ -660,50 +662,50 @@ } else { timeFormat = "yyyy"; } - + final Double currTotalEnergy = getTotalEnergy(dto); DateTime tongbiTime = DateUtil.offsetMonth(queryTime, -12); dto.setDataTime(tongbiTime); final Double tongbiTotalEnergy = getTotalEnergy(dto); - + DateTime huanbiTime = DateUtil.offsetMonth(queryTime, -1); dto.setDataTime(huanbiTime); final Double huanbiTotalEnergy = getTotalEnergy(dto); - - tongbi.setCurrentTime(DateUtil.format(queryTime,timeFormat)); - tongbi.setCompareTime(DateUtil.format(tongbiTime,timeFormat)); + + tongbi.setCurrentTime(DateUtil.format(queryTime, timeFormat)); + tongbi.setCompareTime(DateUtil.format(tongbiTime, timeFormat)); tongbi.setCurrentValue(currTotalEnergy); tongbi.setCompareValue(tongbiTotalEnergy); - if(tongbiTotalEnergy != 0) { + if (tongbiTotalEnergy != 0) { final double tongbiRatio = (currTotalEnergy - tongbiTotalEnergy) / tongbiTotalEnergy * 100; BigDecimal bd = new BigDecimal(tongbiRatio); bd = bd.setScale(2, RoundingMode.HALF_UP); tongbi.setRatio(bd.doubleValue()); - }else { + } else { tongbi.setRatio(0); } - - huanbi.setCurrentTime(DateUtil.format(queryTime,timeFormat)); - huanbi.setCompareTime(DateUtil.format(huanbiTime,timeFormat)); + + huanbi.setCurrentTime(DateUtil.format(queryTime, timeFormat)); + huanbi.setCompareTime(DateUtil.format(huanbiTime, timeFormat)); huanbi.setCompareValue(huanbiTotalEnergy); huanbi.setCurrentValue(currTotalEnergy); - - if(huanbiTotalEnergy != 0) { + + if (huanbiTotalEnergy != 0) { final double huanbiRatio = (currTotalEnergy - huanbiTotalEnergy) / huanbiTotalEnergy * 100; BigDecimal bd = new BigDecimal(huanbiRatio); bd = bd.setScale(2, RoundingMode.HALF_UP); huanbi.setRatio(bd.doubleValue()); - }else { + } else { huanbi.setRatio(0); } consumptionAnalysisVO.setTongbi(tongbi); consumptionAnalysisVO.setHuanbi(huanbi); return consumptionAnalysisVO; } - - public Double getTotalEnergy(ConsumptionAnalysisDTO dto){ + + public Double getTotalEnergy(ConsumptionAnalysisDTO dto) { //todo hmj 缁煎悎鑳借�楀厛榛樿鍙栧悓姣� final String nodeId = dto.getNodeId(); final String energyType = dto.getEnergyType(); @@ -712,23 +714,23 @@ /** * 鏌ヨ鐐逛綅涓庣敤鑳藉崟鍏冧俊鎭� */ - List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId,energyType); + List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId, energyType); // if (CollectionUtils.isEmpty(nodeIndexInforList)) { // return consumptionAnalysisVO; // } - + nodeIndexInforList = nodeIndexInforList.stream().filter(x -> "STATISTIC".equals(x.getIndexType())).collect(Collectors.toList()); final List<String> eneryIdList = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getEnergyId).distinct().collect(Collectors.toList()); final LambdaQueryWrapper<SysEnergy> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList),SysEnergy::getEnersno,eneryIdList); + queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList), SysEnergy::getEnersno, eneryIdList); final List<SysEnergy> sysEnergies = sysEnergyMapper.selectList(queryWrapper); final Map<String, BigDecimal> energyCoefficientMap = sysEnergies.stream().collect(Collectors.toMap(SysEnergy::getEnersno, SysEnergy::getCoefficient)); final Map<String, String> indexIdEnergyIdMap = new HashMap<>(); - nodeIndexInforList.forEach(n->{ + nodeIndexInforList.forEach(n -> { final String indexId = n.getIndexId(); final String energyId = n.getEnergyId(); - if(!indexIdEnergyIdMap.containsKey(indexId)){ - indexIdEnergyIdMap.put(indexId,energyId); + if (!indexIdEnergyIdMap.containsKey(indexId)) { + indexIdEnergyIdMap.put(indexId, energyId); } }); List<String> indexIds = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toList()); @@ -757,12 +759,12 @@ } // 鏍规嵁indexId鏌ヨdataItem List<DataItem> dataItemList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(indexIds)) { + if (CollectionUtils.isNotEmpty(indexIds)) { dataItemList = dataItemService.getDataItemTimeRangeInforByIndexIds(beginTime, endTime, shixuTimeType, indexIds); } Map<String, List<DataItem>> dataItemMap = dataItemList.stream().collect(Collectors.groupingBy(li -> DateUtil.format(li.getDataTime(), timeFormat))); - Map<String,Double> energyProportionMap = new HashMap<>(); + Map<String, Double> energyProportionMap = new HashMap<>(); while (!beginTime.after(endTime)) { final String currentTime = DateUtil.format(beginTime, timeFormat); @@ -770,17 +772,18 @@ BigDecimal sum = new BigDecimal(0); if (CollectionUtils.isNotEmpty(dataItems)) { // 姹傚拰 - for (int i=0;i<dataItems.size(); i++){ + for (int i = 0; i < dataItems.size(); i++) { final DataItem dataItem = dataItems.get(i); final String indexId = dataItem.getIndexId(); final String energyId = indexIdEnergyIdMap.get(indexId); final BigDecimal coefficient = energyCoefficientMap.get(energyId); - if(coefficient == null){ + if (coefficient == null) { throw new RuntimeException("鑳芥簮绫诲瀷" + energyId + "娌℃湁閰嶇疆鎶樻爣绯绘暟锛屾棤娉曡绠�"); } - sum = sum.add(new BigDecimal(dataItem.getValue()).multiply(coefficient)).setScale(2, RoundingMode.HALF_UP);; + sum = sum.add(new BigDecimal(dataItem.getValue()).multiply(coefficient)).setScale(2, RoundingMode.HALF_UP); + ; // if(energyProportionMap.containsKey(energyId)) { // energyProportionMap.put(energyId,energyProportionMap.get(energyId) + sum.doubleValue()); // }else { @@ -804,26 +807,24 @@ } - - Map<String, List<DataItem>> indexDataItemMap = dataItemList.stream().collect(Collectors.groupingBy(DataItem::getIndexId)); - indexDataItemMap.forEach((indexId,value)->{ + indexDataItemMap.forEach((indexId, value) -> { final String energyId = indexIdEnergyIdMap.get(indexId); final BigDecimal coefficient = energyCoefficientMap.get(energyId); - if(coefficient == null){ + if (coefficient == null) { throw new RuntimeException("鑳芥簮绫诲瀷" + energyId + "娌℃湁閰嶇疆鎶樻爣绯绘暟锛屾棤娉曡绠�"); } final double sum = value.stream().map(DataItem::getValue).mapToDouble(Double::doubleValue).sum(); - if(energyProportionMap.containsKey(energyId)) { - energyProportionMap.put(energyId,energyProportionMap.get(energyId) + sum * coefficient.doubleValue()); - }else { + if (energyProportionMap.containsKey(energyId)) { + energyProportionMap.put(energyId, energyProportionMap.get(energyId) + sum * coefficient.doubleValue()); + } else { energyProportionMap.put(energyId, sum * coefficient.doubleValue()); } }); - Double eneryTotal = energyProportionMap.values().stream().mapToDouble(Double::doubleValue).sum(); + Double eneryTotal = energyProportionMap.values().stream().mapToDouble(Double::doubleValue).sum(); return eneryTotal.doubleValue(); } @@ -839,11 +840,11 @@ */ List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeByParentId(nodeId); final Map<String, String> nodeNameMap = new HashMap<>(); - nodeIndexInforList.forEach(n->{ + nodeIndexInforList.forEach(n -> { final String id = n.getNodeId(); final String name = n.getName(); - if(!nodeNameMap.containsKey(id)){ - nodeNameMap.put(id,name); + if (!nodeNameMap.containsKey(id)) { + nodeNameMap.put(id, name); } }); // 鎸夌収鐐逛綅杩涜鍒嗙粍 @@ -851,17 +852,17 @@ Collectors.groupingBy(ModelNodeIndexInfor::getNodeId)); final List<String> eneryIdList = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getEnergyId).distinct().collect(Collectors.toList()); final LambdaQueryWrapper<SysEnergy> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList),SysEnergy::getEnersno,eneryIdList); + queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList), SysEnergy::getEnersno, eneryIdList); final List<SysEnergy> sysEnergies = sysEnergyMapper.selectList(queryWrapper); //鑳芥簮缂栧彿鍜岃兘婧愭姌鏍囩郴鏁� final Map<String, BigDecimal> energyCoefficientMap = sysEnergies.stream().collect(Collectors.toMap(SysEnergy::getEnersno, SysEnergy::getCoefficient)); //index鍜岃兘婧� final Map<String, String> indexIdEnergyIdMap = new HashMap<>(); - nodeIndexInforList.forEach(n->{ + nodeIndexInforList.forEach(n -> { final String indexId = n.getIndexId(); final String energyId = n.getEnergyId(); - if(!indexIdEnergyIdMap.containsKey(indexId)){ - indexIdEnergyIdMap.put(indexId,energyId); + if (!indexIdEnergyIdMap.containsKey(indexId)) { + indexIdEnergyIdMap.put(indexId, energyId); } }); List<String> indexIds = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toList()); @@ -886,22 +887,22 @@ } // 鏍规嵁indexId鏌ヨdataItem List<DataItem> dataItemList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(indexIds)) { + if (CollectionUtils.isNotEmpty(indexIds)) { dataItemList = dataItemService.getDataItemTimeRangeInforByIndexIds(beginTime, endTime, shixuTimeType, indexIds); } Map<String, List<DataItem>> dataItemMap = dataItemList.stream().collect(Collectors.groupingBy(DataItem::getIndexId)); - Map<String,BigDecimal> resultMap = new HashMap<>(); + Map<String, BigDecimal> resultMap = new HashMap<>(); nodeIndexMap.forEach((key, value) -> { // 鎵惧嚭indexIds List<String> indexIdList = value.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toList()); - - indexIdList.forEach(indexId->{ + + indexIdList.forEach(indexId -> { final List<DataItem> dataItems = dataItemMap.get(indexId); final String energyId = indexIdEnergyIdMap.get(indexId); final BigDecimal coefficient = energyCoefficientMap.get(energyId); - - if(CollectionUtils.isNotEmpty(dataItems) ){ + + if (CollectionUtils.isNotEmpty(dataItems)) { BigDecimal sum = BigDecimal.valueOf(dataItems.stream() .mapToDouble(DataItem::getValue).sum()).setScale(CommonConst.DIGIT_2, RoundingMode.HALF_UP).multiply(coefficient); @@ -914,7 +915,7 @@ }); }); - resultMap.forEach((key,value)->{ + resultMap.forEach((key, value) -> { RankingEnergyData rankingEnergyData = new RankingEnergyData(); rankingEnergyData.setNodeId(key); rankingEnergyData.setNodeName(nodeNameMap.get(key)); @@ -950,30 +951,30 @@ } LambdaQueryWrapper<EnergyIndicators> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(EnergyIndicators::getTimeType,queryTimeType); - queryWrapper.eq(EnergyIndicators::getDataTime,DateUtil.format(dto.getDataTime(),timeFormat)); - queryWrapper.eq(EnergyIndicators::getNodeId,dto.getNodeId()); - queryWrapper.eq(EnergyIndicators::getEnergyType,dto.getEnergyType()); + queryWrapper.eq(EnergyIndicators::getTimeType, queryTimeType); + queryWrapper.eq(EnergyIndicators::getDataTime, DateUtil.format(dto.getDataTime(), timeFormat)); + queryWrapper.eq(EnergyIndicators::getNodeId, dto.getNodeId()); + queryWrapper.eq(EnergyIndicators::getEnergyType, dto.getEnergyType()); // 0 鏄鍒掗噺 - queryWrapper.eq(EnergyIndicators::getIndicatorsType,"0"); + queryWrapper.eq(EnergyIndicators::getIndicatorsType, "0"); final EnergyIndicators plan = energyIndicatorsMapper.selectOne(queryWrapper); - if(null != plan && null!= plan.getNumber()) { + if (null != plan && null != plan.getNumber()) { consumptionAnalysisVO.setPlanCount(plan.getNumber().divide(new BigDecimal(between), CommonConst.DIGIT_2, RoundingMode.HALF_UP).doubleValue()); - }else { + } else { consumptionAnalysisVO.setPlanCount(0D); } queryWrapper.clear(); - queryWrapper.eq(EnergyIndicators::getTimeType,queryTimeType); - queryWrapper.eq(EnergyIndicators::getDataTime,DateUtil.format(dto.getDataTime(),timeFormat)); - queryWrapper.eq(EnergyIndicators::getNodeId,dto.getNodeId()); - queryWrapper.eq(EnergyIndicators::getEnergyType,dto.getEnergyType()); - queryWrapper.eq(EnergyIndicators::getIndicatorsType,"1"); + queryWrapper.eq(EnergyIndicators::getTimeType, queryTimeType); + queryWrapper.eq(EnergyIndicators::getDataTime, DateUtil.format(dto.getDataTime(), timeFormat)); + queryWrapper.eq(EnergyIndicators::getNodeId, dto.getNodeId()); + queryWrapper.eq(EnergyIndicators::getEnergyType, dto.getEnergyType()); + queryWrapper.eq(EnergyIndicators::getIndicatorsType, "1"); final EnergyIndicators prod = energyIndicatorsMapper.selectOne(queryWrapper); - if(null != prod && null!= prod.getNumber()) { + if (null != prod && null != prod.getNumber()) { consumptionAnalysisVO.setPlanCount(prod.getNumber().divide(new BigDecimal(between), CommonConst.DIGIT_2, RoundingMode.HALF_UP).doubleValue()); - }else { + } else { consumptionAnalysisVO.setProdCount(0D); } return consumptionAnalysisVO; @@ -993,19 +994,19 @@ /** * 鏌ヨ鐐逛綅涓庣敤鑳藉崟鍏冧俊鎭� */ - List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId,energyType); + List<ModelNodeIndexInfor> nodeIndexInforList = modelNodeMapper.getModelNodeIndexIdByNodeId(nodeId, energyType); final List<String> eneryIdList = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getEnergyId).distinct().collect(Collectors.toList()); final LambdaQueryWrapper<SysEnergy> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList),SysEnergy::getEnersno,eneryIdList); + queryWrapper.in(CollectionUtils.isNotEmpty(eneryIdList), SysEnergy::getEnersno, eneryIdList); final List<SysEnergy> sysEnergies = sysEnergyMapper.selectList(queryWrapper); final Map<String, BigDecimal> energyCoefficientMap = sysEnergies.stream().collect(Collectors.toMap(SysEnergy::getEnersno, SysEnergy::getCoefficient)); final Map<String, String> indexIdEnergyIdMap = new HashMap<>(); - nodeIndexInforList.forEach(n->{ + nodeIndexInforList.forEach(n -> { final String indexId = n.getIndexId(); final String energyId = n.getEnergyId(); - if(!indexIdEnergyIdMap.containsKey(indexId)){ - indexIdEnergyIdMap.put(indexId,energyId); + if (!indexIdEnergyIdMap.containsKey(indexId)) { + indexIdEnergyIdMap.put(indexId, energyId); } }); List<String> indexIds = nodeIndexInforList.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toList()); @@ -1032,12 +1033,11 @@ shixuTimeType = TimeType.MONTH.name(); timeFormat = "yyyy-MM"; } - - + // 鏍规嵁indexId鏌ヨdataItem List<DataItem> dataItemList = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(indexIds)) { + if (CollectionUtils.isNotEmpty(indexIds)) { dataItemList = dataItemService.getDataItemTimeRangeInforByIndexIds(beginTime, endTime, shixuTimeType, indexIds); } Map<String, List<DataItem>> dataItemMap = dataItemList.stream().collect(Collectors.groupingBy(li -> DateUtil.format(li.getDataTime(), timeFormat))); @@ -1045,12 +1045,12 @@ while (!beginTime.after(endTime)) { //鏌ヨ寮�濮嬫椂闂村拰缁撴潫鏃堕棿涔嬮棿鐨勪骇閲� LambdaQueryWrapper<ProductOutput> indicatorsWrapper = new LambdaQueryWrapper<>(); - indicatorsWrapper.eq(ProductOutput::getTimeType,shixuTimeType); - indicatorsWrapper.eq(ProductOutput::getNodeId,dto.getNodeId()); - indicatorsWrapper.eq(ProductOutput::getDataTime,DateUtil.format(beginTime,timeFormat)); + indicatorsWrapper.eq(ProductOutput::getTimeType, shixuTimeType); + indicatorsWrapper.eq(ProductOutput::getNodeId, dto.getNodeId()); + indicatorsWrapper.eq(ProductOutput::getDataTime, DateUtil.format(beginTime, timeFormat)); List<ProductOutput> energyIndicators = productOutputMapper.selectList(indicatorsWrapper); - prodCountMap.put(DateUtil.format(beginTime,timeFormat),energyIndicators); - + prodCountMap.put(DateUtil.format(beginTime, timeFormat), energyIndicators); + ConsumptionAnalysisData data = new ConsumptionAnalysisData(); final String currentTime = DateUtil.format(beginTime, timeFormat); @@ -1058,17 +1058,18 @@ BigDecimal sum = new BigDecimal(0); if (CollectionUtils.isNotEmpty(dataItems)) { // 姹傚拰 - for (int i=0;i<dataItems.size(); i++){ + for (int i = 0; i < dataItems.size(); i++) { final DataItem dataItem = dataItems.get(i); final String indexId = dataItem.getIndexId(); final String energyId = indexIdEnergyIdMap.get(indexId); final BigDecimal coefficient = energyCoefficientMap.get(energyId); - if(coefficient == null){ + if (coefficient == null) { throw new RuntimeException("鑳芥簮绫诲瀷" + energyId + "娌℃湁閰嶇疆鎶樻爣绯绘暟锛屾棤娉曡绠�"); } - sum = sum.add(new BigDecimal(dataItem.getValue()).multiply(coefficient)).setScale(2, RoundingMode.HALF_UP);; + sum = sum.add(new BigDecimal(dataItem.getValue()).multiply(coefficient)).setScale(2, RoundingMode.HALF_UP); + ; } } @@ -1090,18 +1091,18 @@ break; } } - dataList.forEach(d->{ + dataList.forEach(d -> { ProductEnergyAnalysisData productEnergyAnalysisData = new ProductEnergyAnalysisData(); final String currentTime = d.getCurrentTime(); - + productEnergyAnalysisData.setDateTime(currentTime); - + final List<ProductOutput> productOutputs = prodCountMap.get(currentTime); - if(StringUtils.isEmpty(dto.getProdType())){ + if (StringUtils.isEmpty(dto.getProdType())) { productEnergyAnalysisData.setEnergyCount(format2Double(d.getCurrentValue())); final double sum = productOutputs.stream().map(ProductOutput::getNumber).mapToDouble(BigDecimal::doubleValue).sum(); productEnergyAnalysisData.setProductCount(format2Double(sum)); - if(sum != 0) { + if (sum != 0) { final double averageEnergy = productEnergyAnalysisData.getEnergyCount() / productEnergyAnalysisData.getProductCount(); // 鍒涘缓DecimalFormat瀵硅薄锛岃缃繚鐣欎袱浣嶅皬鏁� DecimalFormat df = new DecimalFormat("#.00"); @@ -1109,15 +1110,15 @@ // 鏍煎紡鍖栫粨鏋� String formattedResult = df.format(averageEnergy); productEnergyAnalysisData.setAverage(Double.valueOf(formattedResult)); - }else { + } else { productEnergyAnalysisData.setAverage(0); } - }else { - if(CollectionUtils.isNotEmpty(productOutputs)) { + } else { + if (CollectionUtils.isNotEmpty(productOutputs)) { final Map<String, List<ProductOutput>> productTypeMap = productOutputs.stream().collect(Collectors.groupingBy(ProductOutput::getProductType)); final double sum = productOutputs.stream().map(ProductOutput::getNumber).mapToDouble(BigDecimal::doubleValue).sum(); final List<ProductOutput> outputList = productTypeMap.get(dto.getProdType()); - if(CollectionUtils.isNotEmpty(outputList)) { + if (CollectionUtils.isNotEmpty(outputList)) { final double enengyProd = outputList.stream().map(ProductOutput::getNumber).mapToDouble(BigDecimal::doubleValue).sum(); productEnergyAnalysisData.setProductCount(format2Double(enengyProd)); productEnergyAnalysisData.setEnergyCount(format2Double(d.getCurrentValue() * enengyProd / sum)); @@ -1128,19 +1129,19 @@ } else { productEnergyAnalysisData.setAverage(0); } - }else { + } else { productEnergyAnalysisData.setProductCount(0); productEnergyAnalysisData.setEnergyCount(d.getCurrentValue()); productEnergyAnalysisData.setAverage(0); } - }else { + } else { productEnergyAnalysisData.setProductCount(0); productEnergyAnalysisData.setEnergyCount(d.getCurrentValue()); productEnergyAnalysisData.setAverage(0); } } - - + + chart.add(productEnergyAnalysisData); }); @@ -1149,9 +1150,9 @@ final double totalProd = chart.stream().map(ProductEnergyAnalysisData::getProductCount).mapToDouble(Double::doubleValue).sum(); productEnergyAnalysisVO.setTotalEnergy(format2Double(totalEnergy)); productEnergyAnalysisVO.setTotalProduct(format2Double(totalProd)); - if(totalProd != 0) { + if (totalProd != 0) { productEnergyAnalysisVO.setAverageEnergy(format2Double(totalEnergy / totalProd)); - }else { + } else { productEnergyAnalysisVO.setAverageEnergy(0D); } return productEnergyAnalysisVO; -- Gitblit v1.9.3