diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyGreenCertificateInfoController.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyGreenCertificateInfoController.java index 3e79798..79bb166 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyGreenCertificateInfoController.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyGreenCertificateInfoController.java @@ -9,7 +9,6 @@ import com.thing.common.core.validator.group.UpdateGroup; import com.thing.common.core.web.response.PageData; import com.thing.common.core.web.response.Result; import com.thing.qingyuan.carbon.dto.QyGreenCertificateInfoDTO; -import com.thing.qingyuan.carbon.dto.QyGreenSumInfoDTO; import com.thing.qingyuan.carbon.service.QyGreenCertificateInfoService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -23,7 +22,7 @@ import java.util.List; import java.util.Map; @RestController -@RequestMapping("v2/green/info") +@RequestMapping("v2/green") @Tag(name = "绿证信息总览") @RequiredArgsConstructor public class QyGreenCertificateInfoController { @@ -85,7 +84,7 @@ public class QyGreenCertificateInfoController { * 获取根据状态统计的绿证数量 * @return 各状态的绿证数量 */ - @GetMapping("/count/ByState") + @GetMapping("state") @Operation(summary = "根据状态统计绿证数量", description = "待发放、已申请状态的CCER数量") public Result> countGreenByState() { Map countResult = qyGreenCertificateInfoService.countGreenByState(); @@ -96,21 +95,11 @@ public class QyGreenCertificateInfoController { * 根据区域与绿证能源总量,并计算每个小镇在所属区域内的绿证占比 * @return 返回一个List,包含每个区域下每个小镇的绿证占比 */ - @GetMapping("/regions") + @GetMapping("region") @Operation(summary = "获取区域绿证占比") - @Parameter(name = "region", description = "区域名称") public Result>> getRegionGreenCertificatePercentage() { List> percentage = qyGreenCertificateInfoService.getRegionGreenCertificatePercentage(); return new Result>>().ok(percentage); } - /** - *获取今日的总成交量和总成交金额 - * @return 今日的总成交量和总成交金额 - */ - @GetMapping("/today") - @Operation(summary = "今日总成交量和总成交金额",description = "获取今日的总成交量和总成交金额") - public Result getTodayTotal() { - QyGreenSumInfoDTO volumeList = qyGreenCertificateInfoService.getTodayTotalTransactionVolumeAndPriceByTime(); - return new Result().ok(volumeList); - } + } diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyGreenSumInfoDTO.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyGreenSumInfoDTO.java deleted file mode 100644 index e03ddb0..0000000 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyGreenSumInfoDTO.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.thing.qingyuan.carbon.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - -@Data -@Schema(description = "绿证总成交量和成交金额统计信息") -public class QyGreenSumInfoDTO implements Serializable { - @Serial - private static final long serialVersionUID = 1L; - - @Schema(description = "统计") - private String total; - @Schema(description = "状态") - private String state; - @Schema(description = "绿证能源总量") - private Double greenTotal; - @Schema(description = "绿证价格") - private Double price; - @Schema(description = "待发放绿证") - private Double pending; - @Schema(description = "已申请绿证") - private Double applied; - @Schema(description = "累计绿证") - private Double total1; - @Schema(description = "区域") - private String region; -} diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyGreenCertificateInfoService.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyGreenCertificateInfoService.java index 35e1b16..db93697 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyGreenCertificateInfoService.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyGreenCertificateInfoService.java @@ -1,7 +1,6 @@ package com.thing.qingyuan.carbon.service; import com.thing.common.orm.service.IBaseService; -import com.thing.qingyuan.carbon.dto.QyGreenSumInfoDTO; import com.thing.qingyuan.carbon.entity.QyGreenCertificateInfoEntity; import java.util.List; @@ -14,12 +13,6 @@ public interface QyGreenCertificateInfoService extends IBaseService> getRegionGreenCertificatePercentage(); - /** - * 获取今日的总成交量和今日总成交金额 - * @return 今日的总成交量和今日总成交金额 - */ - QyGreenSumInfoDTO getTodayTotalTransactionVolumeAndPriceByTime(); - /** * 获取根据状态统计的绿证数量 * @return 各状态的绿证数量 diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyGreenCertificateInfoServiceImpl.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyGreenCertificateInfoServiceImpl.java index e87ee92..e3f789e 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyGreenCertificateInfoServiceImpl.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyGreenCertificateInfoServiceImpl.java @@ -5,10 +5,11 @@ import cn.hutool.core.collection.CollectionUtil; import com.google.common.collect.Lists; import com.mybatisflex.core.query.QueryWrapper; import com.thing.common.orm.service.impl.BaseServiceImpl; -import com.thing.qingyuan.carbon.dto.QyGreenSumInfoDTO; +import com.thing.qingyuan.carbon.dto.QyGreenCertificateInfoDTO; import com.thing.qingyuan.carbon.entity.QyGreenCertificateInfoEntity; import com.thing.qingyuan.carbon.mapper.QyGreenCertificateInfoMapper; import com.thing.qingyuan.carbon.service.QyGreenCertificateInfoService; +import com.thing.qingyuan.carbon.util.Constant; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -49,29 +50,51 @@ public class QyGreenCertificateInfoServiceImpl extends BaseServiceImpl countGreenByState() { QueryWrapper queryWrapper1 = QueryWrapper.create() - .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL).as("total")) + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL)) .from(QY_GREEN_CERTIFICATE_INFO_ENTITY) - .eq(QyGreenCertificateInfoEntity::getState,"1"); + .eq(QyGreenCertificateInfoEntity::getState, "1"); //sum1 为待发放绿证 - String sum1 = mapper.selectOneByQueryAs(queryWrapper1,String.class); + String sum1 = mapper.selectOneByQueryAs(queryWrapper1, String.class); QueryWrapper queryWrapper2 = QueryWrapper.create() - .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL).as("total")) + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL)) .from(QY_GREEN_CERTIFICATE_INFO_ENTITY) - .eq(QyGreenCertificateInfoEntity::getState,"2"); + .eq(QyGreenCertificateInfoEntity::getState, "2"); //sum1 为已申请绿证 - String sum2 = mapper.selectOneByQueryAs(queryWrapper2,String.class); + String sum2 = mapper.selectOneByQueryAs(queryWrapper2, String.class); QueryWrapper queryWrapper3 = QueryWrapper.create() .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL).as("total")) .from(QY_GREEN_CERTIFICATE_INFO_ENTITY); //sum1 为累计绿证 (sum=sum1+sum2) - String sum = mapper.selectOneByQueryAs(queryWrapper3,String.class); + String sum = mapper.selectOneByQueryAs(queryWrapper3, String.class); + // 获取今天的日期 + LocalDate today = LocalDate.now(); + Long startOfDay = today.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli(); + Long endOfDay = today.atTime(23, 59, 59, 999999999) + .atZone(ZoneId.systemDefault()) + .toInstant() + .toEpochMilli(); + + QueryWrapper queryWrapperPrice = QueryWrapper.create() + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.PRICE)) + .from(QY_GREEN_CERTIFICATE_INFO_ENTITY) + .ge(QyGreenCertificateInfoEntity::getIssueDate, startOfDay) + .le(QyGreenCertificateInfoEntity::getIssueDate, endOfDay); + String sum2Price = mapper.selectOneByQueryAs(queryWrapperPrice, String.class); + + QueryWrapper queryWrapperTotal = QueryWrapper.create() + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL)) + .from(QY_GREEN_CERTIFICATE_INFO_ENTITY) + .ge(QyGreenCertificateInfoEntity::getIssueDate, startOfDay) + .le(QyGreenCertificateInfoEntity::getIssueDate, endOfDay); + String sum2Total = mapper.selectOneByQueryAs(queryWrapperTotal, String.class); Map temMap = new HashMap<>(); //待发放绿证 @@ -79,25 +102,26 @@ public class QyGreenCertificateInfoServiceImpl extends BaseServiceImpl> getRegionGreenCertificatePercentage() { - // 示例区域列表,可根据实际情况查询数据库中的区域列表 - List regions = Arrays.asList("天玉镇", "河东街道", "富滩镇", "值夏镇", "文陂镇", "富田镇", "东固畲族乡", "新圩镇"); // 根据区域查询成绿证总和 QueryWrapper queryWrapper = QueryWrapper.create() - .select(QY_GREEN_CERTIFICATE_INFO_ENTITY.REGION,sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL).as("total")) + .select(QY_GREEN_CERTIFICATE_INFO_ENTITY.REGION, sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL).as("total")) .from(QY_GREEN_CERTIFICATE_INFO_ENTITY) .groupBy(QY_GREEN_CERTIFICATE_INFO_ENTITY.REGION); // 查询符合条件的小镇绿证数据 - List qyGreenSumInfoDTOList = mapper.selectListByQueryAs(queryWrapper, QyGreenSumInfoDTO.class); + List qyGreenSumInfoDTOList = mapper.selectListByQueryAs(queryWrapper, QyGreenCertificateInfoDTO.class); //查询绿证总能源量 QueryWrapper queryWrapper6 = QueryWrapper.create() .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL).as("total")) @@ -106,59 +130,24 @@ public class QyGreenCertificateInfoServiceImpl extends BaseServiceImpl> resultList = new ArrayList<>(); List tempRegions = Lists.newArrayList(); - for (QyGreenSumInfoDTO qyGreenSumInfoDTO : qyGreenSumInfoDTOList) { + for (QyGreenCertificateInfoDTO qyGreenSumInfoDTO : qyGreenSumInfoDTOList) { Map tempMap = new HashMap<>(); //占比 - tempMap.put("percent", new BigDecimal(qyGreenSumInfoDTO.getTotal()).divide(new BigDecimal(sumTotal), 2, RoundingMode.HALF_UP).toString()); + tempMap.put("percent", qyGreenSumInfoDTO.getTotal().divide(new BigDecimal(sumTotal), 2, RoundingMode.HALF_UP).toString()); tempMap.put("region", qyGreenSumInfoDTO.getRegion()); resultList.add(tempMap); tempRegions.add(qyGreenSumInfoDTO.getRegion()); } //差集 - Collection disjunction = CollectionUtil.disjunction(regions, tempRegions); + Collection disjunction = CollectionUtil.disjunction(Constant.REGIONS, tempRegions); for (String s : disjunction) { Map tempMap = new HashMap<>(); tempMap.put("percent", "0"); tempMap.put("region", s); resultList.add(tempMap); } - - - - return resultList; + return resultList; } - - /** - * 获取今日的总成交量和今日总成交金额 - * @return 今日的总成交量和今日总成交金额 - */ - @Override - public QyGreenSumInfoDTO getTodayTotalTransactionVolumeAndPriceByTime() { - // 获取今天的日期 - LocalDate today = LocalDate.now(); - // 将今天的日期转换为 Date 类型 - Long startOfDay = today.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli(); - Long endOfDay = today.atTime(23, 59, 59, 999999999) - .atZone(ZoneId.systemDefault()) - .toInstant() - .toEpochMilli(); - // 查询今天的总成交量和总成交金额 - QueryWrapper queryWrapper = QueryWrapper.create() - .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.TOTAL).as("greenTotal"), - sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.PRICE).as("price")) - .ge(QyGreenCertificateInfoEntity::getApplicationDate, startOfDay) - .le(QyGreenCertificateInfoEntity::getApplicationDate, endOfDay) - .from(QY_GREEN_CERTIFICATE_INFO_ENTITY); - - // 执行查询,返回结果 - QyGreenSumInfoDTO qyGreenSumInfoDTO = mapper.selectOneByQueryAs(queryWrapper, QyGreenSumInfoDTO.class); - if (qyGreenSumInfoDTO == null) { - qyGreenSumInfoDTO = new QyGreenSumInfoDTO(); - qyGreenSumInfoDTO.setGreenTotal(0.0); - qyGreenSumInfoDTO.setPrice(0.0); - } - return qyGreenSumInfoDTO; - } - } +}