diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCarbonAssetController.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCarbonAssetController.java index 74a757b..6a1f3e0 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCarbonAssetController.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCarbonAssetController.java @@ -65,4 +65,26 @@ public class QyCarbonAssetController { Map countResult = qyCarbonAssetService.countTotalCarbonAsset(); return new Result>().ok(countResult); } + + /** + * 获取碳资产对应标签的单价,数量,余额,账户总余额 + * @return 返回一个Map + */ + @GetMapping("/unit/Price") + @Operation(summary = "计算碳配额,CCER,绿证单价") + public Result> calculateCarbonAsset() { + Map unitPrice = qyCarbonAssetService.calculateAsset(); + return new Result>().ok(unitPrice); + } + + /** + * 统计买入,发放,核销三种状态共计碳资产量 + * @return 返回一个map + */ + @GetMapping("/count/ByState") + @Operation(summary = "统计买入、发放、核销三种状态碳资产量") + public Result> countCarbonAssetState() { + Map stateCount = qyCarbonAssetService.countCarbonAssetState(); + return new Result>().ok(stateCount); + } } diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCarbonQuotaInfoController.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCarbonQuotaInfoController.java index 0673580..2a51a96 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCarbonQuotaInfoController.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/controller/QyCarbonQuotaInfoController.java @@ -82,7 +82,10 @@ public class QyCarbonQuotaInfoController { } - + /** + * 统计当前碳配额总和和三种状态所占百分比 + * @return 返回一个map + */ @GetMapping("/state") @Operation(summary = "获取碳配额状态统计和百分比") public Result> getCarbonQuotaStatisticsWithStatePercentage() { @@ -90,6 +93,10 @@ public class QyCarbonQuotaInfoController { return new Result>().ok(statisticsWithPercentage); } + /** + * 获取区域减排量占比 + * @return 返回一个Map,键为区域名称,值为该区域减排量占总碳配额的百分比 + */ @GetMapping("/region") @Operation(summary = "获取区域减排量占比") @Parameter(name = "region", description = "区域名称") diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCarbonQuotaInfoDTO.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCarbonQuotaInfoDTO.java index 0a1c4e0..a6bcaa3 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCarbonQuotaInfoDTO.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCarbonQuotaInfoDTO.java @@ -31,8 +31,6 @@ public class QyCarbonQuotaInfoDTO implements Serializable { private Long certificationCycle; @Schema(description = "认证时间段") private Long certificationTime; - @Schema(description = "类别:1.待发放碳配额(tCO2) 2.已发放碳配额(tCO2)") - private String category; @Schema(description = "认证完成日期") private Long certificationFinishDate; @Schema(description = "区域") @@ -57,4 +55,12 @@ public class QyCarbonQuotaInfoDTO implements Serializable { private Long companyId; @Schema(description = "部门id") private Long deptId; + @Schema(description = "核销日期") + private Long verificationDate; + @Schema(description = "核销量") + private Double verificationVolume; + @Schema(description = "价格") + private Double price; + @Schema(description = "碳资产状态:1.买入 2.核销 3.发放") + private String assetState; } \ No newline at end of file diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCcerInfoDTO.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCcerInfoDTO.java index b6e3590..36ffa6d 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCcerInfoDTO.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyCcerInfoDTO.java @@ -54,4 +54,10 @@ public class QyCcerInfoDTO implements Serializable { private Long companyId; @Schema(description = "部门id") private Long deptId; + @Schema(description = "核销日期") + private Long verificationDate; + @Schema(description = "核销量") + private Double verificationVolume; + @Schema(description = "碳资产状态:1.买入 2.核销 3.发放") + private String assetState; } \ No newline at end of file diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyGreenCertificateInfoDTO.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyGreenCertificateInfoDTO.java index 842fedd..efad96d 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyGreenCertificateInfoDTO.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/dto/QyGreenCertificateInfoDTO.java @@ -48,7 +48,13 @@ public class QyGreenCertificateInfoDTO implements Serializable { private Long deptId; @Schema(description = "区域") private String region; - @Schema(description = "价格") + @Schema(description = "绿证价格") private Double price; + @Schema(description = "核销日期") + private Long verificationDate; + @Schema(description = "核销量") + private Double verificationVolume; + @Schema(description = "碳资产状态:1.买入 2.核销 3.发放") + private String assetState; } \ No newline at end of file diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyCarbonQuotaInfoEntity.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyCarbonQuotaInfoEntity.java index b42b1be..d271795 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyCarbonQuotaInfoEntity.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyCarbonQuotaInfoEntity.java @@ -48,10 +48,6 @@ public class QyCarbonQuotaInfoEntity extends BaseInfoEntity implements Serializ * 认证时间段 */ private Long certificationTime; - /** - * 类别:1.待发放碳配额(tCO2) 2.已发放碳配额(tCO2) - */ - private String category; /** * 认证完成日期 */ @@ -72,5 +68,21 @@ public class QyCarbonQuotaInfoEntity extends BaseInfoEntity implements Serializ * 小镇名称 */ private String town; + /** + * 核销日期 + */ + private Long verificationDate; + /** + * 核销量 + */ + private Double verificationVolume; + /** + * 价格 + */ + private Double price; + /** + * 碳资产状态:1.买入 2.核销 3.发放 + */ + private String assetState; } \ No newline at end of file diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyCcerInfoEntity.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyCcerInfoEntity.java index 1d813aa..7b0bf49 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyCcerInfoEntity.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyCcerInfoEntity.java @@ -67,7 +67,19 @@ public class QyCcerInfoEntity extends BaseInfoEntity implements Serializable { /** * 价格 */ - private Double price; + /** + * 核销日期 + */ + private Long verificationDate; + /** + * 核销量 + */ + private Double verificationVolume; + /** + * 碳资产状态:1.买入 2.核销 3.发放 + */ + private String assetState; + } \ No newline at end of file diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyGreenCertificateInfoEntity.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyGreenCertificateInfoEntity.java index 61a8bb0..abc6147 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyGreenCertificateInfoEntity.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/entity/QyGreenCertificateInfoEntity.java @@ -59,5 +59,17 @@ public class QyGreenCertificateInfoEntity extends BaseInfoEntity implements Seri * 绿证价格 */ private Double price; + /** + * 核销日期 + */ + private Long verificationDate; + /** + * 核销量 + */ + private Double verificationVolume; + /** + * 碳资产状态:1.买入 2.核销 3.发放 + */ + private String assetState; } \ No newline at end of file diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCarbonAssetService.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCarbonAssetService.java index 3d45486..5f64bb1 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCarbonAssetService.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCarbonAssetService.java @@ -20,4 +20,15 @@ public interface QyCarbonAssetService extends IBaseService{ * @return 返回一个包含碳配额、CCER和绿证占比的Map */ Map countTotalCarbonAsset(); + /** + * 获取碳资产对应标签的单价,数量,余额,账户总余额 + * @return 返回一个Map + */ + Map calculateAsset(); + + /** + * 统计买入,发放,核销三种状态共计碳资产量 + * @return 返回一个map + */ + Map countCarbonAssetState(); } diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCarbonQuotaInfoService.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCarbonQuotaInfoService.java index 2c28996..ccb0f27 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCarbonQuotaInfoService.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/QyCarbonQuotaInfoService.java @@ -25,10 +25,8 @@ public interface QyCarbonQuotaInfoService extends IBaseService getCarbonQuotaStatisticsWithStatePercentage(); diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCarbonAssetServiceImpl.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCarbonAssetServiceImpl.java index 837901e..81e7995 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCarbonAssetServiceImpl.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCarbonAssetServiceImpl.java @@ -8,10 +8,15 @@ import com.thing.qingyuan.carbon.entity.QyCcerInfoEntity; import com.thing.qingyuan.carbon.entity.QyGreenCertificateInfoEntity; import com.thing.qingyuan.carbon.mapper.QyCarbonAssetMapper; import com.thing.qingyuan.carbon.service.QyCarbonAssetService; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestMapping; +import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; @@ -22,6 +27,7 @@ import static com.thing.qingyuan.carbon.entity.table.QyGreenCertificateInfoEntit @Service public class QyCarbonAssetServiceImpl extends BaseServiceImpl implements QyCarbonAssetService { + @Override public QueryWrapper getWrapper(Map params) { return null; @@ -139,4 +145,221 @@ public class QyCarbonAssetServiceImpl extends BaseServiceImpl calculateAsset() { + /* + ==================================碳配额数量和金额 ===================================================================== + */ + //查询碳配额量总量 + QueryWrapper queryWrapper = QueryWrapper.create() + .select(sum(QY_CARBON_QUOTA_INFO_ENTITY.CARBON_QUOTA).as("total")) + .from(QY_CARBON_QUOTA_INFO_ENTITY); + //numTotal 为碳配额量总量 + String carbonTotal = mapper.selectOneByQueryAs(queryWrapper, String.class); + //查询碳配额总金额 + QueryWrapper queryWrapper1 = QueryWrapper.create() + .select(sum(QY_CARBON_QUOTA_INFO_ENTITY.PRICE).as("total")) + .from(QY_CARBON_QUOTA_INFO_ENTITY); + // sum 为碳配额总金额 + String carbonPrice = mapper.selectOneByQueryAs(queryWrapper1, String.class); + /* + ==================================CCER数量和金额==================================================================== + */ + //查询ccer总量 + QueryWrapper queryWrapper2 = QueryWrapper.create() + .select(sum(QY_CCER_INFO_ENTITY.RECORD_EMISSION).as("total")) + .from(QY_CCER_INFO_ENTITY); + //ccerNum 为ccer总量 + String ccerTotal= mapper.selectOneByQueryAs(queryWrapper2, String.class); + //查询ccer总金额 + QueryWrapper queryWrapper3 = QueryWrapper.create() + .select(sum(QY_CCER_INFO_ENTITY.PRICE).as("total")) + .from(QY_CCER_INFO_ENTITY); + //sum1 为ccer总金额 + String ccerPrice= mapper.selectOneByQueryAs(queryWrapper3, String.class); + + /* + ====================================绿证数量和金额===================================================================== + */ + //查询绿证总量 + QueryWrapper queryWrapper4 = QueryWrapper.create() + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.GREEN_TOTAL).as("total")) + .from(QY_GREEN_CERTIFICATE_INFO_ENTITY); + //greenTotal 为绿证总量 + String greenTotal = mapper.selectOneByQueryAs(queryWrapper4, String.class); + //查询绿证总金额 + QueryWrapper queryWrapper5 = QueryWrapper.create() + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.PRICE).as("total")) + .from(QY_GREEN_CERTIFICATE_INFO_ENTITY); + // sum2 为绿证总金额 + String greenPrice = mapper.selectOneByQueryAs(queryWrapper5, String.class); + + /* + ====================================核销量================================================================= + */ + //查询碳配额核销量 + QueryWrapper queryWrapper6 = QueryWrapper.create() + .select(sum(QY_CARBON_QUOTA_INFO_ENTITY.VERIFICATION_VOLUME).as("total")) + .from(QY_CARBON_QUOTA_INFO_ENTITY); + //carbonVer 为碳配额核销量 + String carbonVer = mapper.selectOneByQueryAs(queryWrapper6, String.class); + //查询ccer核销量 + QueryWrapper queryWrapper7 = QueryWrapper.create() + .select(sum(QY_CCER_INFO_ENTITY.VERIFICATION_VOLUME).as("total")) + .from(QY_CCER_INFO_ENTITY); + //ccerVer 为ccer核销量 + String ccerVer = mapper.selectOneByQueryAs(queryWrapper7, String.class); + //查询绿证核销量 + QueryWrapper queryWrapper8 = QueryWrapper.create() + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.VERIFICATION_VOLUME).as("total")) + .from(QY_GREEN_CERTIFICATE_INFO_ENTITY); + //greenVer 为绿证核销量 + String greenVer = mapper.selectOneByQueryAs(queryWrapper8, String.class); + + /* + ======================================统计账户总余额======================================================== + */ + //统计碳配额总余额 + BigDecimal carbonAccount = new BigDecimal(carbonTotal).subtract(new BigDecimal(carbonVer)); + //统计ccer总余额 + BigDecimal ccerAccount = new BigDecimal(ccerTotal).subtract(new BigDecimal(ccerVer)); + //统计绿证总余额 + BigDecimal greenAccount = (new BigDecimal(greenTotal).subtract(new BigDecimal(greenVer))).multiply(new BigDecimal("0.5703")); + + //存储最终结果 + HashMap temMap = new HashMap<>(); + //计算碳配额单价(元/tCO2) + temMap.put("carbonUnitPrice",new BigDecimal(carbonTotal).divide(new BigDecimal(carbonPrice),2, RoundingMode.HALF_UP).toString()); + //计算ccer单价 + temMap.put("ccerUnitPrice",new BigDecimal(ccerTotal).divide(new BigDecimal(ccerPrice),2, RoundingMode.HALF_UP).toString()); + //计算绿证单价 + temMap.put("greenUnitPrice",new BigDecimal(greenTotal).multiply(new BigDecimal("0.5703")).divide(new BigDecimal(greenPrice),2, RoundingMode.HALF_UP).toString()); + + //碳配额数量(tCO2) + temMap.put("carbonNum", StringUtils.isBlank(carbonTotal) ? "0" : carbonTotal); + //ccer数量(tCO2) + temMap.put("ccerNum", StringUtils.isBlank(ccerTotal) ? "0" : ccerTotal); + //绿证数量(tCO2) + temMap.put("greenNum", StringUtils.isBlank(greenTotal) ? "0" : greenTotal); + //碳配额金额,总余额 + temMap.put("carbonPrice", StringUtils.isBlank(carbonPrice) ? "0" : carbonPrice); + temMap.put("carbonRemain",carbonAccount.toString()); + //ccer金额,总余额 + temMap.put("ccerPrice", StringUtils.isBlank(ccerPrice) ? "0" : ccerPrice); + temMap.put("ccerRemain",ccerAccount.toString()); + //绿证金额,总余额 + temMap.put("greenPrice", StringUtils.isBlank(greenPrice) ? "0" : greenPrice); + temMap.put("greenRemain",greenAccount.toString()); + + + return temMap; + } + + /** + * 统计买入,发放,核销三种状态共计碳资产量 + * @return 返回一个map + */ + @Override + public Map countCarbonAssetState() { + /* + ==============================统计买入量============================================================== + */ + //查询碳配额买入碳资产 + QueryWrapper queryWrapper = QueryWrapper.create() + .select(sum(QY_CARBON_QUOTA_INFO_ENTITY.CARBON_QUOTA).as("total")) + .from(QY_CARBON_QUOTA_INFO_ENTITY) + .eq(QyCarbonQuotaInfoEntity::getAssetState,"1"); + //numTotal 为碳配额中买入碳资产量 + String carbonTotal = mapper.selectOneByQueryAs(queryWrapper, String.class); + + //查询ccer买入碳资产 + QueryWrapper queryWrapper1 = QueryWrapper.create() + .select(sum(QY_CCER_INFO_ENTITY.RECORD_EMISSION).as("total")) + .from(QY_CCER_INFO_ENTITY) + .eq(QyCarbonQuotaInfoEntity::getAssetState,"1"); + //ccerTotal 为ccer中买入碳资产量 + String ccerTotal = mapper.selectOneByQueryAs(queryWrapper1, String.class); + + //查询绿证买入碳资产 + QueryWrapper queryWrapper2 = QueryWrapper.create() + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.GREEN_TOTAL).as("total")) + .from(QY_GREEN_CERTIFICATE_INFO_ENTITY) + .eq(QyCarbonQuotaInfoEntity::getAssetState,"1"); + //greenTotal 为绿证买入碳资产量 + String greenTotal = mapper.selectOneByQueryAs(queryWrapper2, String.class); + + /* + ==============================统计核销量===================================================================== + */ + //查询碳配额核销量 + QueryWrapper queryWrapper3 = QueryWrapper.create() + .select(sum(QY_CARBON_QUOTA_INFO_ENTITY.VERIFICATION_VOLUME).as("total")) + .from(QY_CARBON_QUOTA_INFO_ENTITY) + .eq(QyCarbonQuotaInfoEntity::getAssetState,"2"); + //carbonVolume 为碳配额核销量 + String carbonVolume = mapper.selectOneByQueryAs(queryWrapper3, String.class); + + //查询ccer核销量 + QueryWrapper queryWrapper4 = QueryWrapper.create() + .select(sum(QY_CCER_INFO_ENTITY.VERIFICATION_VOLUME).as("total")) + .from(QY_CCER_INFO_ENTITY) + .eq(QyCarbonQuotaInfoEntity::getAssetState,"2"); + //ccerVolume 为ccer核销量 + String ccerVolume = mapper.selectOneByQueryAs(queryWrapper4, String.class); + + //查询绿证核销量 + QueryWrapper queryWrapper5 = QueryWrapper.create() + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.VERIFICATION_VOLUME).as("total")) + .from(QY_GREEN_CERTIFICATE_INFO_ENTITY) + .eq(QyCarbonQuotaInfoEntity::getAssetState,"2"); + //greenVolume 为绿证核销量 + String greenVolume = mapper.selectOneByQueryAs(queryWrapper5, String.class); + + + /* + ==============================统计发放量===================================================================== + */ + //查询碳配额卖出量 + QueryWrapper queryWrapper6 = QueryWrapper.create() + .select(sum(QY_CARBON_QUOTA_INFO_ENTITY.CARBON_QUOTA).as("total")) + .from(QY_CARBON_QUOTA_INFO_ENTITY) + .eq(QyCarbonQuotaInfoEntity::getAssetState,"3"); + //carbonSell 为碳配额卖出 + String carbonSell = mapper.selectOneByQueryAs(queryWrapper6, String.class); + + //查询ccer卖出量 + QueryWrapper queryWrapper7 = QueryWrapper.create() + .select(sum(QY_CCER_INFO_ENTITY.RECORD_EMISSION).as("total")) + .from(QY_CCER_INFO_ENTITY) + .eq(QyCarbonQuotaInfoEntity::getAssetState,"3"); + //ccerSell 为ccer卖出 + String ccerSell = mapper.selectOneByQueryAs(queryWrapper7, String.class); + + //查询绿证卖出量 + QueryWrapper queryWrapper8 = QueryWrapper.create() + .select(sum(QY_GREEN_CERTIFICATE_INFO_ENTITY.GREEN_TOTAL).as("total")) + .from(QY_GREEN_CERTIFICATE_INFO_ENTITY) + .eq(QyCarbonQuotaInfoEntity::getAssetState,"3"); + //greenSell 为绿证卖出 + String greenSell = mapper.selectOneByQueryAs(queryWrapper8, String.class); + + //总买入碳资产 + BigDecimal buyTotal = new BigDecimal(carbonTotal).add(new BigDecimal(ccerTotal)).add(new BigDecimal(greenTotal)).multiply(new BigDecimal("0.5703")); + //总核销碳资产 + BigDecimal verTotal = new BigDecimal(carbonVolume).add(new BigDecimal(ccerVolume)).add(new BigDecimal(greenVolume)).multiply(new BigDecimal("0.5703")); + //总卖出碳资产 + BigDecimal sellTotal = new BigDecimal(carbonSell).add(new BigDecimal(ccerSell)).add(new BigDecimal(greenSell)).multiply(new BigDecimal("0.5703")); + //存入结果 + HashMap temMap = new HashMap<>(); + //返回结果 买入 核销 卖出 + temMap.put("buy", buyTotal.compareTo(BigDecimal.ZERO) == 0 ? "0" : buyTotal.toString()); + temMap.put("ver", verTotal.compareTo(BigDecimal.ZERO) == 0 ? "0" : verTotal.toString()); + temMap.put("sell", sellTotal.compareTo(BigDecimal.ZERO) == 0 ? "0" : sellTotal.toString()); + return temMap; + } } diff --git a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCarbonQuotaInfoServiceImpl.java b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCarbonQuotaInfoServiceImpl.java index 0a4cc06..5b90859 100644 --- a/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCarbonQuotaInfoServiceImpl.java +++ b/modules/qingyuan/src/main/java/com/thing/qingyuan/carbon/service/impl/QyCarbonQuotaInfoServiceImpl.java @@ -60,12 +60,15 @@ public class QyCarbonQuotaInfoServiceImpl extends BaseServiceImpl getCarbonQuotaStatisticsWithStatePercentage() { + //查询待发放碳配额 QueryWrapper queryWrapper1 = QueryWrapper.create() .select(sum(QY_CARBON_QUOTA_INFO_ENTITY.CARBON_QUOTA).as("total")) .from(QY_CARBON_QUOTA_INFO_ENTITY) .eq(QyCarbonQuotaInfoEntity::getState, "1"); //sum1 待发放碳配额总量 String sum1 = mapper.selectOneByQueryAs(queryWrapper1, String.class); + + //查询已发放碳配额 QueryWrapper queryWrapper2 = QueryWrapper.create() .select(sum(QY_CARBON_QUOTA_INFO_ENTITY.CARBON_QUOTA).as("total")) .from(QY_CARBON_QUOTA_INFO_ENTITY) @@ -79,12 +82,12 @@ public class QyCarbonQuotaInfoServiceImpl extends BaseServiceImpl tempMap = new HashMap<>(); + //待发放碳配额 + tempMap.put("pendingPercent", new BigDecimal(sum1).divide(new BigDecimal(sum), 2, RoundingMode.HALF_UP).toString()); //已发放碳配额 - tempMap.put("issuedPercent", new BigDecimal(sum1).divide(new BigDecimal(sum), 2, RoundingMode.HALF_UP).toString()); - //待申请碳配额 - tempMap.put("pendingPercent", new BigDecimal(sum2).divide(new BigDecimal(sum), 2, RoundingMode.HALF_UP).toString()); - tempMap.put("issued",sum1); - tempMap.put("pending",sum2); + tempMap.put("issuedPercent", new BigDecimal(sum2).divide(new BigDecimal(sum), 2, RoundingMode.HALF_UP).toString()); + tempMap.put("pending",sum1); + tempMap.put("issued",sum2); tempMap.put("total",sum); return tempMap; }