From 4f9901f28b7a312834ed37aad536db3e418bd6cc Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期三, 25 六月 2025 17:58:42 +0800 Subject: [PATCH] 光伏对接三方调整api --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java | 61 +++++++++++------------------- 1 files changed, 22 insertions(+), 39 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java index 9fc1fe5..7f7dcc9 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java @@ -15,6 +15,7 @@ import com.ruoyi.other.mapper.TSystemConfigurationMapper; import com.ruoyi.other.service.TScreenContentService; import com.ruoyi.other.service.TSystemConfigurationService; +import com.ruoyi.other.util.KsolarUtils; import com.ruoyi.other.vo.EmissionReductionVO; import com.ruoyi.other.vo.PhotovoltaicPowerGenerationVO; import com.ruoyi.other.vo.ScreenStorageConfigVO; @@ -96,10 +97,19 @@ systemConfigurationMapper.updateById(sysConfig); vo.setEnergyStorage(storageDisCharge.multiply(new BigDecimal("0.1404")).divide(new BigDecimal("1000"),2,RoundingMode.DOWN)); } + //获取累计发电 + vo.setPhotovoltaic(KsolarUtils.getYearAllEnergy()); + //总数: BigDecimal total = vo.getPhotovoltaic().add(vo.getEnergyStorage()).add(vo.getCharge()); vo.setTotal(total); + + + + + + //计算比率 vo.setPhotovoltaicRate(calculateRatio(vo.getPhotovoltaic(),vo.getTotal()).multiply(new BigDecimal("100"))); vo.setEnergyStorageRate(calculateRatio(vo.getEnergyStorage(),vo.getTotal()).multiply(new BigDecimal("100"))); @@ -108,61 +118,32 @@ return vo; } - public static void main(String[] args) { - BigDecimal divide = new BigDecimal("607").multiply(new BigDecimal("0.1404")).divide(new BigDecimal("1000"),2,RoundingMode.DOWN); - System.out.println(divide); - } //百分比计算 public static BigDecimal calculateRatio(BigDecimal part, BigDecimal total) { if (total.compareTo(BigDecimal.ZERO) == 0) { throw new ArithmeticException("分母不能为零"); } - return part.divide(total, 4, RoundingMode.HALF_UP); } @Override public PhotovoltaicPowerGenerationVO photovoltaicPowerGeneration(List<Integer> siteIds) { - //需调用接口 - - //假数据 PhotovoltaicPowerGenerationVO vo = new PhotovoltaicPowerGenerationVO(); List<LocalDate> dates = new ArrayList<>(); - List<Integer> values = new ArrayList<>(); + List<Double> values = new ArrayList<>(); LocalDate today = LocalDate.now(); + ArrayList<Map<String, Object>> monthEnergy = KsolarUtils.getMonthEnergy(today.minusDays(7).toString().substring(0, 7), today.minusDays(1).toString().substring(0, 7)); // 生成每天数据 for (int i = 7; i >= 1; i--) {//升序 LocalDate day = today.minusDays(i); - //统计 - dates.add(day); - int value = new Random().nextInt(151) + 100; // 100-250 - switch (i){ - case 1: - value = 1780; // 50-100 - break; - case 2: - value = 1810; // 50-100 - break; - case 3: - value = 1765; // 50-100 - break; - case 4: - value = 1793; // 50-100 - break; - case 5: - value = 1833; // 50-100 - break; - case 6: - value = 1815; // 50-100 - break; - case 7: - value =1794; // 50-100 - break; - + Map<String, Object> stringObjectMap = monthEnergy.stream().filter(e -> e.get("time").toString().contains(day.toString())).findFirst().orElse(null); + if(stringObjectMap!=null){ + values.add(Double.valueOf(stringObjectMap.get("value").toString())); + }else { + values.add(0.0); } - values.add(value); } vo.setDates(dates); vo.setValues(values); @@ -205,8 +186,11 @@ BigDecimal dailyRate = new BigDecimal("100"); BigDecimal totalCharge = dailyRate.multiply(BigDecimal.valueOf(days)); vo.setStorageCharge(totalCharge); - //获取储能放电量 + vo.setPhotovoltaic(new BigDecimal(KsolarUtils.getAllEnergy(LocalDate.now().toString()))); + vo.setGreenElectricity(vo.getPhotovoltaic().multiply(new BigDecimal("0.94")).setScale(2, RoundingMode.HALF_UP)); + + //获取储能放电量 // 判断是否等于今天 if (configVO.getLastUpdated().equals(today)) { vo.setStorageDisCharge(configVO.getStorageDisCharge()); @@ -231,8 +215,7 @@ vo.setStorageDisCharge(storageDisCharge); - vo.setPhotovoltaic(new BigDecimal("9950")); - return vo; + return vo; } @Override -- Gitblit v1.7.1