| | |
| | | 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; |
| | |
| | | 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"))); |
| | |
| | | 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(); |
| | | // 生成每天数据 |
| | | 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; |
| | | |
| | | } |
| | | Double value = KsolarUtils.getTodayEnergy(day.toString()); // 100-250 |
| | | values.add(value); |
| | | } |
| | | vo.setDates(dates); |
| | |
| | | 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()); |
| | |
| | | vo.setStorageDisCharge(storageDisCharge); |
| | | |
| | | |
| | | vo.setPhotovoltaic(new BigDecimal("9950")); |
| | | return vo; |
| | | return vo; |
| | | } |
| | | |
| | | @Override |