From 3b179ff7149a13e99ed2aa8f494ed6750e4dc04c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 31 八月 2024 14:50:35 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 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