z1415143022
2025-03-26 083cfcba6a2480422ab53c63c37a95ff310946e8
首页-厂区能耗排名TOP5和碳排放量核算-顶部数据,BUG修改
已修改3个文件
50 ■■■■ 文件已修改
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/carbonemission/service/impl/CarbonEmissionServiceImpl.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhitan-system/src/main/java/com/zhitan/Itemizedenergyanalysis/service/impl/ItemizedEnergyAnalysisServiceImpl.java
@@ -49,7 +49,7 @@
        String timeType = dto.getTimeType();
        String dataTime = dto.getDataTime();
        Date beginTime = DateTimeUtil.getTypeTime(timeType, dataTime);
        Date beginTime = DateTimeUtil.getTime(timeType, dataTime);
        DateTime endTime = null;
        // 获取节点信息
zhitan-system/src/main/java/com/zhitan/carbonemission/service/impl/CarbonEmissionServiceImpl.java
@@ -88,8 +88,8 @@
        // 计算每种能源的当前值和去年的值
        for (String s : energyType) {
            final double value = getValues(energyMap, upCarbonEmission,energyType);
            final double lastYearValueNum = getValues(energyMap, upLastCarbonEmission,energyType);
            final double value = getValues(energyMap, upCarbonEmission, s);
            final double lastYearValueNum = getValues(energyMap, upLastCarbonEmission, s);
            allValue += value;
            allLastValue += lastYearValueNum;
            final CarbonEmissionRankVO carbonEmissionRankVO = new CarbonEmissionRankVO();
@@ -253,35 +253,61 @@
    }
    public static double getValues(Map<String, SysEnergy> energyMap, List<CarbonEmission> carbonEmissions,List<String> energyType) {
    public static double getValues(Map<String, SysEnergy> energyMap, List<CarbonEmission> carbonEmissions, List<String> energyTypeList) {
        if (CollectionUtils.isEmpty(carbonEmissions)) {
            return 0.0;
        }
        // 初始化总值
        double allValue = 0.0;
        // 按能源ID分组
        final Map<String, List<CarbonEmission>> energyValueMap = carbonEmissions.stream()
                .collect(Collectors.groupingBy(CarbonEmission::getEnergyId));
//        final List<String> energyType = sysEnergies.stream().map(SysEnergy::getEnersno).collect(Collectors.toList());
        for (String energyType : energyTypeList) {
// 计算每种能源的当前值
        for (String s : energyType) {
            SysEnergy sysEnergy = energyMap.get(s);
            SysEnergy sysEnergy = energyMap.get(energyType);
            // 确保能源存在且系数不为空
            if (sysEnergy == null || sysEnergy.getCoefficient() == null) {
                throw new RuntimeException("获取碳排放转换率时出错: 系统能源数据中不存在或系数为空" + s + "能源类型");
                throw new RuntimeException("获取碳排放转换率时出错: 系统能源数据中不存在或系数为空" + energyType + "能源类型");
            }
            // 获取对应能源的值
            double value = energyValueMap.getOrDefault(s, Collections.emptyList()).stream()
            double value = energyValueMap.getOrDefault(energyType, Collections.emptyList()).stream()
                    .mapToDouble(CarbonEmission::getValue)
                    .sum();
            // 直接计算总值,避免冗余的转换
            allValue += sysEnergy.getCoefficient().doubleValue() * value;
        }
        // 格式化最终结果
        return Double.parseDouble(new DecimalFormat("#.00").format(allValue));
    }
    public static double getValues(Map<String, SysEnergy> energyMap, List<CarbonEmission> carbonEmissions, String energyType) {
        if (CollectionUtils.isEmpty(carbonEmissions)) {
            return 0.0;
        }
        // 初始化总值
        double allValue = 0.0;
        // 按能源ID分组
        final Map<String, List<CarbonEmission>> energyValueMap = carbonEmissions.stream()
                .collect(Collectors.groupingBy(CarbonEmission::getEnergyId));
        // 计算每种能源的当前值
        SysEnergy sysEnergy = energyMap.get(energyType);
        // 确保能源存在且系数不为空
        if (sysEnergy == null || sysEnergy.getCoefficient() == null) {
            throw new RuntimeException("获取碳排放转换率时出错: 系统能源数据中不存在或系数为空" + energyType + "能源类型");
        }
        // 获取对应能源的值
        double value = energyValueMap.getOrDefault(energyType, Collections.emptyList()).stream()
                .mapToDouble(CarbonEmission::getValue)
                .sum();
        // 直接计算总值,避免冗余的转换
        allValue += sysEnergy.getCoefficient().doubleValue() * value;
        // 格式化最终结果
        return Double.parseDouble(new DecimalFormat("#.00").format(allValue));
zhitan-system/src/main/java/com/zhitan/home/service/HomePageServiceImpl.java
@@ -378,7 +378,7 @@
        if (ObjectUtils.isEmpty(parentNode)) {
            return energyDataList;
        }
        List<String> nodeIds = modelNodeList.stream().filter(x -> ObjectUtils.isNotEmpty(x.getParentId()))
        List<String> nodeIds = modelNodeList.stream().filter(x -> ObjectUtils.isNotEmpty(x.getParentId()) && parentNode.getNodeId().equals(x.getParentId()))
                .map(ModelNode::getNodeId).collect(Collectors.toList());
        if (ObjectUtils.isEmpty(nodeIds)) {
            return energyDataList;