diff --git a/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/handler/CellVerticalCenterStyleStrategy.java b/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/handler/CellVerticalCenterStyleStrategy.java new file mode 100644 index 0000000..8411ab2 --- /dev/null +++ b/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/handler/CellVerticalCenterStyleStrategy.java @@ -0,0 +1,36 @@ +package com.zteits.urbanops.framework.excel.core.handler; + +import cn.idev.excel.write.handler.context.CellWriteHandlerContext; +import cn.idev.excel.write.style.AbstractCellStyleStrategy; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.VerticalAlignment; + +/** + * Excel 单元格垂直居中样式策略 + * + * 所有单元格内容上下居中 + * + * @author hmb + */ +public class CellVerticalCenterStyleStrategy extends AbstractCellStyleStrategy { + + @Override + protected void setHeadCellStyle(CellWriteHandlerContext context) { + setVerticalCenter(context.getCell()); + } + + @Override + protected void setContentCellStyle(CellWriteHandlerContext context) { + setVerticalCenter(context.getCell()); + } + + /** + * 设置单元格垂直居中 + */ + private void setVerticalCenter(Cell cell) { + CellStyle cellStyle = cell.getCellStyle(); + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + cell.setCellStyle(cellStyle); + } +} diff --git a/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/util/ExcelUtils.java b/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/util/ExcelUtils.java index 0ac7d43..6c26e79 100644 --- a/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/util/ExcelUtils.java +++ b/urbanops-framework/urbanops-spring-boot-starter-excel/src/main/java/com/zteits/urbanops/framework/excel/core/util/ExcelUtils.java @@ -6,6 +6,7 @@ import cn.idev.excel.FastExcelFactory; import cn.idev.excel.converters.longconverter.LongStringConverter; import cn.idev.excel.write.builder.ExcelWriterBuilder; import com.zteits.urbanops.framework.common.util.http.HttpUtils; +import com.zteits.urbanops.framework.excel.core.handler.CellVerticalCenterStyleStrategy; import com.zteits.urbanops.framework.excel.core.handler.ColumnWidthMatchStyleStrategy; import com.zteits.urbanops.framework.excel.core.handler.HeadMergeHandler; import com.zteits.urbanops.framework.excel.core.handler.SelectSheetWriteHandler; @@ -139,6 +140,7 @@ public class ExcelUtils { .head(headList) //动态自定义3行表头 .autoCloseStream(true) // 自动关闭 .registerWriteHandler(new ColumnWidthMatchStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度 + //.registerWriteHandler(new CellVerticalCenterStyleStrategy()) //垂直居中 .registerWriteHandler(new SelectSheetWriteHandler(head)) // 基于固定 sheet 实现下拉框 .registerConverter(new LongStringConverter()) // 避免 Long 类型丢失精度 .registerWriteHandler(new HeadMergeHandler(mergeList.toArray(new CellRangeAddress[0]))); @@ -146,6 +148,7 @@ public class ExcelUtils { writeBuilder = FastExcelFactory.write(fos, head) .autoCloseStream(true) // 自动关闭 .registerWriteHandler(new ColumnWidthMatchStyleStrategy()) // 基于 column 长度,自动适配。最大 255 宽度 + //.registerWriteHandler(new CellVerticalCenterStyleStrategy()) //垂直居中 .registerWriteHandler(new SelectSheetWriteHandler(head)) // 基于固定 sheet 实现下拉框 .registerConverter(new LongStringConverter()); // 避免 Long 类型丢失精度 } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskExcleNewRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskExcleNewRespVO.java index 3956373..ef1d0c3 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskExcleNewRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskExcleNewRespVO.java @@ -43,11 +43,11 @@ public class EmergencyTaskExcleNewRespVO { @Schema(description = "险情危害(如:无)", requiredMode = Schema.RequiredMode.REQUIRED, example = "16325") @ExcelProperty("险情危害") - private Integer emergencyHarmId; + private Integer emergencyHarmNum; @Schema(description = "数量/株", requiredMode = Schema.RequiredMode.REQUIRED, example = "3371") @ExcelProperty("数量/株") - private Integer emergencyHarmNum; + private Integer emergencyTypeNum; @Schema(description = "抢险开始时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("抢险开始时间") diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskExcleRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskExcleRespVO.java index 9671a01..cd996e9 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskExcleRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskExcleRespVO.java @@ -64,11 +64,11 @@ public class EmergencyTaskExcleRespVO { @ExcelProperty("抢险开始时间") private LocalDateTime rescueStartTime; - @Schema(description = "抢险中照片", requiredMode = Schema.RequiredMode.REQUIRED) + //@Schema(description = "抢险中照片", requiredMode = Schema.RequiredMode.REQUIRED) //@ExcelProperty(value="抢险中照片", converter = ListToStringConverter.class) - @ExcelProperty(value = "抢险中照片", converter = ImageListConverter.class) - @ColumnWidth(70) - private List emergencyImg; + //@ExcelProperty(value = "抢险中照片", converter = ImageListConverter.class) + //@ColumnWidth(70) + //private List emergencyImg; @Schema(description = "树种(如:国槐)") @ExcelProperty("树种") @@ -86,11 +86,11 @@ public class EmergencyTaskExcleRespVO { @ExcelProperty("出动人员数量") private Integer personnelCount; - @Schema(description = "抢险结束照片", requiredMode = Schema.RequiredMode.REQUIRED) + //@Schema(description = "抢险结束照片", requiredMode = Schema.RequiredMode.REQUIRED) //@ExcelProperty(value="抢险结束照片", converter = ListToStringConverter.class) - @ExcelProperty(value = "抢险结束照片", converter = ImageListConverter.class) - @ColumnWidth(70) - private List emergencyEndImg; + //@ExcelProperty(value = "抢险结束照片", converter = ImageListConverter.class) + //@ColumnWidth(70) + //private List emergencyEndImg; @Schema(description = "备注") @ExcelProperty("备注") diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskSaveReqVO.java index 6068f76..e725470 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/emergencytask/vo/EmergencyTaskSaveReqVO.java @@ -38,6 +38,7 @@ public class EmergencyTaskSaveReqVO { private String emergencyLocation; @Schema(description = "上报人", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "上报人不能为空") private String reporter; @Schema(description = "联系电话", requiredMode = Schema.RequiredMode.REQUIRED) @@ -56,10 +57,12 @@ public class EmergencyTaskSaveReqVO { @Schema(description = "树种(如:国槐)") @Size(max = 100, message = "险情地点长度不能超过 255 个字符") + @NotEmpty(message = "树种不能为空") private String treeSpecies; @Schema(description = "树木规格(如:胸径20厘米)") @Size(max = 100, message = "树木规格100个字符") + @NotEmpty(message = "树木规格不能为空") private String treeSpec; @Schema(description = "抢险完成时间", requiredMode = Schema.RequiredMode.REQUIRED) @@ -71,6 +74,7 @@ public class EmergencyTaskSaveReqVO { private Integer personnelCount; @Schema(description = "抢险结束照片", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "抢险后照片不能为空") private List emergencyEndImg; @Schema(description = "备注") @@ -96,6 +100,7 @@ public class EmergencyTaskSaveReqVO { private String approvalUserName; @Schema(description = "使用机械", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @NotEmpty(message = "抢险后照片不能为空") private List emergencyMachineryList; @Schema(description = "险情类型数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyExportHandler.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyExportHandler.java index 4684b6f..7e3b4f7 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyExportHandler.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyExportHandler.java @@ -19,8 +19,6 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; -import static com.zteits.urbanops.module.garden.service.filedownload.ExcelExportAsyncService.BATCH_SIZE; - /** * 应急任务导出处理器 * 实现 ExcelExportHandler 接口,替代原抽象类继承 @@ -36,7 +34,7 @@ public class EmergencyExportHandler implements ExcelExportHandler mechanicalTypeDict = getDictMap(DICT_MECHANICAL_TYPE); Map rescueStatusDict = getDictMap(DICT_RESCUE_STATUS); // 初始化文件客户端 - FileClient fileClient = fileConfigService.getMasterFileClient(); + //FileClient fileClient = fileConfigService.getMasterFileClient(); for (EmergencyTaskRespVO task : batchList) { EmergencyTaskExcleRespVO vo = new EmergencyTaskExcleRespVO(); @@ -88,8 +86,8 @@ public class EmergencyExportHandler implements ExcelExportHandler machineryInfoList = new ArrayList<>(); diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyExportNewHandler.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyExportNewHandler.java index 4b478d6..1845feb 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyExportNewHandler.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/emergencytask/EmergencyExportNewHandler.java @@ -15,11 +15,8 @@ import org.springframework.util.CollectionUtils; import java.util.*; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; -import static com.zteits.urbanops.module.garden.service.filedownload.ExcelExportAsyncService.BATCH_SIZE; - /** * 新版应急任务导出处理器 * 实现 ExcelExportHandler 接口 @@ -66,13 +63,13 @@ public class EmergencyExportNewHandler implements ExcelExportHandler|]", "_"); + File targetFile = new File(localExcelPath, safeFileName); + return targetFile.getAbsolutePath(); } private void updateSuccess(FileDownloadDO downloadDO) {