package com.example.entity.house; import lombok.Data; import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; @Data public class BuildingOfficeAreaStatPo { private Integer yearMonth; private String areaNo; private String areaName; private String cityNo; private String cityName; private BigDecimal buildingAreaSelfUseSum; private Integer total; private BigDecimal areaAvg; private Integer areaOrder; private Integer cityOrder; private List children; public BuildingOfficeAreaStatPo() { this.areaNo = ""; this.areaName = ""; this.cityNo = ""; this.cityName = ""; this.buildingAreaSelfUseSum = BigDecimal.ZERO; this.total = 0; this.areaAvg = BigDecimal.ZERO; this.children = new ArrayList<>(); } public BuildingOfficeAreaStatPo(String areaNo, String areaName) { this.areaNo = areaNo; this.areaName = areaName; this.cityNo = areaNo; this.cityName = areaName; this.buildingAreaSelfUseSum = BigDecimal.ZERO; this.total = 0; this.areaAvg = BigDecimal.ZERO; this.children = new ArrayList<>(); } public void update(BuildingOfficeAreaStatPo po) { this.buildingAreaSelfUseSum = this.buildingAreaSelfUseSum.add(po.getBuildingAreaSelfUseSum()); this.total = this.total + po.getTotal(); if (total != 0) { this.areaAvg = this.buildingAreaSelfUseSum.divide(new BigDecimal(total), 2, RoundingMode.HALF_DOWN); } if (StringUtils.hasText(po.getCityNo())) { this.children.add(po); } } }