From 9014ae5750d89d09c2ef2e820ba1b01d0b13acf8 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期六, 07 九月 2024 17:55:20 +0800 Subject: [PATCH] 停车缴费 --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java index a567303..d497796 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java @@ -40,6 +40,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.MathContext; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; @@ -304,8 +305,13 @@ chargeMonitoring.setNotCharged(total.size() - charging.size()); chargeMonitoring.setRatedPower(ratedPower.setScale(4, RoundingMode.HALF_EVEN)); chargeMonitoring.setRealTimePower(realTimePower.setScale(4, RoundingMode.HALF_EVEN)); - chargeMonitoring.setDemandPowerSatisfactionRate(realTimePower.divide(ratedPower).multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN)); - + if(ratedPower.equals(BigDecimal.ZERO)){ + chargeMonitoring.setDemandPowerSatisfactionRate(BigDecimal.ZERO); + }else{ + chargeMonitoring.setDemandPowerSatisfactionRate(realTimePower.divide(ratedPower, new MathContext(2, RoundingMode.HALF_EVEN)) + .multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN)); + } + List<String> dates = new ArrayList<>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MMM-dd"); Calendar calendar = Calendar.getInstance(); @@ -325,8 +331,12 @@ List<Double> data = chargingOrderAccountingStrategyClient.getDailyChargingDegree(6, siteIds).getData(); List<Double> value2 = new ArrayList<>(); for (Double datum : data) { - Double datum1 = new BigDecimal(datum).divide(new BigDecimal(list.size()).multiply(v).multiply(new BigDecimal(24))).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); - value2.add(datum1); + if(list.size() == 0){ + value2.add(0D); + }else{ + Double datum1 = new BigDecimal(datum).divide(new BigDecimal(list.size()).multiply(v).multiply(new BigDecimal(24))).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); + value2.add(datum1); + } } Map<String, Object> utilizationTrend = new HashMap<>(); utilizationTrend.put("date", dates); -- Gitblit v1.7.1