| | |
| | | |
| | | @Override |
| | | public EmissionReductionVO emissionReduction(List<Integer> siteIds) { |
| | | ScreenTopVO top = top(Arrays.asList(25, 26)); |
| | | //需调用接口 计算光伏减排 |
| | | EmissionReductionVO vo = new EmissionReductionVO(); |
| | | //获取总电量 计算累计充电二氧化碳减排量 |
| | | BigDecimal charge=new BigDecimal("0.00"); |
| | | if (siteIds!=null && !siteIds.isEmpty()){ |
| | | R<BigDecimal> r = chargingOrderClient.getSumDegreeBySiteIds(siteIds); |
| | | if (r.getCode()==200){ |
| | | charge=r.getData(); |
| | | } |
| | | } |
| | | BigDecimal charge=top.getCarCharge(); |
| | | //计算累计充电二氧化碳减排量 |
| | | if (charge.compareTo(BigDecimal.ZERO) != 0) { |
| | | // 定义乘数和除数 |
| | |
| | | // 计算:charge × 0.1404 ÷ 1000 |
| | | charge = charge |
| | | .multiply(multiplier) // 乘以 0.1404 |
| | | .divide(divisor, 2, RoundingMode.HALF_UP); // 除以 1000,保留6位小数,四舍五入 |
| | | .divide(new BigDecimal("1000"),2, RoundingMode.HALF_DOWN); // 除以 1000,保留6位小数,四舍五入 |
| | | } |
| | | vo.setCharge(charge); |
| | | |
| | |
| | | LocalDate today = LocalDate.now(); |
| | | // 判断是否等于今天 |
| | | if (configVO.getLastUpdated().equals(today)) { |
| | | vo.setEnergyStorage(configVO.getStorageDisCharge()); |
| | | vo.setEnergyStorage(configVO.getStorageDisCharge().multiply(new BigDecimal("0.1404")).divide(new BigDecimal("1000"),2,RoundingMode.DOWN)); |
| | | }else { |
| | | //判断离今天还有几天 |
| | | int count = (int) ChronoUnit.DAYS.between(configVO.getLastUpdated(), today) +1;//包括今天 |
| | |
| | | sysConfig.setContent(json); |
| | | |
| | | systemConfigurationMapper.updateById(sysConfig); |
| | | vo.setEnergyStorage(storageDisCharge); |
| | | vo.setEnergyStorage(storageDisCharge.multiply(new BigDecimal("0.1404")).divide(new BigDecimal("1000"),2,RoundingMode.DOWN)); |
| | | } |
| | | |
| | | //总数: |
| | |
| | | vo.setChargeRate(calculateRatio(vo.getCharge(),vo.getTotal())); |
| | | |
| | | 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); |
| | | } |
| | | |
| | | //百分比计算 |
| | |
| | | //统计 |
| | | 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; |
| | | |
| | | } |
| | | values.add(value); |
| | | } |
| | | vo.setDates(dates); |
| | |
| | | BigDecimal greenElectricity=new BigDecimal("0.00"); |
| | | if (siteIds!=null && !siteIds.isEmpty()){ |
| | | //获取充电量 |
| | | R<BigDecimal> r = chargingOrderClient.getSumDegreeBySiteIds(siteIds); |
| | | R<BigDecimal> r = chargingOrderClient.getSumDegreeBySiteIds(Arrays.asList(25,26)); |
| | | if (r.getCode()==200){ |
| | | charge=r.getData(); |
| | | } |
| | |
| | | |
| | | systemConfigurationMapper.updateById(sysConfig); |
| | | vo.setStorageDisCharge(storageDisCharge); |
| | | |
| | | |
| | | vo.setPhotovoltaic(new BigDecimal("9950")); |
| | | return vo; |
| | | } |
| | | |