Browse Source

fix: 修复不动产管理策略-维修异常监控-相同维修频次统计接口错误

weijianghai 1 năm trước cách đây
mục cha
commit
e77f9e630a

+ 50 - 50
src/main/java/com/example/controller/WzHouseMaintenaCostController.java

@@ -275,56 +275,56 @@ public class WzHouseMaintenaCostController {
     /**
      * 同维修内容频次统计
      */
-    @RequestMapping("/queryHighFrequency")
-    @IgnoreAuth
-    public R queryHighFrequency(@RequestBody PageMap pageMap) {
-        Query query = new Query(pageMap);
-        List<HighFrequencyVo> highPriceList = wzHouseMaintenaCostService.queryHighFrequency(query);
-
-        Query query1 = new Query(pageMap);
-        query1.put("sidx","num");
-        query1.put("order","desc");
-        query1.put("limit",20);
-        query1.put("page",1);
-        query1.put("offset",0);
-        List<HighFrequencyVo> allhighPriceList = wzHouseMaintenaCostService.queryHighFrequency(query1);
-
-        int i=1;
-        for (HighFrequencyVo highFrequencyVo : allhighPriceList) {
-            highFrequencyVo.setOrder(i);
-            i++;
-        }
-        for (HighFrequencyVo highFrequencyVo : highPriceList) {
-            for (HighFrequencyVo item : allhighPriceList) {
-                if(item.getBuildingAlias()==null&&highFrequencyVo.getBuildingAlias()!=null){
-                    continue;
-                }
-                if(item.getBuildingAlias()!=null&&highFrequencyVo.getBuildingAlias()==null){
-                    continue;
-                }
-                if(item.getCity()==null&&highFrequencyVo.getCity()!=null){
-                    continue;
-                }
-                if(item.getCity()!=null&&highFrequencyVo.getCity()==null){
-                    continue;
-                }
-                if(item.getRepairType()==null&&highFrequencyVo.getRepairType()!=null){
-                    continue;
-                }
-                if(item.getRepairType()!=null&&highFrequencyVo.getRepairType()==null){
-                    continue;
-                }
-               if(((item.getCity()==null&&highFrequencyVo.getCity()==null)||item.getCity().equals(highFrequencyVo.getCity()))
-                       &&((item.getBuildingAlias()==null&&highFrequencyVo.getBuildingAlias()==null)||item.getBuildingAlias().equals(highFrequencyVo.getBuildingAlias()))
-                       &&((item.getRepairType()==null&&highFrequencyVo.getRepairType()==null)||item.getRepairType().equals(highFrequencyVo.getRepairType()))){
-                   highFrequencyVo.setOrder(item.getOrder());
-                   break;
-               }
-            }
-        }
-        PageUtils pageUtil = new PageUtils(highPriceList, 20, 10, 10);
-        return R.ok().put("page", pageUtil);
-    }
+//    @RequestMapping("/queryHighFrequency")
+//    @IgnoreAuth
+//    public R queryHighFrequency(@RequestBody PageMap pageMap) {
+//        Query query = new Query(pageMap);
+//        List<HighFrequencyVo> highPriceList = wzHouseMaintenaCostService.queryHighFrequency(query);
+//
+//        Query query1 = new Query(pageMap);
+//        query1.put("sidx","num");
+//        query1.put("order","desc");
+//        query1.put("limit",20);
+//        query1.put("page",1);
+//        query1.put("offset",0);
+//        List<HighFrequencyVo> allhighPriceList = wzHouseMaintenaCostService.queryHighFrequency(query1);
+//
+//        int i=1;
+//        for (HighFrequencyVo highFrequencyVo : allhighPriceList) {
+//            highFrequencyVo.setOrder(i);
+//            i++;
+//        }
+//        for (HighFrequencyVo highFrequencyVo : highPriceList) {
+//            for (HighFrequencyVo item : allhighPriceList) {
+//                if(item.getBuildingAlias()==null&&highFrequencyVo.getBuildingAlias()!=null){
+//                    continue;
+//                }
+//                if(item.getBuildingAlias()!=null&&highFrequencyVo.getBuildingAlias()==null){
+//                    continue;
+//                }
+//                if(item.getCity()==null&&highFrequencyVo.getCity()!=null){
+//                    continue;
+//                }
+//                if(item.getCity()!=null&&highFrequencyVo.getCity()==null){
+//                    continue;
+//                }
+//                if(item.getRepairType()==null&&highFrequencyVo.getRepairType()!=null){
+//                    continue;
+//                }
+//                if(item.getRepairType()!=null&&highFrequencyVo.getRepairType()==null){
+//                    continue;
+//                }
+//               if(((item.getCity()==null&&highFrequencyVo.getCity()==null)||item.getCity().equals(highFrequencyVo.getCity()))
+//                       &&((item.getBuildingAlias()==null&&highFrequencyVo.getBuildingAlias()==null)||item.getBuildingAlias().equals(highFrequencyVo.getBuildingAlias()))
+//                       &&((item.getRepairType()==null&&highFrequencyVo.getRepairType()==null)||item.getRepairType().equals(highFrequencyVo.getRepairType()))){
+//                   highFrequencyVo.setOrder(item.getOrder());
+//                   break;
+//               }
+//            }
+//        }
+//        PageUtils pageUtil = new PageUtils(highPriceList, 20, 10, 10);
+//        return R.ok().put("page", pageUtil);
+//    }
 
 
     /**

+ 13 - 0
src/main/java/com/example/controller/house/HouseWzHouseMaintenaCostController.java

@@ -1,6 +1,7 @@
 package com.example.controller.house;
 
 import com.example.pojo.dto.ListBuildingHighRepairDto;
+import com.example.pojo.dto.ListBuildingSameRepairFrequencyDto;
 import com.example.service.house.HouseWzHouseMaintenaCostService;
 import com.example.utils.R;
 import io.swagger.v3.oas.annotations.Operation;
@@ -36,4 +37,16 @@ public class HouseWzHouseMaintenaCostController {
     public void queryHighPriceExport(@Valid ListBuildingHighRepairDto dto) {
         houseWzHouseMaintenaCostService.queryHighPriceExport(dto);
     }
+
+    @Operation(summary = "相同维修频次统计")
+    @PostMapping("/queryHighFrequency")
+    public R queryHighFrequency(@Valid @RequestBody ListBuildingSameRepairFrequencyDto dto) {
+        return houseWzHouseMaintenaCostService.queryHighFrequency(dto);
+    }
+
+    @Operation(summary = "相同维修频次统计导出")
+    @GetMapping("/queryHighFrequencyExport")
+    public void queryHighFrequencyExport(@Valid ListBuildingSameRepairFrequencyDto dto) {
+        houseWzHouseMaintenaCostService.queryHighFrequencyExport(dto);
+    }
 }

+ 3 - 0
src/main/java/com/example/dao/house/HouseBuildingDao.java

@@ -12,6 +12,9 @@ import java.util.List;
 
 @Mapper
 public interface HouseBuildingDao {
+    /**
+     * 查询不动产自有房产空置
+     */
     @Select("""
 <script>
 select

+ 37 - 1
src/main/java/com/example/dao/house/HouseRepairExceptionDao.java

@@ -2,7 +2,9 @@ package com.example.dao.house;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.example.entity.house.HouseBuildingHighRepairPo;
+import com.example.entity.house.HouseBuildingSameRepairFrequencyPo;
 import com.example.pojo.bo.ListBuildingHighRepairBo;
+import com.example.pojo.bo.ListBuildingSameRepairFrequencyBo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -11,6 +13,9 @@ import java.util.List;
 
 @Mapper
 public interface HouseRepairExceptionDao {
+    /**
+     * 查询不动产自有房产维修高总价统计
+     */
     @Select("""
 <script>
 select
@@ -34,5 +39,36 @@ from house.building_high_repair
 </where>
 </script>
 """)
-    List<HouseBuildingHighRepairPo> listBuildingHighRepair(Page<HouseBuildingHighRepairPo> page, @Param("dto") ListBuildingHighRepairBo dto);
+    List<HouseBuildingHighRepairPo> listBuildingHighRepair(Page<HouseBuildingHighRepairPo> page,
+                                                           @Param("dto") ListBuildingHighRepairBo dto);
+
+    /**
+     * 查询不动产自有房产相同维修频次统计
+     */
+    @Select("""
+<script>
+select
+*
+from house.building_same_repair_frequency
+<where>
+  <choose>
+    <when test="dto.yearMonth != null">
+      year_month = #{dto.yearMonth}
+    </when>
+    <otherwise>
+      year_month = (select max(year_month) from house.building_same_repair_frequency)
+    </otherwise>
+  </choose>
+  <if test="dto.areaNo != null and dto.areaNo != ''">
+    and area_no = #{dto.areaNo}
+  </if>
+  <if test="dto.cityNo != null and dto.cityNo != ''">
+    and city_no = #{dto.cityNo}
+  </if>
+</where>
+</script>
+""")
+    List<HouseBuildingSameRepairFrequencyPo> listBuildingSameRepairFrequency(
+            Page<HouseBuildingSameRepairFrequencyPo> page,
+            @Param("dto") ListBuildingSameRepairFrequencyBo dto);
 }

+ 57 - 0
src/main/java/com/example/entity/house/HouseBuildingSameRepairFrequencyPo.java

@@ -0,0 +1,57 @@
+package com.example.entity.house;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor
+@Data
+public class HouseBuildingSameRepairFrequencyPo {
+    /**
+     * 账期
+     */
+    private Integer yearMonth;
+    /**
+     * 建筑id
+     */
+    private String buildingId;
+    /**
+     * 二级组织机构编码
+     */
+    private String areaNo;
+    /**
+     * 二级组织机构名称
+     */
+    private String areaName;
+    /**
+     * 三级组织机构编码
+     */
+    private String cityNo;
+    /**
+     * 三级组织机构名称
+     */
+    private String cityName;
+    /**
+     * 建筑别名
+     */
+    private String buildingName;
+    /**
+     * 维修类型
+     */
+    private String repairType;
+    /**
+     * 维修类容分类
+     */
+    private String contentCategory;
+    /**
+     * 本年维修频率
+     */
+    private Integer tyTotal;
+    /**
+     * 本年维修频率排名
+     */
+    private Integer tyTotalRank;
+    /**
+     * 历史累计维修频率
+     */
+    private Integer historyTotal;
+}

+ 51 - 0
src/main/java/com/example/enums/ListBuildingSameRepairFrequencyOrderEnum.java

@@ -0,0 +1,51 @@
+package com.example.enums;
+
+public enum ListBuildingSameRepairFrequencyOrderEnum {
+    /**
+     * 账期
+     */
+    time("year_month"),
+    /**
+     * 二级单位
+     */
+    city("area_name"),
+    /**
+     * 建筑别名
+     */
+    buildingAlias("building_name"),
+    /**
+     * 维修类型
+     */
+    repairType("repair_type"),
+    /**
+     * 维修内容
+     */
+    contentCategory("content_category"),
+    /**
+     * 本年维修频率
+     */
+    num("ty_total"),
+    /**
+     * 排名
+     */
+    tyTotalRank("ty_total_rank"),
+    /**
+     * 建筑id
+     */
+    buildingId("building_id"),
+    /**
+     * 历史累计维修频率
+     */
+    historyTotal("history_total"),
+    ;
+
+    private final String columnName;
+
+    ListBuildingSameRepairFrequencyOrderEnum(String columnName) {
+        this.columnName = columnName;
+    }
+
+    public String getColumnName() {
+        return columnName;
+    }
+}

+ 9 - 4
src/main/java/com/example/pojo/bo/ListBuildingHighRepairBo.java

@@ -1,14 +1,19 @@
 package com.example.pojo.bo;
 
-import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 @Data
 public class ListBuildingHighRepairBo {
-    @Schema(description = "账期")
+    /**
+     * 账期
+     */
     private Integer yearMonth;
-    @Schema(description = "二级组织机构编码")
+    /**
+     * 二级组织机构编码
+     */
     private String areaNo;
-    @Schema(description = "三级组织机构编码")
+    /**
+     * 三级组织机构编码
+     */
     private String cityNo;
 }

+ 19 - 0
src/main/java/com/example/pojo/bo/ListBuildingSameRepairFrequencyBo.java

@@ -0,0 +1,19 @@
+package com.example.pojo.bo;
+
+import lombok.Data;
+
+@Data
+public class ListBuildingSameRepairFrequencyBo {
+    /**
+     * 账期
+     */
+    private Integer yearMonth;
+    /**
+     * 二级组织机构编码
+     */
+    private String areaNo;
+    /**
+     * 三级组织机构编码
+     */
+    private String cityNo;
+}

+ 34 - 0
src/main/java/com/example/pojo/dto/ListBuildingSameRepairFrequencyDto.java

@@ -0,0 +1,34 @@
+package com.example.pojo.dto;
+
+import com.example.enums.ListBuildingSameRepairFrequencyOrderEnum;
+import com.example.enums.OrderEnum;
+import com.example.utils.Page;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.Valid;
+
+@NoArgsConstructor
+@Data
+public class ListBuildingSameRepairFrequencyDto {
+    @Valid
+    private Page page;
+    @Valid
+    private MapDTO map;
+
+    @NoArgsConstructor
+    @Data
+    public static class MapDTO {
+        @Schema(description = "账期")
+        private Integer statisticalMonth;
+        @Schema(description = "二级组织机构id")
+        private String city;
+        @Schema(description = "三级级组织机构id")
+        private String county;
+        @Schema(description = "排序字段")
+        private ListBuildingSameRepairFrequencyOrderEnum sidx;
+        @Schema(description = "排序方式")
+        private OrderEnum order;
+    }
+}

+ 39 - 0
src/main/java/com/example/pojo/vo/ListBuildingSameRepairFrequencyVo.java

@@ -0,0 +1,39 @@
+package com.example.pojo.vo;
+
+import com.example.entity.house.HouseBuildingSameRepairFrequencyPo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+public class ListBuildingSameRepairFrequencyVo {
+    @Schema(description = "账期")
+    private Integer time;
+    @Schema(description = "维修类型")
+    private String repairType;
+    @Schema(description = "资产所属单位二级")
+    private String city;
+    @Schema(description = "建筑别名")
+    private String buildingAlias;
+    @Schema(description = "本年维修频率")
+    private Integer num;
+    @Schema(description = "排名")
+    private Integer order;
+    @Schema(description = "建筑id")
+    private String buildingId;
+    @Schema(description = "维修内容")
+    private String contentCategory;
+    @Schema(description = "历史累计维修频率")
+    private Integer historyTotal;
+
+    public ListBuildingSameRepairFrequencyVo(HouseBuildingSameRepairFrequencyPo po) {
+        this.buildingId = po.getBuildingId();
+        this.time = po.getYearMonth();
+        this.repairType = po.getRepairType();
+        this.contentCategory = po.getContentCategory();
+        this.city = po.getAreaName();
+        this.buildingAlias = po.getBuildingName();
+        this.num = po.getTyTotal();
+        this.order = po.getTyTotalRank();
+        this.historyTotal = po.getHistoryTotal();
+    }
+}

+ 151 - 2
src/main/java/com/example/service/house/HouseWzHouseMaintenaCostService.java

@@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.example.dao.house.HouseRepairExceptionDao;
 import com.example.entity.house.HouseBuildingHighRepairPo;
+import com.example.entity.house.HouseBuildingSameRepairFrequencyPo;
 import com.example.enums.OrderEnum;
-import com.example.pojo.dto.ListBuildingHighRepairDto;
 import com.example.pojo.bo.ListBuildingHighRepairBo;
+import com.example.pojo.bo.ListBuildingSameRepairFrequencyBo;
+import com.example.pojo.dto.ListBuildingHighRepairDto;
+import com.example.pojo.dto.ListBuildingSameRepairFrequencyDto;
 import com.example.pojo.vo.ListBuildingHighRepairVo;
+import com.example.pojo.vo.ListBuildingSameRepairFrequencyVo;
 import com.example.utils.PageUtils;
 import com.example.utils.R;
 import lombok.extern.slf4j.Slf4j;
@@ -76,6 +80,9 @@ public class HouseWzHouseMaintenaCostService {
         }
     }
 
+    /**
+     * 查询不动产自有房产高总价统计
+     */
     private List<HouseBuildingHighRepairPo> getHouseBuildingHighRepairPos(ListBuildingHighRepairDto dto,
                                                                           Page<HouseBuildingHighRepairPo> page) {
         ListBuildingHighRepairBo bo = new ListBuildingHighRepairBo();
@@ -99,7 +106,7 @@ public class HouseWzHouseMaintenaCostService {
     }
 
     /**
-     * 写高总价统计文件
+     * 写不动产自有房产高总价统计文件
      */
     private void writeQueryHighPrice(ListBuildingHighRepairDto dto, SXSSFWorkbook wb) {
         Page<HouseBuildingHighRepairPo> page = new Page<>(1, Long.MAX_VALUE);
@@ -210,4 +217,146 @@ public class HouseWzHouseMaintenaCostService {
             n.setCellStyle(numberCellStyle);
         }
     }
+
+    public R queryHighFrequency(ListBuildingSameRepairFrequencyDto dto) {
+        Page<HouseBuildingSameRepairFrequencyPo> page = new Page<>(dto.getPage().getPageNum(), dto.getPage().getPageSize());
+        List<HouseBuildingSameRepairFrequencyPo> list = getHouseBuildingSameRepairFrequencyPos(dto, page);
+        List<ListBuildingSameRepairFrequencyVo> vos = new ArrayList<>();
+        for (HouseBuildingSameRepairFrequencyPo po : list) {
+            vos.add(new ListBuildingSameRepairFrequencyVo(po));
+        }
+        PageUtils pageUtil = new PageUtils(vos, page);
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查询不动产自有房产相同维修频次统计
+     */
+    private List<HouseBuildingSameRepairFrequencyPo> getHouseBuildingSameRepairFrequencyPos(
+            ListBuildingSameRepairFrequencyDto dto,
+            Page<HouseBuildingSameRepairFrequencyPo> page) {
+        ListBuildingSameRepairFrequencyBo bo = new ListBuildingSameRepairFrequencyBo();
+        if (dto.getMap() != null && dto.getMap().getStatisticalMonth() != null) {
+            bo.setYearMonth(dto.getMap().getStatisticalMonth());
+        }
+        if (dto.getMap() != null && StringUtils.hasText(dto.getMap().getCity()) && !"全省".equals(dto.getMap().getCity())) {
+            bo.setAreaNo(dto.getMap().getCity());
+        }
+        if (dto.getMap() != null && StringUtils.hasText(dto.getMap().getCounty())) {
+            bo.setCityNo(dto.getMap().getCounty());
+        }
+        if (dto.getMap() != null && dto.getMap().getOrder() != null && dto.getMap().getSidx() != null) {
+            if (OrderEnum.asc.equals(dto.getMap().getOrder())) {
+                page.addOrder(OrderItem.asc(dto.getMap().getSidx().getColumnName()));
+            } else {
+                page.addOrder(OrderItem.desc(dto.getMap().getSidx().getColumnName()));
+            }
+        }
+        return houseRepairExceptionDao.listBuildingSameRepairFrequency(page, bo);
+    }
+
+    public void queryHighFrequencyExport(ListBuildingSameRepairFrequencyDto dto) {
+        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder
+                .getRequestAttributes();
+        if (servletRequestAttributes == null) {
+            return;
+        }
+        HttpServletResponse response = servletRequestAttributes.getResponse();
+        if (response == null) {
+            return;
+        }
+        String filename = "维修异常监控_相同维修频次统计"
+                + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")) + ".xlsx";
+        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncodeUtil.encode(filename));
+        response.setContentType("application/octet-stream");
+        try (SXSSFWorkbook wb = new SXSSFWorkbook()) {
+            writeQueryHighFrequency(dto, wb);
+            wb.write(response.getOutputStream());
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+    }
+
+    /**
+     * 写不动产自有房产相同维修频次统计文件
+     */
+    private void writeQueryHighFrequency(ListBuildingSameRepairFrequencyDto dto, SXSSFWorkbook wb) {
+        Page<HouseBuildingSameRepairFrequencyPo> page = new Page<>(1, Long.MAX_VALUE);
+        List<HouseBuildingSameRepairFrequencyPo> list = getHouseBuildingSameRepairFrequencyPos(dto, page);
+        DataFormat dataFormat = wb.createDataFormat();
+        // 数字样式
+        CellStyle numberCellStyle = wb.createCellStyle();
+        numberCellStyle.setDataFormat(dataFormat.getFormat("#,##0"));
+        numberCellStyle.setAlignment(HorizontalAlignment.RIGHT);
+        // 默认样式
+        CellStyle baseCellStyle = wb.createCellStyle();
+        baseCellStyle.setAlignment(HorizontalAlignment.CENTER);
+        baseCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        SXSSFSheet sheet = wb.createSheet();
+        AtomicInteger columnIndex = new AtomicInteger(0);
+        // 表头
+        Row headerRow = sheet.createRow(columnIndex.getAndIncrement());
+        List<String> headers = Stream.of("建筑id", "单位", "维修建筑", "维修类别", "维修内容", "账期时间",
+                "本年累计发生频率", "排名", "202301至今累计发生频率").toList();
+        int headerLength = headers.size();
+        for (int i = 0; i < headerLength; i++) {
+            Cell cell = headerRow.createCell(i);
+            cell.setCellValue(headers.get(i));
+            cell.setCellStyle(baseCellStyle);
+            // 根据内容长度设置列宽
+            int columnWidth = headers.get(i).length() * 256 * 2 + 256;
+            sheet.setColumnWidth(i, columnWidth);
+        }
+        // 数据
+        for (HouseBuildingSameRepairFrequencyPo houseBuildingSameRepairFrequencyPo : list) {
+            Row row = sheet.createRow(columnIndex.getAndIncrement());
+            // 建筑id
+            Cell a = row.createCell(CellReference.convertColStringToIndex("a"));
+            if (houseBuildingSameRepairFrequencyPo.getBuildingId() != null) {
+                a.setCellValue(houseBuildingSameRepairFrequencyPo.getBuildingId());
+            }
+            // 二级单位
+            Cell b = row.createCell(CellReference.convertColStringToIndex("b"));
+            if (houseBuildingSameRepairFrequencyPo.getAreaName() != null) {
+                b.setCellValue(houseBuildingSameRepairFrequencyPo.getAreaName());
+            }
+            // 维修建筑
+            Cell c = row.createCell(CellReference.convertColStringToIndex("c"));
+            if (houseBuildingSameRepairFrequencyPo.getBuildingName() != null) {
+                c.setCellValue(houseBuildingSameRepairFrequencyPo.getBuildingName());
+            }
+            // 维修类别
+            Cell d = row.createCell(CellReference.convertColStringToIndex("d"));
+            if (houseBuildingSameRepairFrequencyPo.getRepairType() != null) {
+                d.setCellValue(houseBuildingSameRepairFrequencyPo.getRepairType());
+            }
+            // 维修内容
+            Cell e = row.createCell(CellReference.convertColStringToIndex("e"));
+            if (houseBuildingSameRepairFrequencyPo.getContentCategory() != null) {
+                e.setCellValue(houseBuildingSameRepairFrequencyPo.getContentCategory());
+            }
+            // 账期时间
+            Cell f = row.createCell(CellReference.convertColStringToIndex("f"));
+            if (houseBuildingSameRepairFrequencyPo.getYearMonth() != null) {
+                f.setCellValue(houseBuildingSameRepairFrequencyPo.getYearMonth());
+            }
+            // 本年累计发生频率
+            Cell g = row.createCell(CellReference.convertColStringToIndex("g"));
+            if (houseBuildingSameRepairFrequencyPo.getTyTotal() != null) {
+                g.setCellValue(houseBuildingSameRepairFrequencyPo.getTyTotal());
+            }
+            g.setCellStyle(numberCellStyle);
+            // 排名
+            Cell h = row.createCell(CellReference.convertColStringToIndex("h"));
+            if (houseBuildingSameRepairFrequencyPo.getTyTotalRank() != null) {
+                h.setCellValue(houseBuildingSameRepairFrequencyPo.getTyTotalRank());
+            }
+            // 202301至今累计发生频率
+            Cell i = row.createCell(CellReference.convertColStringToIndex("i"));
+            if (houseBuildingSameRepairFrequencyPo.getHistoryTotal() != null) {
+                i.setCellValue(houseBuildingSameRepairFrequencyPo.getHistoryTotal());
+            }
+            i.setCellStyle(numberCellStyle);
+        }
+    }
 }