diff --git a/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/convert/ListToStringConverter.java b/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/convert/ListToStringConverter.java new file mode 100644 index 0000000..bf46808 --- /dev/null +++ b/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/convert/ListToStringConverter.java @@ -0,0 +1,40 @@ +package com.zteits.urbanops.framework.excel.core.convert; +import cn.idev.excel.converters.Converter; +import cn.hutool.core.collection.CollectionUtil; +import cn.idev.excel.enums.CellDataTypeEnum; +import cn.idev.excel.metadata.GlobalConfiguration; +import cn.idev.excel.metadata.data.WriteCellData; +import cn.idev.excel.metadata.property.ExcelContentProperty; + +import java.util.List; + +/** + * List 转 Excel 字符串转换器(将List用逗号拼接成字符串) + */ +public class ListToStringConverter implements Converter> { + + @Override + public Class supportJavaTypeKey() { + // 声明支持的Java类型:List + return List.class; + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + // Excel单元格类型:字符串 + return CellDataTypeEnum.STRING; + } + + @Override + public WriteCellData convertToExcelData(List value, ExcelContentProperty contentProperty, + GlobalConfiguration globalConfiguration) { + // 核心转换逻辑:List为空返回空字符串,否则用逗号拼接 + if (CollectionUtil.isEmpty(value)) { + return new WriteCellData<>(""); + } + String joinStr = String.join(",", value.stream() + .map(Object::toString) + .toArray(String[]::new)); + return new WriteCellData<>(joinStr); + } +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/EmergencyTaskController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/EmergencyTaskController.java index fade133..c458f53 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/EmergencyTaskController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/EmergencyTaskController.java @@ -98,7 +98,7 @@ public class EmergencyTaskController { @GetMapping("/export-excel") @Operation(summary = "导出抢险任务主 Excel") - @PreAuthorize("@ss.hasPermission('garden:emergency-task:export')") + //@PreAuthorize("@ss.hasPermission('garden:emergency-task:export')") @ApiAccessLog(operateType = EXPORT) public void exportEmergencyTaskExcel(@Valid EmergencyTaskPageReqVO pageReqVO, HttpServletResponse response) throws IOException { diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskRespVO.java index 984e6f7..0969603 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskRespVO.java @@ -1,13 +1,10 @@ package com.zteits.urbanops.module.garden.controller.admin.emergencytask.vo; -import com.baomidou.mybatisplus.annotation.TableField; -import com.zteits.urbanops.framework.mybatis.core.type.StringArrayToListTypeHandler; -import com.zteits.urbanops.framework.mybatis.core.type.StringListTypeHandler; +import com.zteits.urbanops.framework.excel.core.convert.ListToStringConverter; import com.zteits.urbanops.module.garden.dal.dataobject.emergencytask.EmergencyMachineryDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import cn.idev.excel.annotation.*; @@ -57,8 +54,7 @@ public class EmergencyTaskRespVO { private LocalDateTime rescueStartTime; @Schema(description = "抢险中照片", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("抢险中照片") - @TableField(typeHandler = StringArrayToListTypeHandler.class) + @ExcelProperty(value="抢险中照片", converter = ListToStringConverter.class) private List emergencyImg; @Schema(description = "树种(如:国槐)") @@ -78,8 +74,7 @@ public class EmergencyTaskRespVO { private Integer personnelCount; @Schema(description = "抢险结束照片", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("抢险结束照片") - @TableField(typeHandler = StringArrayToListTypeHandler.class) + @ExcelProperty(value="抢险结束照片", converter = ListToStringConverter.class) private List emergencyEndImg; @Schema(description = "备注") @@ -130,6 +125,7 @@ public class EmergencyTaskRespVO { @ExcelProperty("更新者") private String updaterName; + @ExcelProperty(value="机械信息", converter = ListToStringConverter.class) private List emergencyMachineryList; @Schema(description = "归属(一级部门id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "20800")