123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package com.nokia.financeapi.pojo.vo;
- import io.swagger.v3.oas.annotations.Hidden;
- import io.swagger.v3.oas.annotations.media.Schema;
- import lombok.Data;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.util.ArrayList;
- import java.util.List;
- @Data
- public class GetBuildingAreaDiffVo {
- @Hidden
- private String areaNo;
- @Hidden
- private String areaName;
- @Hidden
- private String cityNo;
- @Hidden
- private String cityName;
- @Schema(description = "单位名称", example = "全省")
- private String unitName;
- @Schema(description = "2023年建筑面积", example = "3345429.01")
- private BigDecimal buildingAreaSumLast;
- @Schema(description = "2023年建筑面积自用", example = "3345429.01")
- private BigDecimal buildingAreaSelfUseSumLast;
- @Schema(description = "2023年建筑面积闲置", example = "3345429.01")
- private BigDecimal buildingAreaIdleSumLast;
- @Schema(description = "当月建筑面积", example = "3345429.01")
- private BigDecimal buildingAreaSumNow;
- @Schema(description = "当月建筑面积自用", example = "3345429.01")
- private BigDecimal buildingAreaSelfUseSumNow;
- @Schema(description = "当月建筑面积闲置", example = "3345429.01")
- private BigDecimal buildingAreaIdleSumNow;
- @Schema(description = "建筑面积变化%", example = "12.34")
- private BigDecimal buildingAreaDiff;
- @Schema(description = "自用面积变化%", example = "12.34")
- private BigDecimal buildingAreaSelfUseDiff;
- @Schema(description = "闲置面积变化%", example = "-12.34")
- private BigDecimal buildingAreaIdleDiff;
- @Schema(description = "子列表")
- private List<GetBuildingAreaDiffVo> children;
- public GetBuildingAreaDiffVo() {
- this.areaNo = "";
- this.areaName = "";
- this.cityNo = "";
- this.cityName = "";
- this.unitName = "";
- this.buildingAreaSumLast = BigDecimal.ZERO;
- this.buildingAreaSelfUseSumLast = BigDecimal.ZERO;
- this.buildingAreaIdleSumLast = BigDecimal.ZERO;
- this.buildingAreaSumNow = BigDecimal.ZERO;
- this.buildingAreaSelfUseSumNow = BigDecimal.ZERO;
- this.buildingAreaIdleSumNow = BigDecimal.ZERO;
- this.buildingAreaDiff = BigDecimal.ZERO;
- this.buildingAreaSelfUseDiff = BigDecimal.ZERO;
- this.buildingAreaIdleDiff = BigDecimal.ZERO;
- this.children = new ArrayList<>();
- }
- public GetBuildingAreaDiffVo(String areaNo, String areaName) {
- this.areaNo = areaNo;
- this.areaName = areaName;
- this.cityNo = areaNo;
- this.cityName = areaName;
- this.unitName = areaName;
- this.buildingAreaSumLast = BigDecimal.ZERO;
- this.buildingAreaSelfUseSumLast = BigDecimal.ZERO;
- this.buildingAreaIdleSumLast = BigDecimal.ZERO;
- this.buildingAreaSumNow = BigDecimal.ZERO;
- this.buildingAreaSelfUseSumNow = BigDecimal.ZERO;
- this.buildingAreaIdleSumNow = BigDecimal.ZERO;
- this.buildingAreaDiff = BigDecimal.ZERO;
- this.buildingAreaSelfUseDiff = BigDecimal.ZERO;
- this.buildingAreaIdleDiff = BigDecimal.ZERO;
- this.children = new ArrayList<>();
- }
- public void update(GetBuildingAreaDiffVo po) {
- this.buildingAreaSumLast = this.buildingAreaSumLast.add(po.buildingAreaSumLast);
- this.buildingAreaSelfUseSumLast = this.buildingAreaSelfUseSumLast.add(po.buildingAreaSelfUseSumLast);
- this.buildingAreaIdleSumLast = this.buildingAreaIdleSumLast.add(po.buildingAreaIdleSumLast);
- this.buildingAreaSumNow = this.buildingAreaSumNow.add(po.buildingAreaSumNow);
- this.buildingAreaSelfUseSumNow = this.buildingAreaSelfUseSumNow.add(po.buildingAreaSelfUseSumNow);
- this.buildingAreaIdleSumNow = this.buildingAreaIdleSumNow.add(po.buildingAreaIdleSumNow);
- if (this.buildingAreaSumLast.compareTo(BigDecimal.ZERO) != 0) {
- this.buildingAreaDiff = this.buildingAreaSumNow.subtract(this.buildingAreaSumLast)
- .divide(this.buildingAreaSumLast, 4, RoundingMode.HALF_DOWN)
- .multiply(new BigDecimal("100"));
- } else {
- this.buildingAreaDiff = BigDecimal.ZERO;
- }
- if (this.buildingAreaSelfUseSumLast.compareTo(BigDecimal.ZERO) != 0) {
- this.buildingAreaSelfUseDiff = this.buildingAreaSelfUseSumNow.subtract(this.buildingAreaSelfUseSumLast)
- .divide(this.buildingAreaSelfUseSumLast, 4, RoundingMode.HALF_DOWN)
- .multiply(new BigDecimal("100"));
- } else {
- this.buildingAreaSelfUseDiff = BigDecimal.ZERO;
- }
- if (buildingAreaIdleSumLast.compareTo(BigDecimal.ZERO) != 0) {
- this.buildingAreaIdleDiff = this.buildingAreaIdleSumNow.subtract(this.buildingAreaIdleSumLast)
- .divide(this.buildingAreaIdleSumLast, 4, RoundingMode.HALF_DOWN)
- .multiply(new BigDecimal("100"));
- } else {
- this.buildingAreaIdleDiff = BigDecimal.ZERO;
- }
- this.children.add(po);
- }
- }
|