From f51f214d097756c5d4b0b05e1aec870808bbc6ce Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 11 May 2022 10:56:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E5=85=A5=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/IcMoveInListResultDTO.java | 2 +- .../controller/IcMoveInRecordController.java | 52 +++++++++++++++++-- .../com/epmet/excel/IcMoveInRecordExcel.java | 28 +++++++++- 3 files changed, 75 insertions(+), 7 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcMoveInListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcMoveInListResultDTO.java index 7795b50736..8a9037847b 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcMoveInListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcMoveInListResultDTO.java @@ -116,7 +116,7 @@ public class IcMoveInListResultDTO implements Serializable { * 迁入时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private String inTime; + private Date inTime; /** * 迁入原因 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcMoveInRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcMoveInRecordController.java index 876a8bea45..ce89eb6423 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcMoveInRecordController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcMoveInRecordController.java @@ -1,12 +1,18 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.MaskResponse; import com.epmet.commons.tools.aop.NoRepeatSubmit; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; @@ -18,10 +24,13 @@ import com.epmet.dto.form.IcMoveInListFormDTO; import com.epmet.dto.result.IcMoveInListResultDTO; import com.epmet.excel.IcMoveInRecordExcel; import com.epmet.service.IcMoveInRecordService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; @@ -33,6 +42,7 @@ import java.util.List; */ @RestController @RequestMapping("icMoveIn") +@Slf4j public class IcMoveInRecordController { @Autowired @@ -79,12 +89,46 @@ public class IcMoveInRecordController { } @PostMapping("export") - public void export(@LoginUser TokenDto tokenDto, @RequestBody IcMoveInListFormDTO formDTO, HttpServletResponse response) throws Exception { - formDTO.setCustomerId(tokenDto.getCustomerId()); - formDTO.setIsPage(true); + public void export(@RequestBody IcMoveInListFormDTO formDTO, HttpServletResponse response) throws Exception { + formDTO.setCustomerId("45687aa479955f9d06204d415238f7cc"); + /* formDTO.setIsPage(true); IcMoveInListResultDTO resultDTO = icMoveInRecordService.list(formDTO); List list = ConvertUtils.sourceToTarget(resultDTO.getList(), IcMoveInRecordExcel.class); - ExcelUtils.exportExcelToTarget(response, null, list, IcMoveInRecordExcel.class); + ExcelUtils.exportExcelToTarget(response, null, list, IcMoveInRecordExcel.class);*/ + + + + + ExcelWriter excelWriter = null; + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + int pageNo = NumConstant.ONE; + try { + String fileName = "迁入管理"+DateUtils.format(new Date())+".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcMoveInRecordExcel.class).build(); + + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + List list = null; + do { + IcMoveInListResultDTO data = icMoveInRecordService.list(formDTO); + list = ConvertUtils.sourceToTarget(data.getList(), IcMoveInRecordExcel.class); + formDTO.setPageNo(++pageNo); + excelWriter.write(list, writeSheet); + } while (CollectionUtils.isNotEmpty(list) && list.size() == formDTO.getPageSize()); + }catch (Exception e){ + log.error("export exception", e); + }finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + + + + + + + + } @RequestMapping("detail") diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcMoveInRecordExcel.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcMoveInRecordExcel.java index 5eff6171b7..d5488a34f9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcMoveInRecordExcel.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/IcMoveInRecordExcel.java @@ -1,6 +1,8 @@ package com.epmet.excel; import cn.afterturn.easypoi.excel.annotation.Excel; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -15,43 +17,65 @@ import java.util.Date; @Data public class IcMoveInRecordExcel { + @ExcelProperty(value = "姓名") @Excel(name = "姓名") private String name; + @ExcelProperty(value = "所属网格") + @ColumnWidth(20) @Excel(name = "所属网格") private String gridName; + @ExcelProperty(value = "所属房屋") + @ColumnWidth(25) @Excel(name = "所属房屋") private String allName; + @ExcelProperty(value = "手机号") @Excel(name = "手机号") private String mobile; + @ExcelProperty(value = "身份证号") + @ColumnWidth(20) @Excel(name = "身份证号") private String idCard; + @ExcelProperty(value = "性别") @Excel(name = "性别") private String genderName; + @ExcelProperty(value = "年龄") @Excel(name = "年龄") private Integer age; + @ExcelProperty(value = "迁入时间") + @ColumnWidth(20) @Excel(name = "迁入时间") - //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private String inTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date inTime; + @ExcelProperty(value = "迁入原因") + @ColumnWidth(25) @Excel(name = "迁入原因") private String inReason; + @ExcelProperty(value = "由何地迁入") + @ColumnWidth(25) @Excel(name = "由何地迁入") private String sourceAddress; + @ExcelProperty(value = "迁移证号码") + @ColumnWidth(20) @Excel(name = "迁移证号码") private String moveNumber; + @ExcelProperty(value = "户主姓名") + @ColumnWidth(20) @Excel(name = "户主姓名") private String householderName; + @ExcelProperty(value = "与户主关系") + @ColumnWidth(20) @Excel(name = "与户主关系") private String householderRelationName;