| src/main/java/com/ruoyi/energy/controller/EnergyConsumptionDetailController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/energy/dto/EnergyAccountDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/energy/dto/EnergyAccountTypeDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/energy/dto/EnergyConsumptionDetailDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/energy/dto/EnergyStatisticsDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/energy/mapper/EnergyConsumptionDetailMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/energy/service/EnergyConsumptionDetailService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/energy/service/impl/EnergyConsumptionDetailServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/energy/controller/EnergyConsumptionDetailController.java
@@ -77,9 +77,16 @@ /*******************************************æ±æ»ç»è®¡*****************************************************************************************************************************************************************************/ @GetMapping("/statistics") @ApiOperation("ææ¥æå¹´æ±æ»ç»è®¡") @ApiOperation("è½èç»è®¡---ææ¥æå¹´æ±æ»ç»è®¡") public R statistics(EnergyStatisticsVo energyStatisticsVo) { return R.ok(energyConsumptionDetailService.statistics(energyStatisticsVo)); } @GetMapping("/account") @ApiOperation("è½èææ¬æ ¸ç®---ææ¥ææ±æ»ç»è®¡") public R account(EnergyStatisticsVo energyStatisticsVo) { energyStatisticsVo.setType(null); return R.ok(energyConsumptionDetailService.account(energyStatisticsVo)); } } src/main/java/com/ruoyi/energy/dto/EnergyAccountDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.ruoyi.energy.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.List; @Data @ApiModel("è½èææ¬æ ¸ç®---ææ¥ææ±æ»ç»è®¡") public class EnergyAccountDto { @ApiModelProperty("æ»è½èææ¬") private BigDecimal totalEnergyCost; @ApiModelProperty("ç产è½èææ¬") private BigDecimal productEnergyCost; @ApiModelProperty("åå ¬è½èææ¬") private BigDecimal officeEnergyCost; @ApiModelProperty("平忿¬") private BigDecimal averageEnergyCost; @ApiModelProperty("è½èææ¬è¶å¿") private List<EnergyAccountTypeDto> energyAccountTypeDtos; @ApiModelProperty("è½èç±»åææ¬å æ¯") private List<EnergyConsumptionTypeDto> energyConsumptionTypeProportion; @ApiModelProperty("è½èç±»åæç»") private List<EnergyConsumptionDetailDto> energyConsumptionDetailDtoList; } src/main/java/com/ruoyi/energy/dto/EnergyAccountTypeDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.ruoyi.energy.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel("è½èææ¬è¶å¿") public class EnergyAccountTypeDto { //"åå ¬/ç产" @ApiModelProperty("è½èåºæ¯") private String energyAccountType; @ApiModelProperty("è½èææ¬") private BigDecimal energyAccount; } src/main/java/com/ruoyi/energy/dto/EnergyConsumptionDetailDto.java
@@ -32,4 +32,7 @@ //è´¹ç¨ private BigDecimal cost; //åä»· private BigDecimal unitPrice; } src/main/java/com/ruoyi/energy/dto/EnergyStatisticsDto.java
@@ -9,7 +9,7 @@ import java.util.Map; @Data @ApiModel("ææ¥æå¹´æ±æ»ç»è®¡çè½èæ°æ®") @ApiModel("è½èç»è®¡---ææ¥æå¹´æ±æ»ç»è®¡çè½èæ°æ®") public class EnergyStatisticsDto { @ApiModelProperty("æ»èç¨é") src/main/java/com/ruoyi/energy/mapper/EnergyConsumptionDetailMapper.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.energy.dto.EnergyAccountTypeDto; import com.ruoyi.energy.dto.EnergyConsumptionDetailDto; import com.ruoyi.energy.dto.EnergyConsumptionTypeDto; import com.ruoyi.energy.dto.EnergyCostDto; @@ -33,4 +34,8 @@ List<EnergyConsumptionTypeDto> energyConsumptionTypeProportion(@Param("c") EnergyStatisticsVo energyStatisticsVo); List<EnergyCostDto> energyCostDtos(@Param("c") EnergyStatisticsVo energyStatisticsVo); List<EnergyAccountTypeDto> energyAccountTypeDtos(@Param("c") EnergyStatisticsVo energyStatisticsVo); List<EnergyConsumptionDetailDto> energyConsumptionDetailDtos(@Param("c") EnergyStatisticsVo energyStatisticsVo); } src/main/java/com/ruoyi/energy/service/EnergyConsumptionDetailService.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.energy.dto.EnergyAccountDto; import com.ruoyi.energy.dto.EnergyConsumptionDetailDto; import com.ruoyi.energy.dto.EnergyStatisticsDto; import com.ruoyi.energy.pojo.EnergyConsumptionDetail; @@ -30,4 +31,5 @@ EnergyStatisticsDto statistics(EnergyStatisticsVo energyStatisticsVo); EnergyAccountDto account(EnergyStatisticsVo energyStatisticsVo); } 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; @@ -102,7 +99,6 @@ EnergyStatisticsDto energyStatisticsDto = new EnergyStatisticsDto(); //è®¡ç®æ»èç¨é+æ»è½èè´¹ç¨ Map<String, BigDecimal> map=energyConsumptionDetailMapper.calculateEnergy(energyStatisticsVo); energyStatisticsDto.setTotalEnergyConsumption(map.get("totalEnergyConsumption")); energyStatisticsDto.setTotalEnergyCost(map.get("totalEnergyCost")); //å¹³åç¨é @@ -116,7 +112,11 @@ 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); } //è½èç±»åå æ¯ @@ -127,4 +127,31 @@ 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<EnergyAccountTypeDto> energyAccountTypeDtos=energyConsumptionDetailMapper.energyAccountTypeDtos(energyStatisticsVo); energyAccountDto.setEnergyAccountTypeDtos(energyAccountTypeDtos); //è½èç±»åææ¬å æ¯ List<EnergyConsumptionTypeDto> energyConsumptionTypeDtos=energyConsumptionDetailMapper.energyConsumptionTypeProportion(energyStatisticsVo); energyAccountDto.setEnergyConsumptionTypeProportion(energyConsumptionTypeDtos); //è½èç±»åæç» List<EnergyConsumptionDetailDto> energyConsumptionDetailDtoList=energyConsumptionDetailMapper.energyConsumptionDetailDtos(energyStatisticsVo); energyAccountDto.setEnergyConsumptionDetailDtoList(energyConsumptionDetailDtoList); return energyAccountDto; } } src/main/resources/mapper/energy/EnergyConsumptionDetailMapper.xml
@@ -118,5 +118,30 @@ on z.meter_reading_date=C.meter_reading_date order by z.meter_reading_date </select> <select id="energyAccountTypeDtos" resultType="com.ruoyi.energy.dto.EnergyAccountTypeDto"> select ecd.type energyAccountType, SUM(COALESCE(ecd.dosage, 0) * e.unit_price) energyAccount from energy_consumption_detail ecd left join energy e on ecd.energy_id = e.id where ecd.meter_reading_date between #{c.startDate} and #{c.endDate} group by ecd.type </select> <select id="energyConsumptionDetailDtos" resultType="com.ruoyi.energy.dto.EnergyConsumptionDetailDto"> select ecd.meter_reading_date, e.energy_tyep, ecd.type, e.unit_price, sum(ecd.dosage) dosage, sum(ecd.dosage * e.unit_price) cost from energy_consumption_detail ecd left join energy e on ecd.energy_id = e.id where ecd.meter_reading_date between #{c.startDate} and #{c.endDate} group by ecd.meter_reading_date, e.energy_tyep, ecd.type, e.unit_price order by ecd.meter_reading_date </select> </mapper>