xuzhancheng před 6 dny
rodič
revize
6855eae1b3

+ 2 - 3
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equipboiler/EquipBoilerController.java

@@ -100,10 +100,9 @@ public class EquipBoilerController {
     public void exportEquipBoilerExcel(@Valid EquipBoilerPageReqVO pageReqVO,
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<EquipBoilerPageRespVO> list = equipBoilerService.getEquipBoilerPage(pageReqVO).getList();
+        List<EquipBoilerExportVO> list = equipBoilerService.exportEquipBoilerExcel(pageReqVO).getList();
         // 导出 Excel
-        ExcelUtils.write(response, "锅炉设备.xls", "数据", EquipBoilerRespVO.class,
-                        BeanUtils.toBean(list, EquipBoilerRespVO.class));
+        ExcelUtils.write(response, "锅炉设备.xls", "数据", EquipBoilerExportVO.class, list);
     }
 
     @PostMapping("/getNameByIds")

+ 626 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equipboiler/vo/EquipBoilerExportVO.java

@@ -0,0 +1,626 @@
+package cn.start.tz.module.pressure2.controller.admin.equipboiler.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import cn.start.tz.framework.excel.core.annotations.DictFormat;
+import cn.start.tz.framework.excel.core.convert.DictConvert;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 锅炉设备导出 VO")
+@Data
+@ExcelIgnoreUnannotated
+public class EquipBoilerExportVO {
+
+    @Schema(description = "主键")
+    @ExcelIgnore
+    private String id;
+
+    @Schema(description = "行政区域类型(all/gz)全国/广州")
+    @ExcelProperty("行政区域类型")
+    private String areaType;
+
+    @Schema(description = "设备所在行政区域")
+    @ExcelIgnore
+    private Integer equipDistrict;
+
+    @Schema(description = "设备所在行政区域名称")
+    @ExcelProperty("设备所在行政区名称")
+    private String equipDistrictName;
+
+    @Schema(description = "设备所在街道")
+    @ExcelIgnore
+    private Integer equipStreet;
+
+    @Schema(description = "设备所在街道名称")
+    @ExcelProperty("设备所在街道名称")
+    private String equipStreetName;
+
+    // ==================== 单位信息 ====================
+
+    @Schema(description = "单位代码")
+    @ExcelProperty("单位代码")
+    private String unitCode;
+
+    @Schema(description = "使用单位名称")
+    @ExcelProperty("使用单位名称")
+    private String unitName;
+
+    @Schema(description = "单位id")
+    @ExcelIgnore
+    private String unitId;
+
+    @Schema(description = "邮政编码")
+    @ExcelProperty("邮政编码")
+    private String zipCode;
+
+    @Schema(description = "使用单位地址")
+    @ExcelProperty("单位地址")
+    private String unitAddress;
+
+    @Schema(description = "约检联系人")
+    @ExcelProperty("约检联系人")
+    private String contact;
+
+    @Schema(description = "约检联系人电话")
+    @ExcelProperty("约检联系人电话")
+    private String contactPhone;
+
+    @Schema(description = "产品监检单位")
+    @ExcelProperty("产品监检单位")
+    private String productCheckUnit;
+
+    @Schema(description = "监检单位代码")
+    @ExcelProperty("监检单位代码")
+    private String checkUnitCode;
+
+    @Schema(description = "安装单位")
+    @ExcelProperty("安装单位")
+    private String installUnit;
+
+    @Schema(description = "安装单位代码")
+    @ExcelProperty("安装单位代码")
+    private String installUnitCode;
+
+    @Schema(description = "制造单位")
+    @ExcelProperty("制造单位")
+    private String makeUnit;
+
+    @Schema(description = "制造单位代码")
+    @ExcelProperty("制造单位代码")
+    private String makeUnitCode;
+
+    @Schema(description = "制造日期")
+    @ExcelProperty("制造日期")
+    private LocalDateTime madeTime;
+
+    @Schema(description = "制造国")
+    @ExcelProperty("制造国")
+    private String makeCountry;
+
+    @Schema(description = "联系人邮箱")
+    @ExcelProperty("联系人邮箱")
+    private String contactEmail;
+
+    @Schema(description = "电子报告接收人")
+    @ExcelProperty("电子报告接收人")
+    private String recipient;
+
+    @Schema(description = "接收人电话")
+    @ExcelProperty("接收人电话")
+    private String recipientPhone;
+
+    @Schema(description = "接收人邮箱")
+    @ExcelProperty("接收人邮箱")
+    private String recipientEmail;
+
+    @Schema(description = "缴费联系人")
+    @ExcelProperty("缴费联系人")
+    private String payment;
+
+    @Schema(description = "缴费联系人电话")
+    @ExcelProperty("缴费联系人电话")
+    private String paymentPhone;
+
+    @Schema(description = "缴费联系人邮箱")
+    @ExcelProperty("缴费联系人邮箱")
+    private String paymentEmail;
+
+    @Schema(description = "使用单位安全管理部门")
+    @ExcelProperty("使用单位安全管理部门")
+    private String safebm;
+
+    @Schema(description = "使用单位安全管理员")
+    @ExcelProperty("使用单位安全管理员")
+    private String safery;
+
+    @Schema(description = "安全人员电话")
+    @ExcelProperty("安全人员电话")
+    private String saferydh;
+
+    // ==================== 设备信息 ====================
+
+    @Schema(description = "设备分类")
+    @ExcelProperty(value = "设备分类", converter = DictConvert.class)
+    @DictFormat("system_equip_boiler_type")
+    private String type;
+
+    @Schema(description = "关联部门ID")
+    @ExcelProperty("关联部门ID")
+    private String relatedDepartment;
+
+    @Schema(description = "关联部门名称")
+    @ExcelProperty("关联部门名称")
+    private String relatedDepartmentName;
+
+    @Schema(description = "设备归属代码")
+    @ExcelProperty("设备归属代码")
+    private String equipBelongCode;
+
+    @Schema(description = "使用证号")
+    @ExcelProperty("使用证号")
+    private String useRegisterNo;
+
+    @Schema(description = "设备注册代码")
+    @ExcelProperty("设备注册代码")
+    private String equipCode;
+
+    @Schema(description = "设备名称")
+    @ExcelProperty("设备名称")
+    private String equipName;
+
+    @Schema(description = "出厂编号")
+    @ExcelProperty("出厂编号")
+    private String factoryCode;
+
+    @Schema(description = "出渣方式")
+    @ExcelProperty("出渣方式")
+    private String outSlagMethod;
+
+    @Schema(description = "除氧方式")
+    @ExcelProperty("除氧方式")
+    private String exceptO2Method;
+
+    @Schema(description = "安装竣工日期")
+    @ExcelProperty("安装竣工日期")
+    private LocalDateTime completeInstallTime;
+
+    @Schema(description = "单位内部编号")
+    @ExcelProperty("单位内部编号")
+    private String unitInternalCode;
+
+    @Schema(description = "额定出口温度")
+    @ExcelProperty("额定出口温度")
+    private String ratedExportTemperature;
+
+    @Schema(description = "额定压力")
+    @ExcelProperty("额定压力")
+    private String ratedPressure;
+
+    @Schema(description = "额定出力单位")
+    @ExcelProperty("额定出力单位")
+    private String ratedOutpowerUnit;
+
+    @Schema(description = "分类备用")
+    @ExcelProperty("分类备用")
+    private String spare;
+
+    @Schema(description = "给水温度")
+    @ExcelProperty("给水温度")
+    private String waterTemperature;
+
+    @Schema(description = "给水压力")
+    @ExcelProperty("给水压力")
+    private String waterPressure;
+
+    @Schema(description = "锅炉结构形式")
+    @ExcelProperty("锅炉结构形式")
+    private String structuralForm;
+
+    @Schema(description = "锅炉房类别")
+    @ExcelProperty("锅炉房类别")
+    private String boilerroomType;
+
+    @Schema(description = "锅炉所在地点")
+    @ExcelProperty("锅炉所在地点")
+    private String boilerAddress;
+
+    @Schema(description = "锅炉类别")
+    @ExcelProperty("锅炉类别")
+    private String boilerType;
+
+    @Schema(description = "锅炉用途")
+    @ExcelProperty("锅炉用途")
+    private String boilerUsage;
+
+    @Schema(description = "锅炉型号")
+    @ExcelProperty("锅炉型号")
+    private String boilerModel;
+
+    @Schema(description = "过热器出口压力")
+    @ExcelProperty("过热器出口压力")
+    private String superheaterOutletPressure;
+
+    @Schema(description = "过热器出口温度")
+    @ExcelProperty("过热器出口温度")
+    private String superheaterOutletTemperature;
+
+    @Schema(description = "介质出口温度")
+    @ExcelProperty("介质出口温度")
+    private String mediumOutletPressure;
+
+    @Schema(description = "设计工作压力")
+    @ExcelProperty("设计工作压力")
+    private String designWorkPressure;
+
+    @Schema(description = "使用出口温度")
+    @ExcelProperty("使用出口温度")
+    private String useOutletTemperature;
+
+    @Schema(description = "加热方式")
+    @ExcelProperty("加热方式")
+    private String heatingMethod;
+
+    @Schema(description = "累计运行小时")
+    @ExcelProperty("累计运行小时")
+    private String countRunHours;
+
+    @Schema(description = "燃烧种类")
+    @ExcelProperty("燃烧种类")
+    private String buringType;
+
+    @Schema(description = "燃烧方式")
+    @ExcelProperty("燃烧方式")
+    private String buringMethod;
+
+    @Schema(description = "安装许可证")
+    @ExcelProperty("安装许可证")
+    private String safetyLicense;
+
+    @Schema(description = "产品编号")
+    @ExcelProperty("产品编号")
+    private String productCode;
+
+    @Schema(description = "使用状态")
+    @ExcelProperty(value = "使用状态", converter = DictConvert.class)
+    @DictFormat("system_equip_boiler_status")
+    private String useStatus;
+
+    @Schema(description = "运行状态")
+    @ExcelProperty(value = "运行状态", converter = DictConvert.class)
+    @DictFormat("system_equip_boiler_status")
+    private String status;
+
+    @Schema(description = "是否大型")
+    @ExcelProperty("是否大型")
+    private String isBig;
+
+    @Schema(description = "是否领证")
+    @ExcelProperty("是否领证")
+    private String isRecevieCertificate;
+
+    @Schema(description = "是否有水处理设备")
+    @ExcelProperty("是否有水处理设备")
+    private String hasWaterHandingEquip;
+
+    @Schema(description = "水处理方式")
+    @ExcelProperty("水处理方式")
+    private String waterHandingMethod;
+
+    @Schema(description = "消烟除尘方式")
+    @ExcelProperty("消烟除尘方式")
+    private String eliminateSDMethod;
+
+    @Schema(description = "循环方式")
+    @ExcelProperty("循环方式")
+    private String cirulationMethod;
+
+    @Schema(description = "额定出力")
+    @ExcelProperty("额定出力")
+    private String ratedOutput;
+
+    @Schema(description = "液压试验压力")
+    @ExcelProperty("液压试验压力")
+    private String hydraulicTestPressure;
+
+    @Schema(description = "压力类别")
+    @ExcelProperty("压力类别")
+    private String pressureType;
+
+    @Schema(description = "再热器出口压力")
+    @ExcelProperty("再热器出口压力")
+    private String reheaterOutletPressure;
+
+    @Schema(description = "再热器出口温度")
+    @ExcelProperty("再热器出口温度")
+    private String reheaterOutletTemperature;
+
+    @Schema(description = "再热器入口压力")
+    @ExcelProperty("再热器入口压力")
+    private String reheaterInletPressure;
+
+    @Schema(description = "再热器入口温度")
+    @ExcelProperty("再热器入口温度")
+    private String reheaterInletTemperature;
+
+    @Schema(description = "再热蒸汽流量")
+    @ExcelProperty("再热蒸汽流量")
+    private String steamFlow;
+
+    @Schema(description = "最大连续蒸发量")
+    @ExcelProperty("最大连续蒸发量")
+    private String maxContinueEvapor;
+
+    @Schema(description = "设备类型修正确认标志")
+    @ExcelProperty("设备类型修正确认标志")
+    private String equipTypeCorrectionMarks;
+
+    @Schema(description = "水质取样日期")
+    @ExcelProperty("水质取样日期")
+    private LocalDateTime waterQualitySamplingDate;
+
+    @Schema(description = "危险源")
+    @ExcelProperty("危险源")
+    private String sourceDanger;
+
+    @Schema(description = "检验单位")
+    @ExcelProperty("检验单位")
+    private String checkUnit;
+
+    @Schema(description = "设备识别号")
+    @ExcelProperty("设备识别号")
+    private String equipReadNo;
+
+    @Schema(description = "项目费用")
+    @ExcelProperty("项目费用")
+    private String itemCost;
+
+    @Schema(description = "是否做节能检查")
+    @ExcelProperty("是否做节能检查")
+    private String isSaveCheck;
+
+    @Schema(description = "注册登记日期")
+    @ExcelProperty("注册登记日期")
+    private LocalDateTime registDate;
+
+    @Schema(description = "注册登记机构")
+    @ExcelProperty("注册登记机构")
+    private String registOrgan;
+
+    @Schema(description = "注册登记人员")
+    @ExcelProperty("注册登记人员")
+    private String registMan;
+
+    @Schema(description = "投用日期")
+    @ExcelProperty("投用日期")
+    private LocalDateTime useTime;
+
+    @Schema(description = "更新日期")
+    @ExcelProperty("更新日期")
+    private LocalDateTime equipUpdateTime;
+
+    @Schema(description = "设备管理部门")
+    @ExcelProperty("设备管理部门")
+    private String sbglbm;
+
+    @Schema(description = "设备联系人")
+    @ExcelProperty("设备联系人")
+    private String sblxr;
+
+    @Schema(description = "设备联系人电话")
+    @ExcelProperty("设备联系人电话")
+    private String sblxrdh;
+
+    @Schema(description = "出厂日期")
+    @ExcelProperty("出厂日期")
+    private LocalDateTime ccrq;
+
+    @Schema(description = "能效测试效率")
+    @ExcelProperty("能效测试效率")
+    private String efficiency;
+
+    @Schema(description = "下次环保监测日期")
+    @ExcelProperty("下次环保监测日期")
+    private LocalDateTime nextEcoDate;
+
+    @Schema(description = "下次检验日期")
+    @ExcelProperty("下次检验日期")
+    private LocalDateTime nextcheckdate;
+
+    @Schema(description = "在用有机热载体系统的回流温度")
+    @ExcelProperty("在用有机热载体系统的回流温度")
+    private String oilEquipBackTemp;
+
+    @Schema(description = "有机热载体使用日期")
+    @ExcelProperty("有机热载体使用日期")
+    private LocalDateTime oilEquipMakeDate;
+
+    @Schema(description = "导热油生产单位")
+    @ExcelProperty("导热油生产单位")
+    private String oilEquipMakeUnit;
+
+    @Schema(description = "在用有机热载体最高工作温度")
+    @ExcelProperty("在用有机热载体最高工作温度")
+    private String oilEquipMaxWorkTemp;
+
+    @Schema(description = "导热油型号")
+    @ExcelProperty("导热油型号")
+    private String oilEquipType;
+
+    @Schema(description = "导热油上次检验结论")
+    @ExcelProperty("导热油上次检验结论")
+    private String oillastresult;
+
+    @Schema(description = "下次导热油取样日期")
+    @ExcelProperty("下次导热油取样日期")
+    private LocalDateTime oilsamplingdate;
+
+    @Schema(description = "设备类别代码")
+    @ExcelProperty("设备类别代码")
+    private String sblbcode;
+
+    @Schema(description = "设备品种代码")
+    @ExcelProperty("设备品种代码")
+    private String sbpzcode;
+
+    @Schema(description = "施工单位代码")
+    @ExcelProperty("施工单位代码")
+    private String sgdwdm;
+
+    @Schema(description = "施工单位名称")
+    @ExcelProperty("施工单位名称")
+    private String sgdwmc;
+
+    @Schema(description = "施工单位许可证编号")
+    @ExcelProperty("施工单位许可证编号")
+    private String sgdwxkzbh;
+
+    @Schema(description = "是否现场组装")
+    @ExcelProperty("是否现场组装")
+    private String sgfs;
+
+    @Schema(description = "施工负责人")
+    @ExcelProperty("施工负责人")
+    private String sgfzr;
+
+    @Schema(description = "施工联系电话")
+    @ExcelProperty("施工联系电话")
+    private String sglxdh;
+
+    @Schema(description = "施工受理号")
+    @ExcelProperty("施工受理号")
+    private String sgslh;
+
+    @Schema(description = "设计单位名称")
+    @ExcelProperty("设计单位名称")
+    private String sjdwmc;
+
+    @Schema(description = "试验介质")
+    @ExcelProperty("试验介质")
+    private String testmedium;
+
+    @Schema(description = "使用压力")
+    @ExcelProperty("使用压力")
+    private String usepressure;
+
+    @Schema(description = "水质上次检验结论")
+    @ExcelProperty("水质上次检验结论")
+    private String waterlastresult;
+
+    @Schema(description = "工作压力")
+    @ExcelProperty("工作压力")
+    private String workpressure;
+
+    // ==================== 内部检验信息 ====================
+
+    @Schema(description = "上次内部检验报告编号")
+    @ExcelProperty("上次内部检验报告编号")
+    private String lastInCheckReportNo;
+
+    @Schema(description = "上次内检日期")
+    @ExcelProperty("上次内检日期")
+    private LocalDateTime lastAllDate;
+
+    @Schema(description = "下次内部检验日期")
+    @ExcelProperty("下次内部检验日期")
+    private LocalDateTime nextInCheckDate;
+
+    @Schema(description = "上次检验检查结论(内部检验)")
+    @ExcelProperty("上次检验检查结论(内部检验)")
+    private String lastInCheckConclusion;
+
+    @Schema(description = "上次检验检查发现的问题(内部检验)")
+    @ExcelProperty("上次检验检查发现的问题(内部检验)")
+    private String lastInCheckProblem;
+
+    // ==================== 外部检验信息 ====================
+
+    @Schema(description = "上次外部检验报告编号")
+    @ExcelProperty("上次外部检验报告编号")
+    private String lastOutCheckReportNo;
+
+    @Schema(description = "上次外检日期")
+    @ExcelProperty("上次外检日期")
+    private LocalDateTime lastYearDate;
+
+    @Schema(description = "下次外部检验日期")
+    @ExcelProperty("下次外部检验日期")
+    private LocalDateTime nextOutCheckDate;
+
+    @Schema(description = "上次检验检查结论(外部检验)")
+    @ExcelProperty("上次检验检查结论(外部检验)")
+    private String lastOutCheckConclusion;
+
+    @Schema(description = "上次检验检查发现的问题(外部检验)")
+    @ExcelProperty("上次检验检查发现的问题(外部检验)")
+    private String lastOutCheckProblem;
+
+    // ==================== 耐压检验信息 ====================
+
+    @Schema(description = "上次耐压检验报告编号")
+    @ExcelProperty("上次耐压检验报告编号")
+    private String lastPressureCheckReportNo;
+
+    @Schema(description = "上次耐压日期")
+    @ExcelProperty("上次耐压日期")
+    private LocalDateTime lastPressureDate;
+
+    @Schema(description = "下次耐压检验日期")
+    @ExcelProperty("下次耐压检验日期")
+    private LocalDateTime nextPressureCheckDate;
+
+    @Schema(description = "上次检验检查结论(耐压检验)")
+    @ExcelProperty("上次检验检查结论(耐压检验)")
+    private String lastPressureCheckConclusion;
+
+    @Schema(description = "上次检验检查发现的问题(耐压检验)")
+    @ExcelProperty("上次检验检查发现的问题(耐压检验)")
+    private String lastPressureCheckProblem;
+
+    // ==================== 能效测试信息 ====================
+
+    @Schema(description = "上次能效测试报告编号")
+    @ExcelProperty("上次能效测试报告编号")
+    private String lastEnergyEffciencyCheckReportNo;
+
+    @Schema(description = "上次能效日期")
+    @ExcelProperty("上次能效日期")
+    private LocalDateTime lastenergydate;
+
+    @Schema(description = "下次能效测试日期")
+    @ExcelProperty("下次能效测试日期")
+    private LocalDateTime nextEnergyEffciencyCheckDate;
+
+    // ==================== 节能检验信息 ====================
+
+    @Schema(description = "下次节能检查日期")
+    @ExcelProperty("下次节能检查日期")
+    private LocalDateTime nextEnergySaveCheckDate;
+
+    // ==================== 安装监检信息 ====================
+
+    @Schema(description = "安装监检报告编号")
+    @ExcelProperty("安装监检报告编号")
+    private String installCheckReportNo;
+
+    // ==================== 维修改造检验信息 ====================
+
+    @Schema(description = "上次维修改造监检报告编号")
+    @ExcelProperty("上次维修改造监检报告编号")
+    private String lastRepairCheckReportNo;
+
+    @Schema(description = "监督检验开始日期")
+    @ExcelProperty("监督检验开始日期")
+    private LocalDateTime overseeCheckBeginDate;
+
+    @Schema(description = "监督检验结束日期")
+    @ExcelProperty("监督检验结束日期")
+    private LocalDateTime overseeCheckEndDate;
+
+    @Schema(description = "上次维修改造内容")
+    @ExcelProperty("上次维修改造内容")
+    private String lastRepairReformContent;
+}

+ 7 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equipboiler/EquipBoilerService.java

@@ -70,6 +70,13 @@ public interface EquipBoilerService extends IService<EquipBoilerDO>  {
      * @return 锅炉设备分页
      */
     PageResult<EquipBoilerPageRespVO> getEquipBoilerPage(EquipBoilerPageReqVO pageReqVO);
+    /**
+     * 获得锅炉设备分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 锅炉设备分页
+     */
+    PageResult<EquipBoilerExportVO> exportEquipBoilerExcel(EquipBoilerPageReqVO pageReqVO);
 
     EquipBoilerDO getEquipBoilerByEquipCode(String equipCode);
 

+ 90 - 2
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equipboiler/EquipBoilerServiceImpl.java

@@ -276,8 +276,18 @@ public class EquipBoilerServiceImpl extends ServiceImpl<EquipBoilerMapper, Equip
                 .filter(StrUtil::isNotEmpty).collect(Collectors.toSet());
         Map<String, List<ClientUnitDTO>> unitMap = new HashMap<>();
         if (CollUtil.isNotEmpty(unitIds)) {
-            List<ClientUnitDTO> unitDTOList = clientUnitApi.getClientUnitList(unitIds).getCheckedData();
-            unitMap = unitDTOList.stream()
+            // 分批查询,每批最多1000个ID,避免一次查询太多数据导致报错
+            List<String> unitIdList = new ArrayList<>(unitIds);
+            List<ClientUnitDTO> allUnitDTOList = new ArrayList<>();
+            for (int i = 0; i < unitIdList.size(); i += 100) {
+                int endIndex = Math.min(i + 100, unitIdList.size());
+                List<String> subUnitIds = unitIdList.subList(i, endIndex);
+                List<ClientUnitDTO> batchResult = clientUnitApi.getClientUnitList(new HashSet<>(subUnitIds)).getCheckedData();
+                if (batchResult != null) {
+                    allUnitDTOList.addAll(batchResult);
+                }
+            }
+            unitMap = allUnitDTOList.stream()
                     .collect(Collectors.groupingBy(ClientUnitDTO::getId));
         }
         PageResult<EquipBoilerPageRespVO> voPageResult = BeanUtils.toBean(equipBoilerDOPageResult, EquipBoilerPageRespVO.class);
@@ -298,6 +308,84 @@ public class EquipBoilerServiceImpl extends ServiceImpl<EquipBoilerMapper, Equip
 //        return equipBoilerMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public PageResult<EquipBoilerExportVO> exportEquipBoilerExcel(EquipBoilerPageReqVO pageReqVO) {
+        if (pageReqVO.getEquipDistrict() != null || pageReqVO.getEquipStreet() != null || StrUtil.isEmpty(pageReqVO.getAreaType())) {
+            pageReqVO.setAreaType(null);
+        }
+        if (pageReqVO.getEquipCode() != null){
+            pageReqVO.setEquipCode(pageReqVO.getEquipCode().trim());
+        }
+        if (pageReqVO.getUseRegisterNo() != null){
+            pageReqVO.setUseRegisterNo(pageReqVO.getUseRegisterNo().trim());
+        }
+        if (pageReqVO.getUnitCode() != null){
+            pageReqVO.setUnitCode(pageReqVO.getUnitCode().trim());
+        }
+        if (pageReqVO.getUnitName() != null){
+            pageReqVO.setUnitName(pageReqVO.getUnitName().trim());
+        }
+        PageResult<EquipBoilerDO> equipBoilerDOPageResult = equipBoilerMapper.selectPage(pageReqVO);
+        if (equipBoilerDOPageResult.getList() == null){
+            return null;
+        }
+
+        List<EquipBoilerDO> doList = equipBoilerDOPageResult.getList();
+
+        // 收集所有部门ID,批量查询部门名称
+        Set<String> deptIds = doList.stream()
+                .map(EquipBoilerDO::getRelatedDepartment)
+                .filter(StrUtil::isNotEmpty)
+                .collect(Collectors.toSet());
+        Map<String, String> deptNameMap = new HashMap<>();
+        if (CollUtil.isNotEmpty(deptIds)) {
+            try {
+                Map<String, DeptRespDTO> deptMap = deptApi.getDeptMap(new ArrayList<>(deptIds));
+                deptNameMap = deptMap.entrySet().stream()
+                        .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().getName()));
+            } catch (Exception e) {
+                log.error("查询部门名称失败", e);
+            }
+        }
+
+        // 转换为导出VO,并填充行政区名称、部门名称、字典值
+        Map<String, String> finalDeptNameMap = deptNameMap;
+        List<EquipBoilerExportVO> voList = doList.stream().map(boiler -> {
+            EquipBoilerExportVO vo = BeanUtils.toBean(boiler, EquipBoilerExportVO.class);
+
+            if ("gz".equals(boiler.getAreaType())){
+                vo.setAreaType("广州");
+            }else {
+                vo.setAreaType("全国");
+            }
+
+            // 行政区名称
+            if (boiler.getEquipDistrict() != null) {
+                vo.setEquipDistrictName(AreaUtils.getArea(boiler.getEquipDistrict()).getName());
+            }
+            if (boiler.getEquipStreet() != null) {
+                vo.setEquipStreetName(AreaUtils.getArea(boiler.getEquipStreet()).getName());
+            }
+
+            // 部门名称
+            if (StrUtil.isNotEmpty(boiler.getRelatedDepartment())) {
+                vo.setRelatedDepartmentName(finalDeptNameMap.get(boiler.getRelatedDepartment()));
+            }
+
+            // 使用状态:Integer转String,让DictConvert能正确转换
+            if (boiler.getUseStatus() != null) {
+                vo.setUseStatus(String.valueOf(boiler.getUseStatus()));
+            }
+
+            return vo;
+        }).collect(Collectors.toList());
+
+        PageResult<EquipBoilerExportVO> result = new PageResult<>();
+        result.setList(voList);
+        result.setTotal(equipBoilerDOPageResult.getTotal());
+        return result;
+    }
+
     @Override
     public EquipBoilerDO getEquipBoilerByEquipCode(String equipCode) {
         return equipBoilerMapper.selectOne(EquipBoilerDO::getEquipCode, equipCode);