From 9c685df2670f9536d1adf9dfb1c0e95a7d5f9c53 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 28 三月 2026 14:04:08 +0800
Subject: [PATCH] 关于能耗的统计调整
---
src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java | 86 ++++++++++++++++++++++++++++++++++++++++---
1 files changed, 80 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java b/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java
index fd0e5e2..ae6b522 100644
--- a/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java
+++ b/src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java
@@ -6,10 +6,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.energy.dto.EnergyConsumptionDetailDto;
-import com.ruoyi.energy.dto.EnergyConsumptionTypeDto;
-import com.ruoyi.energy.dto.EnergyCostDto;
-import com.ruoyi.energy.dto.EnergyStatisticsDto;
+import com.ruoyi.energy.dto.*;
import com.ruoyi.energy.mapper.EnergyMapper;
import com.ruoyi.energy.pojo.Energy;
import com.ruoyi.energy.pojo.EnergyConsumptionDetail;
@@ -27,6 +24,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -115,15 +113,91 @@
oldenergyStatisticsVo.setEndDate(masDays);
Map<String, BigDecimal> oldmap=energyConsumptionDetailMapper.calculateEnergy(oldenergyStatisticsVo);
if (ObjectUtils.isNotEmpty(oldmap)) {
- BigDecimal changeVite = (map.get("totalEnergyConsumption").subtract(oldmap.get("totalEnergyConsumption"))).divide(oldmap.get("totalEnergyConsumption"), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+ BigDecimal subtract = map.get("totalEnergyConsumption").subtract(oldmap.get("totalEnergyConsumption"));
+ BigDecimal changeVite=BigDecimal.ZERO;
+ if (oldmap.get("totalEnergyConsumption").compareTo(BigDecimal.ZERO)>0){
+ changeVite = (subtract).divide(oldmap.get("totalEnergyConsumption"), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+ }
energyStatisticsDto.setChangeVite(changeVite);
}
//鑳借�楃被鍨嬪崰姣�
List<EnergyConsumptionTypeDto> energyConsumptionTypeDtos=energyConsumptionDetailMapper.energyConsumptionTypeProportion(energyStatisticsVo);
energyStatisticsDto.setEnergyConsumptionTypeProportion(energyConsumptionTypeDtos);
//鑳借�楁槑缁�
- List<EnergyCostDto> energyCostDtos=energyConsumptionDetailMapper.energyCostDtos(energyStatisticsVo);
+ List<EnergyCostDto> energyCostDtos=new ArrayList<>();
+ //鍒ゆ柇鏃�/鏈�/骞�
+ switch (energyStatisticsVo.getState()){
+ case "鏃�":
+ energyCostDtos=energyConsumptionDetailMapper.energyCostDtos1(energyStatisticsVo);
+ break;
+ case "鏈�":
+ energyCostDtos=energyConsumptionDetailMapper.energyCostDtos2(energyStatisticsVo);
+ break;
+ case "骞�":
+ energyCostDtos=energyConsumptionDetailMapper.energyCostDtos3(energyStatisticsVo);
+ break;
+ }
energyStatisticsDto.setEnergyCostDtos(energyCostDtos);
return energyStatisticsDto;
}
+
+ @Override
+ public EnergyAccountDto account(EnergyStatisticsVo energyStatisticsVo) {
+ EnergyAccountDto energyAccountDto = new EnergyAccountDto();
+ //璁$畻鎬昏兘鑰楁垚鏈�+鐢熶骇鑳借�楁垚鏈�+鍔炲叕鑳借�楁垚鏈�
+ Map<String, BigDecimal> map=energyConsumptionDetailMapper.calculateEnergy(energyStatisticsVo);
+ energyAccountDto.setTotalEnergyCost(map.get("totalEnergyCost"));//鎬昏兘鑰楁垚鏈�
+ energyStatisticsVo.setType("鐢熶骇");
+ Map<String, BigDecimal> map1=energyConsumptionDetailMapper.calculateEnergy(energyStatisticsVo);
+ energyAccountDto.setProductEnergyCost(map1.get("totalEnergyCost"));//鐢熶骇鑳借�楁垚鏈�
+ energyStatisticsVo.setType("鍔炲叕");
+ Map<String, BigDecimal> map2=energyConsumptionDetailMapper.calculateEnergy(energyStatisticsVo);
+ energyAccountDto.setOfficeEnergyCost(map2.get("totalEnergyCost"));//鍔炲叕鑳借�楁垚鏈�
+ energyStatisticsVo.setType(null);//鎭㈠鏌ヨ鍏ㄩ儴
+ //骞冲潎鎴愭湰
+ energyAccountDto.setAverageEnergyCost(energyAccountDto.getTotalEnergyCost().divide(new BigDecimal(energyStatisticsVo.getDays()),2, RoundingMode.HALF_UP));
+ //鑳借�楃被鍨嬫垚鏈崰姣�
+ List<EnergyConsumptionTypeDto> energyConsumptionTypeDtos=energyConsumptionDetailMapper.energyConsumptionTypeProportion(energyStatisticsVo);
+ energyAccountDto.setEnergyConsumptionTypeProportion(energyConsumptionTypeDtos);
+ //鑳借�楃被鍨嬫槑缁�
+ List<EnergyConsumptionDetailDto> energyConsumptionDetailDtoList = new ArrayList<>();
+ //鍒ゆ柇鏃�/鏈�/骞�
+ switch (energyStatisticsVo.getState()){
+ case "鏃�":
+ energyConsumptionDetailDtoList=energyConsumptionDetailMapper.energyConsumptionDetailDtos1(energyStatisticsVo);
+ break;
+ case "鏈�":
+ energyConsumptionDetailDtoList=energyConsumptionDetailMapper.energyConsumptionDetailDtos2(energyStatisticsVo);
+ break;
+ case "骞�":
+ energyConsumptionDetailDtoList=energyConsumptionDetailMapper.energyConsumptionDetailDtos3(energyStatisticsVo);
+ break;
+ }
+ energyAccountDto.setEnergyConsumptionDetailDtoList(energyConsumptionDetailDtoList);
+ return energyAccountDto;
+ }
+
+ @Override
+ public EnergyCollectDto collectEnergy(EnergyStatisticsVo energyStatisticsVo) {
+ EnergyCollectDto energyCollectDto = new EnergyCollectDto();
+ //鑳借�楀崟鑰楁暟鎹�
+ List<EnergyConsumptionTypeDto> energyConsumptionTypeDtos=energyConsumptionDetailMapper.energyConsumptionTypeProportion(energyStatisticsVo);
+ energyCollectDto.setEnergyConsumptionTypeProportion(energyConsumptionTypeDtos);
+ //鑳借�楀崟鑰楄秼鍔�
+ List<EnergyCostDto> energyCostDtos=new ArrayList<>();
+ //鍒ゆ柇鏃�/鏈�/骞�
+ switch (energyStatisticsVo.getState()){
+ case "鏃�":
+ energyCostDtos=energyConsumptionDetailMapper.energyCostDtos1(energyStatisticsVo);
+ break;
+ case "鏈�":
+ energyCostDtos=energyConsumptionDetailMapper.energyCostDtos2(energyStatisticsVo);
+ break;
+ case "骞�":
+ energyCostDtos=energyConsumptionDetailMapper.energyCostDtos3(energyStatisticsVo);
+ break;
+ }
+ energyCollectDto.setEnergyCostDtos(energyCostDtos);
+ return energyCollectDto;
+ }
}
--
Gitblit v1.9.3