From 4f81a57b2454d78285ea8e4e4bdb88bd0379e49e Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 11 Apr 2022 14:14:07 +0800 Subject: [PATCH 1/5] =?UTF-8?q?easypoi=E5=92=8CeasyExcel=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=20=E8=B0=83=E6=95=B4=E6=A0=B7=E5=BC=8F=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-commons-extapp-auth/pom.xml | 2 +- epmet-commons/epmet-commons-tools/pom.xml | 2 +- .../epmet/commons/tools/utils/ExcelUtils.java | 59 +++-------- .../excel/EasyPoiExcelExportStylerImpl.java | 93 ++++++++++++++++++ .../{ => poi}/excel/ExportMultiView.java | 2 +- .../utils/poi/excel/FreezeAndFilter.java | 46 +++++++++ .../datastats/impl/DataStatsServiceImpl.java | 2 +- .../IcFollowUpRecordController.java | 3 +- .../com/epmet/controller/IcNatController.java | 3 +- .../controller/IcResiUserController.java | 1 - .../IcTripReportRecordController.java | 3 +- .../epmet/controller/IcVaccineController.java | 3 +- .../impl/PatrolRoutineWorkServiceImpl.java | 3 +- .../ic_resi_info_cid_for_easy_excel.xlsx | Bin 25172 -> 25245 bytes 14 files changed, 165 insertions(+), 57 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/EasyPoiExcelExportStylerImpl.java rename epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/{ => poi}/excel/ExportMultiView.java (91%) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/FreezeAndFilter.java diff --git a/epmet-commons/epmet-commons-extapp-auth/pom.xml b/epmet-commons/epmet-commons-extapp-auth/pom.xml index 8ff0d46ada..bf2e9a71c7 100644 --- a/epmet-commons/epmet-commons-extapp-auth/pom.xml +++ b/epmet-commons/epmet-commons-extapp-auth/pom.xml @@ -18,7 +18,7 @@ 1.3.3 2.6 4.6.1 - 4.4.0 + 4.3.0 2.9.9 1.2.79 2.8.6 diff --git a/epmet-commons/epmet-commons-tools/pom.xml b/epmet-commons/epmet-commons-tools/pom.xml index e516c5fba7..867fcf47c7 100644 --- a/epmet-commons/epmet-commons-tools/pom.xml +++ b/epmet-commons/epmet-commons-tools/pom.xml @@ -18,7 +18,7 @@ 1.3.3 2.6 4.6.1 - 4.4.0 + 4.3.0 2.9.9 1.2.79 2.8.6 diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java index 9bc34d0a39..d75b510bec 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java @@ -11,12 +11,13 @@ package com.epmet.commons.tools.utils; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; -import com.epmet.commons.tools.utils.excel.ExportMultiView; +import com.epmet.commons.tools.utils.poi.excel.EasyPoiExcelExportStylerImpl; +import com.epmet.commons.tools.utils.poi.excel.ExportMultiView; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; -import org.springframework.util.CollectionUtils; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; @@ -30,6 +31,7 @@ import java.util.*; * @author Mark sunlightcs@gmail.com * @since 1.0.0 */ +@Slf4j public class ExcelUtils { /** @@ -47,15 +49,16 @@ public class ExcelUtils { fileName = DateUtils.format(new Date()); } - Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), pojoClass, list); + ExportParams exportParams = new ExportParams(); + //设置导出的样式 + exportParams.setStyle(EasyPoiExcelExportStylerImpl.class); + //设置sheet名称 + exportParams.setSheetName("Sheet1"); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list); Sheet sheet1 = workbook.getSheetAt(0); sheet1.setDefaultColumnWidth(50*256); sheet1.setDefaultRowHeight((short)(2*256)); - response.setCharacterEncoding("UTF-8"); - response.setHeader("content-Type", "application/vnd.ms-excel"); - response.setHeader("Content-Disposition", - "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xls"); - ServletOutputStream out = response.getOutputStream(); + ServletOutputStream out = ExcelUtils.getOutputStreamForExcel(fileName,response); workbook.write(out); out.flush(); out.close(); @@ -81,45 +84,7 @@ public class ExcelUtils { exportExcel(response, fileName, targetList, targetClass); } - public static void exportExcelToTargetDisposeAll(HttpServletResponse response, String fileName, Collection sourceList, - Class targetClass) throws Exception { - if (!CollectionUtils.isEmpty(sourceList)){ - List targetList = new ArrayList<>(sourceList.size()); - for(Object source : sourceList){ - Object target = targetClass.newInstance(); - BeanUtils.copyProperties(source, target); - targetList.add(target); - } - exportExcelDispose(response, fileName, targetList, targetClass); - }else { - exportExcelDispose(response, fileName, new ArrayList<>(), targetClass); - } - - - } - - public static void exportExcelDispose(HttpServletResponse response, String fileName, Collection list, - Class pojoClass) throws IOException { - if(StringUtils.isBlank(fileName)){ - //当前日期 - fileName = DateUtils.format(new Date()); - } - ExportParams params = new ExportParams(fileName,fileName); - Workbook workbook = ExcelExportUtil.exportExcel(params, pojoClass, list); - Sheet sheet1 = workbook.getSheetAt(0); - sheet1.setDefaultColumnWidth(50*256); - sheet1.setDefaultRowHeight((short)(2*256)); - response.setCharacterEncoding("UTF-8"); - response.setHeader("content-Type", "application/vnd.ms-excel"); - fileName = fileName + ".xls"; - response.setHeader("Content-Disposition", - "attachment;filename=" +fileName); - ServletOutputStream out = response.getOutputStream(); - workbook.write(out); - out.flush(); - out.close(); - } - public static ServletOutputStream getOutputStreamForExcel(String fileName, HttpServletResponse response) throws Exception { + public static ServletOutputStream getOutputStreamForExcel(String fileName, HttpServletResponse response) throws IOException { fileName = URLEncoder.encode(fileName, "UTF-8"); if (!fileName.endsWith(".xls") ||!fileName.endsWith(".xlsx")){ fileName = fileName + ".xlsx"; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/EasyPoiExcelExportStylerImpl.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/EasyPoiExcelExportStylerImpl.java new file mode 100644 index 0000000000..b1a5606c2e --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/EasyPoiExcelExportStylerImpl.java @@ -0,0 +1,93 @@ +package com.epmet.commons.tools.utils.poi.excel; + + +import cn.afterturn.easypoi.excel.export.styler.AbstractExcelExportStyler; +import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler; +import org.apache.poi.ss.usermodel.*; + + +/** + * desc:easypoi自定义表头颜色 + * + * @author: LiuJanJun + * @date: 2022/4/8 4:39 下午 + * @version: 1.0 + */ +public class EasyPoiExcelExportStylerImpl extends AbstractExcelExportStyler + implements IExcelExportStyler { + public EasyPoiExcelExportStylerImpl(Workbook workbook) { + super.createStyles(workbook); + } + + @Override + public CellStyle getTitleStyle(short color) { + CellStyle titleStyle = workbook.createCellStyle(); + Font font = this.workbook.createFont(); + // 字体加粗 + font.setBold(true); + font.setFontHeightInPoints((short) 12); + titleStyle.setFont(font); + //居中 + titleStyle.setAlignment(HorizontalAlignment.CENTER); + //垂直居中 + titleStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //设置颜色 + titleStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); + titleStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + titleStyle.setBorderRight(BorderStyle.THIN); + titleStyle.setBorderLeft(BorderStyle.THIN); + titleStyle.setBorderBottom(BorderStyle.THIN); + titleStyle.setBorderTop(BorderStyle.THIN); + titleStyle.setWrapText(true); + return titleStyle; + } + + @Override + public CellStyle getHeaderStyle(short color) { + CellStyle titleStyle = workbook.createCellStyle(); + Font font = workbook.createFont(); + font.setFontHeightInPoints((short) 12); + titleStyle.setFont(font); + titleStyle.setAlignment(HorizontalAlignment.CENTER); + titleStyle.setVerticalAlignment(VerticalAlignment.CENTER); + return null; + } + + /** + * desc:隔行样式 + * @param workbook + * @param isWarp + * @return + */ + @Override + public CellStyle stringNoneStyle(Workbook workbook, boolean isWarp) { + CellStyle style = workbook.createCellStyle(); + //style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setDataFormat(STRING_FORMAT); + if (isWarp) { + style.setWrapText(true); + } + + return style; + } + + /** + * desc:隔行样式 + * @param workbook + * @param isWarp + * @return + */ + @Override + public CellStyle stringSeptailStyle(Workbook workbook, boolean isWarp) { + CellStyle style = workbook.createCellStyle(); + //style.setAlignment(HorizontalAlignment.CENTER); + style.setVerticalAlignment(VerticalAlignment.CENTER); + style.setDataFormat(STRING_FORMAT); + if (isWarp) { + style.setWrapText(true); + } + return style; + } + +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/excel/ExportMultiView.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/ExportMultiView.java similarity index 91% rename from epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/excel/ExportMultiView.java rename to epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/ExportMultiView.java index ff69b2c4b0..6169e83075 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/excel/ExportMultiView.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/ExportMultiView.java @@ -1,4 +1,4 @@ -package com.epmet.commons.tools.utils.excel; +package com.epmet.commons.tools.utils.poi.excel; import cn.afterturn.easypoi.excel.entity.ExportParams; import lombok.AllArgsConstructor; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/FreezeAndFilter.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/FreezeAndFilter.java new file mode 100644 index 0000000000..6b5d5e55c5 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/FreezeAndFilter.java @@ -0,0 +1,46 @@ +package com.epmet.commons.tools.utils.poi.excel; + +/** + * desc:easyExcel 冻结标题 + * + * @author: LiuJanJun + * @date: 2022/4/11 10:27 上午 + * @version: 1.0 + */ + +import com.alibaba.excel.write.handler.SheetWriteHandler; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.util.CellRangeAddress; + + +public class FreezeAndFilter implements SheetWriteHandler { + + public int colSplit = 0, rowSplit = 1, leftmostColumn = 0, topRow = 1; + public String autoFilterRange = "1:1"; + private boolean isFilter; + + public FreezeAndFilter() { + + } + public FreezeAndFilter(boolean isFilter) { + this.isFilter = isFilter; + } + + @Override + public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { + + } + + @Override + public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { + Sheet sheet = writeSheetHolder.getSheet(); + sheet.createFreezePane(colSplit, rowSplit, leftmostColumn, topRow); + //不让他筛选 + if (isFilter){ + sheet.setAutoFilter(CellRangeAddress.valueOf(autoFilterRange)); + } + } +} + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index e55db49a65..cd77750bee 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -11,7 +11,7 @@ import com.epmet.commons.tools.feign.ResultDataResolver; 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.excel.ExportMultiView; +import com.epmet.commons.tools.utils.poi.excel.ExportMultiView; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.constant.OrgConstant; import com.epmet.dataaggre.dao.datastats.DataStatsDao; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcFollowUpRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcFollowUpRecordController.java index 7b0b375207..b3ed2ab6d8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcFollowUpRecordController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcFollowUpRecordController.java @@ -12,6 +12,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; 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.FreezeAndFilter; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.DefaultGroup; @@ -115,7 +116,7 @@ public class IcFollowUpRecordController { String today= DateUtils.format(new Date(),DateUtils.DATE_PATTERN_MMDD); String fileName = formDTO.getName().concat("随访记录").concat(today).concat(".xlsx"); excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcFollowUpRecordDTO.class).build(); - WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); PageData data = null; do { data = icFollowUpRecordService.page(formDTO); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java index c03c2b50db..17502c65e0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java @@ -15,6 +15,7 @@ import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.*; +import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.IcNatDTO; @@ -288,7 +289,7 @@ public class IcNatController implements ResultDataResolver { excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), NatListCommonExcelResultDTO.class).build(); } - WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); PageData data = null; do { data = icNucleinService.natList(formDTO); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index fbc82de26d..1f0a127b5f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -82,7 +82,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.stream.Collectors; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java index f6b0df98cc..9bae2a9826 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java @@ -16,6 +16,7 @@ import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.*; +import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constant.IcResiUserConstant; import com.epmet.constants.ImportTaskConstants; @@ -203,7 +204,7 @@ public class IcTripReportRecordController implements ResultDataResolver { String today= DateUtils.format(new Date(),DateUtils.DATE_PATTERN_MMDD); String fileName = "行程上报信息".concat(today); excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcTripReportRecordDTO.class).build(); - WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); PageData data = null; do { data = icTripReportRecordService.page(formDTO); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java index 2f02950d92..297c30ae15 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java @@ -15,6 +15,7 @@ import com.epmet.commons.tools.feign.ResultDataResolver; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.*; +import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constants.ImportTaskConstants; import com.epmet.dto.form.ImportTaskCommonFormDTO; @@ -199,7 +200,7 @@ public class IcVaccineController implements ResultDataResolver { excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcVaccineListCommonExcelResultDTO.class).build(); } - WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); PageData data = null; do { data = icVaccineService.icVaccineList(formDTO); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java index 78d860fe7e..c3ba03acb8 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java @@ -42,6 +42,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.YuShanSysApiService; +import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter; import com.epmet.constant.SystemMessageType; import com.epmet.dao.PatrolRoutineWorkDao; import com.epmet.dao.StatsStaffPatrolRecordDailyDao; @@ -224,7 +225,7 @@ public class PatrolRoutineWorkServiceImpl extends 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 Date: Mon, 11 Apr 2022 14:23:08 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=BF=BD=E7=95=A5=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/epmet/dto/result/IcVaccineListResultDTO.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcVaccineListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcVaccineListResultDTO.java index 3bd51e39eb..87480268cf 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcVaccineListResultDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcVaccineListResultDTO.java @@ -25,9 +25,9 @@ public class IcVaccineListResultDTO implements Serializable { */ @ExcelIgnore private String agencyId; - + @ExcelIgnore private String vaccineId; - + @ExcelIgnore private String userId; /** From a18376cc333c2d8829a41c06562ce6cb1b73213d Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 11 Apr 2022 14:25:27 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E9=95=BF=E5=BA=A6=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/IcTripReportRecordDTO.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java index 47d23549da..19c09dc284 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java @@ -212,7 +212,7 @@ public class IcTripReportRecordDTO implements Serializable { @ExcelIgnore private Boolean heSuanCheck; - @ColumnWidth(20) + @ColumnWidth(25) @ExcelProperty("核算检测关注名单") private String heSuanCheckDesc; -} \ No newline at end of file +} From 757eb8dbca4ad66a3d7c3dcac4b907ee009c2cc7 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 11 Apr 2022 14:27:27 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=8E=BB=E6=8E=89=20=E9=AB=98=E5=BA=A6?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java index d75b510bec..378ea5a725 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ExcelUtils.java @@ -57,7 +57,7 @@ public class ExcelUtils { Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list); Sheet sheet1 = workbook.getSheetAt(0); sheet1.setDefaultColumnWidth(50*256); - sheet1.setDefaultRowHeight((short)(2*256)); + //sheet1.setDefaultRowHeight((short)(2*256)); ServletOutputStream out = ExcelUtils.getOutputStreamForExcel(fileName,response); workbook.write(out); out.flush(); From 34ad4fd2e96bcbe6690f45008aa89a201facd741 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 11 Apr 2022 14:36:14 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E9=87=8C=20=E7=9A=84=E9=BB=91=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/attention_nat_template.xlsx | Bin 8697 -> 8729 bytes .../excel/attention_vaccination_template.xlsx | Bin 8693 -> 8716 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/attention_nat_template.xlsx b/epmet-user/epmet-user-server/src/main/resources/excel/attention_nat_template.xlsx index 83a0c648b3dac35ee8ef6d64b91d12adde300a18..e41ebaf0a701ebbf335adc241c29cd48721ec35c 100644 GIT binary patch delta 4437 zcmZ9QbyU>N8pn5G2}$W#YUvWBS-PYJNdW;_I+k8S!XMrJ1Ef_-l#V4tz*jm9Ksu$7 z4kg9w``&x*x#vEA%$)O_@60pvoipdmXD(E8)#^YfUbalMzYv%MWdTI=yYJqP4&b~| zU6ZdbY%+1++J=0GQBo?iNe*{5Q`Fnd#57$86_k=H-@RM3)c*Nk|M;VU#3+H;!P1@CmX7gG`AMvxij1aGq#PupR;DGHr8GnP4Z&)XQC|`!uXa&qx57IFjR-N7E8D5U z`UZ3N*^S5V`fF?#2a#PkFNJt(=~NsLvQ66W^6x7GYJ zNA)2VeeDcfdI1bLF0RcR9u*v_rp@l(vOF(6C?WN6-;XO`_Mhh%2rSkb8%a7 z{@gf3=~TO(TC6=ZIJW0b-W(y{JaW419*{#B`~$XdSze%iD)XGhqiONUvJ(kckt{@xV^xpI=9b|GrZB~e>?VryX)@o6PRfqo zb5G{W8?@#vnmL`8ug5LCR>@DCMgt{v_QwaE6?&!i5KE^=RB`Tmw|!YZ@{R`c+{1mm z452*O#H^h7+!49e8Bh7tp3h)+&86RWP3A^8-p?uiB+(1#Y|*Q$>yilmzjA=hoUm?#(kdPlsFHfyS%UVZtExgiwJAIKoTeWA4ww{r_uZ3{; zv`dDYPA!S-vJ;bS(Hvbng1%=LA4P=a8U2+>IiB@yPI>`<3cgpTjxt}BB6gOIFL#mA zFaH%u`lgB8zm^sC{B7_K!;1QVuSp7`6j_He?r#C$dzT@y14}? z;(PnO65}_tSML1+XwN6zofG5)7X7S2s7AmhL5J~bL)NO*nO3~7dObin>(Q(fAbQ#@ z)pdEC)bT{M{kU4-p>}@R*qy!my)BBfIltvs8~(bnYFEzRlh_zoVqx)Vzht6 z^f?^qQ*K^_4BrajsD$mDNA$?w_q5AXEGhD5H}TmJKu?T3%V3-yU{BruY5MtWg$)jH z#fi2xbVvkhv@iHW0eo-&{(xUf#8CCy4ux;K7FuSQOHP*LfXlE&ziBf3Fa>op$w7$( z`KL}xN7rGNf}#vY8N83V`J|^kX$6PhTF>3dqNUV02$DbvJ50I_d{dXO;L>b#V8rTQ zGxb*LO6wdIKYW+fm)P#L{xZP}6;2F1d=(%^^7x7WE(zP&Nc&i5;J{CeuP5qiCm z__-AiI5S@du)_AJ7G6wvi$sJU$XFHkDifb+e4&md+s@U=Z^E11d@O4{rO^D+y=H9q zUg^(b{&Jlv@#R`ePvc~DD`5jWQ{gU(N0zupejOIIQ*cM~$Jk#6{N~jbZmDWAMvoeQ zVCyCtEUMAy>OSu~s+Mk9+8xD!6p4|iJx3Sq@aM^?5c}#iji=2|diOML9_w7YIAK3z zrWg*@EoYIIqK>#3nI>^uW^t>&lrbSIe5&x;oJp(`L#Q{f1GUxk9}PClf@PDF@Hwc* zBxpF&+uYJq^Qy1|kNt$DWH%h$xMMMuZ=D<_bR54HmDs+^7U8+_5ShyZ1QJk{6K2?I z%gG-^Pdd=)uf{EMG!L$n=_GT+J6lRX2f*Jwco-Xu&@IK;Tu!?t|HUC%ecb)!pgX^2 zT;Z^znbFL@bKeK`Za{WovY+=!yZ<%mz5PHGx$k6s3k}DN5VGw-_Wk8Ys$|wCiy7iq*#(Yp%<+NBc6@prNxTiWoSL1NKVu;bsEVt zf0Ij7G8A#++K?5OQTO`rgYl4Ni}0Hm!@C;y-+4DU=TP+8qSRpk5w6KaG_Un!A0OZ? zK;c0>A)e(p`N^0vy6m<133^?XAW4mR&d)Oqu}UB>!jwzO>)$WmgeBKt8?Y8Z`Y0`a zuoVJ^V_1Hof-CoA2&|WW+7Qf=sk~DCSu1-u>X`qjzr(({Zj7p4!lpR~sq@5n&B1yu@|6z6dH+4%yy&Prj$8N$#8G{Zk^7lK`)E&p~=OO`oft2Vr($ zY#4jd=Ec=2F-h5(Lv=8+;`SabY)W)3t?|0hFZ@C5kH47s2K6|~vTki?5f5n@H{Llj#@-W7>~XN7ycCGO|P0(&3a z`a8JL{kY{B+WtMykpdCVZh~ZYG+Ck$HMX|}%vsuEErL(759UVW zqt*a1B5}dngcunW1vuhEdHSoj`O%{w52$g#ZgLizLafhFr}RGerAvhCHheZl@^a;5 zQ1Kw;x0g)N_2J4YIZxM(aimZ8E*>!jNF>iE{;^kc1;-9&RV9R>5~tBKT8QWlOnwlh z_PIzjNiWH3mFF`{(thDR%5Z9f_XiBToOys&P^5IZ6a%+yn?q2!FKP#mZj1sUv@7z> zW$*Wi^Xb}Vy5*QqKlN$cQj=M9dz6wWN8I4>DMOgcB^?kXc{w56|2t4ILo1uwmOZEx zlgCXVbo((GohW;c<?q7Ksx+O<5~ z!Ax=tPs=HBOB!FPR3*txS3h*l<29uxK?*7B=N_*Dg((Nu!Wp_}TPv+~8c$yth+ghm z&I^|eJ>Z@^2W3|kpC|ACeu_ERKQ94YWw_NA_7HSUC>}F&$%IvLQW!e!OFBDSMFwK zE8t*|K3rA=q5FpBm`bOZzSze8JzCeV`R2+KVuWfV5iq-Ntf{BQGhiptA&6UDY+q7Q zRotlzXM0_Pv9g6lvDk<@8W{jGKKOU-y&)Ur9Bjf&|{3eo~n zgLAo2({G|a?Bw+#S?E?Yl){(D#r4tVY0ceZO~b62tcrIP6))~M;v#Dgp*lOcZ^#RY z%cD7ZmEig2H-vjbySN>)z&aZju5^j6OP2YyCfMQ1ja`CG5BGi&?%IG?9*mqrktje!;XBkuYNvLpVQ~(Cf5*91jg9d$Djnmv1bBp zm}o#|7Jk?W0|WwoW2FUAER4`YFoXsC&&LBbs|@^ac)t1b`hWVzcd9@A-vNcN{b^S~ z7gi+#3fMnn0HP2~;0P-j4m}*4XO+NFgoCnhCQz7-AIFIf^rWK&IT5$vBmajK|2tU$ zn+&uToMMy2nZyT=@M-=T@ZS^vQ=R;8^`H26bvIBSAqN!&lMo2_e|h%LTIl~R`j5&Q N96$)*Uo-!m{1;ooA3gv8 delta 4434 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 delta 4397 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