From 6fd8773f526a2e4bee8bf0b41b55cba3892b451b Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期四, 29 五月 2025 16:51:32 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile into dev --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 6 +- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java | 54 +++++++++++++++++++++++++-- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/EmissionReductionVO.java | 10 ++-- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/PhotovoltaicAndConsumptionVO.java | 4 ++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java | 15 ++++++- 5 files changed, 75 insertions(+), 14 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index 4fd1554..95be317 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -4097,7 +4097,8 @@ LocalDateTime endDate = today.minusDays(1).atTime(LocalTime.MAX); // 查询数据库 List<OrderCountByDate> orderCounts = this.baseMapper.countOrdersByDate(startDate, endDate, gunIds);*/ - // 转换结果 + + List<LocalDate> dates = new ArrayList<>(); List<Integer> counts = new ArrayList<>(); LocalDate today = LocalDate.now(); @@ -4113,7 +4114,7 @@ .eq(TChargingOrder::getDelFlag,0)//未删除 .in(TChargingOrder::getStatus,Arrays.asList(3,5))//充电中、已结束 .in(TChargingOrder::getChargingGunId,gunIds)//符合条件的充电枪 站点 超充快充 - .between(BasePojo::getCreateTime,startOfDay,endOfDay));//每天 + .between(TChargingOrder::getCreateTime,startOfDay,endOfDay));//每天 } dates.add(day); counts.add(count.intValue()); @@ -4122,7 +4123,6 @@ vo.setCounts(counts); return R.ok(vo); } - @Override public BigDecimal getSumDegreeBySiteIds(List<Integer> siteIds) { diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java index 80f612a..e93e819 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TScreenContentController.java @@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.Arrays; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; @@ -56,8 +57,18 @@ @GetMapping(value = "/photovoltaicAndConsumption") public AjaxResult<PhotovoltaicAndConsumptionVO> photovoltaicAndConsumption() { //需调用接口 获取光伏发电量 - - return AjaxResult.success(new PhotovoltaicAndConsumptionVO()); + List<Integer> siteIds= Arrays.asList(25,26); + PhotovoltaicAndConsumptionVO vo = new PhotovoltaicAndConsumptionVO(); + List<TScreenContent> list = screenContentService.list(new LambdaQueryWrapper<TScreenContent>().in(TScreenContent::getSiteId, siteIds)); + if(list==null|| list.isEmpty()){ + return AjaxResult.success(vo); + } + vo.setGreenElectricityToday(list.get(0).getGreenElectricityToday()); + list.remove(0); + list.forEach(x->{ + vo.setGreenElectricityToday(vo.getGreenElectricityToday().add(x.getGreenElectricityToday())); + }); + return AjaxResult.success(vo); } 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 93e5242..09360e3 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 @@ -53,7 +53,7 @@ public EmissionReductionVO emissionReduction(List<Integer> siteIds) { //需调用接口 计算光伏减排 EmissionReductionVO vo = new EmissionReductionVO(); - //获取总电量 计算电量 + //获取总电量 计算累计充电二氧化碳减排量 BigDecimal charge=new BigDecimal("0.00"); if (siteIds!=null && !siteIds.isEmpty()){ R<BigDecimal> r = chargingOrderClient.getSumDegreeBySiteIds(siteIds); @@ -61,7 +61,7 @@ charge=r.getData(); } } - //计算电量占比率 + //计算累计充电二氧化碳减排量 if (charge.compareTo(BigDecimal.ZERO) != 0) { // 定义乘数和除数 BigDecimal multiplier = new BigDecimal("0.1404"); // 0.1404 @@ -72,7 +72,54 @@ .divide(divisor, 2, RoundingMode.HALF_UP); // 除以 1000,保留6位小数,四舍五入 } vo.setCharge(charge); + + //获取累计储能放电量 + TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(new LambdaQueryWrapper<TSystemConfiguration>() + .eq(TSystemConfiguration::getType,3)); + //解析 + ScreenStorageConfigVO configVO = JSON.parseObject(sysConfig.getContent(), ScreenStorageConfigVO.class); + LocalDate today = LocalDate.now(); + // 判断是否等于今天 + if (configVO.getLastUpdated().equals(today)) { + vo.setEnergyStorage(configVO.getStorageDisCharge()); + }else { + //判断离今天还有几天 + int count = (int) ChronoUnit.DAYS.between(configVO.getLastUpdated(), today) +1;//包括今天 + BigDecimal storageDisCharge = configVO.getStorageDisCharge(); + // 每天生成一个随机值(不超过100)并累加 + for (int i = 0; i < count; i++) { + int dailyCharge = ThreadLocalRandom.current().nextInt(0, 101); // 0-100的随机数 + storageDisCharge = storageDisCharge.add(new BigDecimal(dailyCharge)); + } + + // 更新回对象 + configVO.setStorageDisCharge(storageDisCharge); + configVO.setLastUpdated(today); + String json = JSON.toJSONString(configVO); + sysConfig.setContent(json); + + systemConfigurationMapper.updateById(sysConfig); + vo.setEnergyStorage(storageDisCharge); + } + + //总数: + BigDecimal total = vo.getPhotovoltaic().add(vo.getEnergyStorage()).add(vo.getCharge()); + vo.setTotal(total); + //计算比率 + vo.setPhotovoltaicRate(calculateRatio(vo.getPhotovoltaic(),vo.getTotal())); + vo.setEnergyStorageRate(calculateRatio(vo.getEnergyStorage(),vo.getTotal())); + vo.setChargeRate(calculateRatio(vo.getCharge(),vo.getTotal())); + return vo; + } + + //百分比计算 + public static BigDecimal calculateRatio(BigDecimal part, BigDecimal total) { + if (total.compareTo(BigDecimal.ZERO) == 0) { + throw new ArithmeticException("分母不能为零"); + } + + return part.divide(total, 2, RoundingMode.HALF_UP); } @Override @@ -131,8 +178,7 @@ int days = (int) ChronoUnit.DAYS.between(systemCreateTime, today) +1;//包括今天 BigDecimal dailyRate = new BigDecimal("100"); - BigDecimal totalCharge = dailyRate.multiply(BigDecimal.valueOf(days)) - .divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP); + BigDecimal totalCharge = dailyRate.multiply(BigDecimal.valueOf(days)); vo.setStorageCharge(totalCharge); //获取储能放电量 diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/EmissionReductionVO.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/EmissionReductionVO.java index adb7c77..5fb0510 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/EmissionReductionVO.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/EmissionReductionVO.java @@ -10,18 +10,18 @@ @ApiModelProperty("累计光伏发电二氧化碳减排量(吨)") private BigDecimal photovoltaic = new BigDecimal("63.00"); @ApiModelProperty("累计光伏发电二氧化碳减排量(占比率)") - private BigDecimal photovoltaicRate = new BigDecimal("48.8"); + private BigDecimal photovoltaicRate ; @ApiModelProperty("累计储能二氧化碳减排量(吨)") - private BigDecimal energyStorage = new BigDecimal("20.00"); + private BigDecimal energyStorage ; @ApiModelProperty("累计储能二氧化碳减排量(占比率)") - private BigDecimal energyStorageRate = new BigDecimal("48.8"); + private BigDecimal energyStorageRate ; @ApiModelProperty("累计充电二氧化碳减排量(吨)") private BigDecimal charge; @ApiModelProperty("累计充电二氧化碳减排量(占比率)") - private BigDecimal chargeRate = new BigDecimal("4.8"); + private BigDecimal chargeRate ; @ApiModelProperty("总计二氧化碳减排量(吨)") - private BigDecimal total = new BigDecimal("48000"); + private BigDecimal total ; } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/PhotovoltaicAndConsumptionVO.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/PhotovoltaicAndConsumptionVO.java index cb2148a..dd9b28f 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/PhotovoltaicAndConsumptionVO.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/PhotovoltaicAndConsumptionVO.java @@ -1,5 +1,6 @@ package com.ruoyi.other.vo; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,4 +16,7 @@ @ApiModelProperty("今日已发电") private BigDecimal todayGenerateElectricity=new BigDecimal("71.29"); + @ApiModelProperty("今日绿电消纳值") + private BigDecimal greenElectricityToday=new BigDecimal("0.00"); + } -- Gitblit v1.7.1