BuildingOfficeAreaStatPo.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package com.example.entity.house;
  2. import lombok.Data;
  3. import org.springframework.util.StringUtils;
  4. import java.math.BigDecimal;
  5. import java.math.RoundingMode;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. @Data
  9. public class BuildingOfficeAreaStatPo {
  10. private Integer yearMonth;
  11. private String areaNo;
  12. private String areaName;
  13. private String cityNo;
  14. private String cityName;
  15. private BigDecimal buildingAreaSelfUseSum;
  16. private Integer total;
  17. private BigDecimal areaAvg;
  18. private Integer areaOrder;
  19. private Integer cityOrder;
  20. private List<BuildingOfficeAreaStatPo> children;
  21. public BuildingOfficeAreaStatPo() {
  22. this.areaNo = "";
  23. this.areaName = "";
  24. this.cityNo = "";
  25. this.cityName = "";
  26. this.buildingAreaSelfUseSum = BigDecimal.ZERO;
  27. this.total = 0;
  28. this.areaAvg = BigDecimal.ZERO;
  29. this.children = new ArrayList<>();
  30. }
  31. public BuildingOfficeAreaStatPo(String areaNo, String areaName) {
  32. this.areaNo = areaNo;
  33. this.areaName = areaName;
  34. this.cityNo = areaNo;
  35. this.cityName = areaName;
  36. this.buildingAreaSelfUseSum = BigDecimal.ZERO;
  37. this.total = 0;
  38. this.areaAvg = BigDecimal.ZERO;
  39. this.children = new ArrayList<>();
  40. }
  41. public void update(BuildingOfficeAreaStatPo po) {
  42. this.buildingAreaSelfUseSum = this.buildingAreaSelfUseSum.add(po.getBuildingAreaSelfUseSum());
  43. this.total = this.total + po.getTotal();
  44. if (total != 0) {
  45. this.areaAvg = this.buildingAreaSelfUseSum.divide(new BigDecimal(total), 2, RoundingMode.HALF_DOWN);
  46. }
  47. if (StringUtils.hasText(po.getCityNo())) {
  48. this.children.add(po);
  49. }
  50. }
  51. }