From fe9d1d16db80cd1295e43b657561b0d6e0318598 Mon Sep 17 00:00:00 2001 From: lishuai Date: Mon, 24 Feb 2025 20:46:31 +0800 Subject: [PATCH] =?UTF-8?q?CCER=202025=E5=B9=B42=E6=9C=8824=E6=97=A520:46:?= =?UTF-8?q?28?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/QyCcerInfoController.java | 20 +---- .../QyGreenCertificateInfoController.java | 1 - .../qingyuan/carbon/dto/QyCcerSumInfoDTO.java | 32 ------- .../carbon/service/QyCcerInfoService.java | 10 +-- .../QyGreenCertificateInfoService.java | 1 - .../service/impl/QyCcerInfoServiceImpl.java | 89 +++++++++---------- 6 files changed, 45 insertions(+), 108 deletions(-) delete mode 100644 modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCcerSumInfoDTO.java diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCcerInfoController.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCcerInfoController.java index 81b5d47..a8b8613 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCcerInfoController.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCcerInfoController.java @@ -10,7 +10,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.QyCcerInfoDTO; -import com.thing.qingyuan.carbon.dto.QyCcerSumInfoDTO; import com.thing.qingyuan.carbon.service.QyCcerInfoService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -19,7 +18,6 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -30,7 +28,7 @@ import java.util.Map; * @since 3.0 2025-02-17 */ @RestController -@RequestMapping("v2/ccer/info") +@RequestMapping("v2/ccer") @Tag(name="CCER信息总览") @RequiredArgsConstructor public class QyCcerInfoController { @@ -91,7 +89,7 @@ public class QyCcerInfoController { * 获取根据状态统计的CCER数量 * @return 各状态的CCER数量 */ - @GetMapping("/count/ByState") + @GetMapping("state") @Operation(summary = "根据状态统计CCER数量", description = "待申请、已申请状态的CCER数量") public Result> countCcerByState() { Map countResult = qyCcerInfoService.countCcerByState(); @@ -102,22 +100,12 @@ public class QyCcerInfoController { * 根据区域与小区统计成交量,并计算每个小镇在所属区域内的成交量占比 * @return 返回一个List,包含每个区域下每个小镇的成交量占比 */ - @GetMapping("/region") + @GetMapping("region") @Operation(summary = "获取区域减排量占比") @Parameter(name = "region", description = "区域名称") public Result>>getEmissionReductionPercentages() { - List> percentage = qyCcerInfoService.getEmissionReductionPercentagesByState(); + List> percentage = qyCcerInfoService.getByRegion(); return new Result>>().ok(percentage); } - /** - *获取今日的总成交量和总成交金额 - * @return 今日的总成交量和总成交金额 - */ - @GetMapping("/today") - @Operation(summary = "今日总成交量和总成交金额",description = "获取今日的总成交量和总成交金额") - public Result getTodayTotalVolume() { - QyCcerSumInfoDTO volumeList = qyCcerInfoService.getTodayTotalTransactionVolumeAndPriceByTime(); - return new Result().ok(volumeList); - } } 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 8bd6c21..3e79798 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 @@ -8,7 +8,6 @@ import com.thing.common.core.validator.group.AddGroup; 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.QyCcerSumInfoDTO; import com.thing.qingyuan.carbon.dto.QyGreenCertificateInfoDTO; import com.thing.qingyuan.carbon.dto.QyGreenSumInfoDTO; import com.thing.qingyuan.carbon.service.QyGreenCertificateInfoService; diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCcerSumInfoDTO.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCcerSumInfoDTO.java deleted file mode 100644 index b866f8c..0000000 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCcerSumInfoDTO.java +++ /dev/null @@ -1,32 +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 QyCcerSumInfoDTO implements Serializable { - @Serial - private static final long serialVersionUID = 1L; - - @Schema(description = "区域") - private String belongRegion; - @Schema(description = "统计") - private String total; - @Schema(description = "状态") - private String state; - @Schema(description = "价格") - private Double price; - @Schema(description = "备案减排量") - private Double recordEmission; - @Schema(description = "待申请CCER") - private Double pending; - @Schema(description = "已申请CCER") - private Double applied; - @Schema(description = "累计CCER") - private Double total1; -} - diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCcerInfoService.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCcerInfoService.java index ca2d834..f1ce8f3 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCcerInfoService.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCcerInfoService.java @@ -2,10 +2,8 @@ package com.thing.qingyuan.carbon.service; import com.thing.common.orm.service.IBaseService; -import com.thing.qingyuan.carbon.dto.QyCcerSumInfoDTO; import com.thing.qingyuan.carbon.entity.QyCcerInfoEntity; -import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -21,13 +19,7 @@ public interface QyCcerInfoService extends IBaseService { * 根据区域与小镇统计成交量,并计算每个小镇在所属区域内的成交量占比 * @return 返回一个Map,包含每个区域下每个小镇的成交量占比 */ - List> getEmissionReductionPercentagesByState(); + List> getByRegion(); - /** - * 获取今日的总成交量和今日总成交金额 - * @return 今日的总成交量和今日总成交金额 - */ - QyCcerSumInfoDTO getTodayTotalTransactionVolumeAndPriceByTime(); - } 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 1d72d5e..35e1b16 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.QyCcerSumInfoDTO; import com.thing.qingyuan.carbon.dto.QyGreenSumInfoDTO; import com.thing.qingyuan.carbon.entity.QyGreenCertificateInfoEntity; diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCcerInfoServiceImpl.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCcerInfoServiceImpl.java index b6a9c7d..4641be6 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCcerInfoServiceImpl.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCcerInfoServiceImpl.java @@ -4,10 +4,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.QyCcerSumInfoDTO; +import com.thing.qingyuan.carbon.dto.QyCcerInfoDTO; import com.thing.qingyuan.carbon.entity.QyCcerInfoEntity; import com.thing.qingyuan.carbon.mapper.QyCcerInfoMapper; import com.thing.qingyuan.carbon.service.QyCcerInfoService; +import com.thing.qingyuan.carbon.util.Constant; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -83,19 +84,19 @@ public class QyCcerInfoServiceImpl extends BaseServiceImpl countCcerByState() { QueryWrapper queryWrapper1 = QueryWrapper.create() - .select(sum(QY_CCER_INFO_ENTITY.TOTAL).as("total")) + .select(sum(QY_CCER_INFO_ENTITY.TOTAL)) .from(QY_CCER_INFO_ENTITY) .eq(QyCcerInfoEntity::getState, "1"); //sum1 待申请CCER String sum1 = mapper.selectOneByQueryAs(queryWrapper1, String.class); QueryWrapper queryWrapper2 = QueryWrapper.create() - .select(sum(QY_CCER_INFO_ENTITY.TOTAL).as("total")) + .select(sum(QY_CCER_INFO_ENTITY.TOTAL)) .from(QY_CCER_INFO_ENTITY) .eq(QyCcerInfoEntity::getState, "2"); //sum2 已申请CCER String sum2 = mapper.selectOneByQueryAs(queryWrapper2, String.class); QueryWrapper queryWrapper3 = QueryWrapper.create() - .select(sum(QY_CCER_INFO_ENTITY.TOTAL).as("total")) + .select(sum(QY_CCER_INFO_ENTITY.TOTAL)) .from(QY_CCER_INFO_ENTITY); //sum3 累计CCER(sum=sum1+sum2) String sum3 = mapper.selectOneByQueryAs(queryWrapper3, String.class); @@ -106,7 +107,33 @@ public class QyCcerInfoServiceImpl extends BaseServiceImpl> getEmissionReductionPercentagesByState() { - // 示例区域列表,可根据实际情况查询数据库中的区域列表 - List regions = Arrays.asList("天玉镇", "河东街道", "富滩镇", "值夏镇", "文陂镇", "富田镇", "东固畲族乡", "新圩镇"); + public List> getByRegion() { // 根据区域查询成交量总和 QueryWrapper queryWrapper = QueryWrapper.create() .select(QY_CCER_INFO_ENTITY.REGION, sum(QY_CCER_INFO_ENTITY.TOTAL).as("total")) .from(QY_CCER_INFO_ENTITY) .groupBy(QY_CCER_INFO_ENTITY.REGION); // 查询符合条件的小镇成交量数据 - List quotaList1 = mapper.selectListByQueryAs(queryWrapper, QyCcerSumInfoDTO.class); + List quotaList1 = mapper.selectListByQueryAs(queryWrapper, QyCcerInfoDTO.class); //查询总量 QueryWrapper queryWrapper2 = QueryWrapper.create() - .select(sum(QY_CCER_INFO_ENTITY.TOTAL).as("total")) + .select(sum(QY_CCER_INFO_ENTITY.TOTAL)) .from(QY_CCER_INFO_ENTITY); String sumTotal = mapper.selectOneByQueryAs(queryWrapper2, String.class); // 存储最终结果 List> resultList = new ArrayList<>(); List tempRegions = Lists.newArrayList(); - for (QyCcerSumInfoDTO quotaInfoDTO : quotaList1) { + for (QyCcerInfoDTO quotaInfoDTO : quotaList1) { Map tempMap = new HashMap<>(); //占比 - tempMap.put("percent", new BigDecimal(quotaInfoDTO.getTotal()).divide(new BigDecimal(sumTotal), 2, RoundingMode.HALF_UP).toString()); - tempMap.put("region", quotaInfoDTO.getBelongRegion()); + tempMap.put("percent", quotaInfoDTO.getTotal().divide(new BigDecimal(sumTotal), 2, RoundingMode.HALF_UP).toString()); + tempMap.put("region", quotaInfoDTO.getRegion()); resultList.add(tempMap); - tempRegions.add(quotaInfoDTO.getBelongRegion()); + tempRegions.add(quotaInfoDTO.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"); @@ -154,39 +179,5 @@ public class QyCcerInfoServiceImpl extends BaseServiceImpl