From 23bbee889008c89ca39632ff4c86724d57517906 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 11 二月 2023 15:10:53 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/entity/ctrl/CountEntity.java | 10 +++ src/main/java/com/lf/server/service/sys/ReportService.java | 77 ++++++++++++++++++++++++- src/main/java/com/lf/server/helper/ExcelHelper.java | 38 ++++++++++-- 3 files changed, 114 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/lf/server/entity/ctrl/CountEntity.java b/src/main/java/com/lf/server/entity/ctrl/CountEntity.java index e40ecf5..c84de19 100644 --- a/src/main/java/com/lf/server/entity/ctrl/CountEntity.java +++ b/src/main/java/com/lf/server/entity/ctrl/CountEntity.java @@ -5,6 +5,8 @@ * @author WWW */ public class CountEntity { + private Integer no; + private String m1; private String m2; @@ -18,6 +20,14 @@ public CountEntity() { } + public Integer getNo() { + return no; + } + + public void setNo(Integer no) { + this.no = no; + } + public String getM1() { return m1; } diff --git a/src/main/java/com/lf/server/helper/ExcelHelper.java b/src/main/java/com/lf/server/helper/ExcelHelper.java index 014463d..060653c 100644 --- a/src/main/java/com/lf/server/helper/ExcelHelper.java +++ b/src/main/java/com/lf/server/helper/ExcelHelper.java @@ -2,14 +2,17 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelReader; +import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.enums.WriteDirectionEnum; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.read.metadata.ReadSheet; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.fill.FillConfig; +import com.alibaba.excel.write.metadata.fill.FillWrapper; import com.lf.server.annotation.ExcelHead; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; /** * Excel甯姪绫� @@ -64,10 +67,31 @@ */ public static <T> ExcelHead getExcelHead(Class<?> clazz) { ExcelHead head = clazz.getAnnotation(ExcelHead.class); - if (head != null) { - return head; - } - return null; + return head; + } + + /** + * 鍐欏叆Excel妯℃澘 + * + * @param source 婧愭枃浠讹紙妯℃澘锛� + * @param target 鐩綍鏂囦欢 + * @param map 鏁版嵁婧� + */ + public static <T> void writeToTemplate(String source, String target, Map<String, List<T>> map) { + // 鏍规嵁妯℃澘鍐欏叆鏁版嵁锛屽鏋滅洰鏍囨枃浠朵笉瀛樺湪锛屽垯鑷姩鍒涘缓鏂囦欢 + ExcelWriter excelWriter = EasyExcel.write(target).withTemplate(source).build(); + + // 鍦ㄥ伐浣滅翱0涓啓鍏ユ暟鎹紝濡傛灉妯℃澘涓笉瀛樺湪缁冧範宸ヤ綔绨匡紝鍒欎細鍦ㄧ洰鏍囨枃浠朵腑鑷姩鍒涘缓 + WriteSheet writeSheet = EasyExcel.writerSheet(0).build(); + + // 鍨傜洿鍐欏叆鏁版嵁锛屽鏋滆姘村钩鍐欏叆锛屽皢VERTICAL鏇挎崲涓篐ORIZONTAL + FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).build(); + + // 鍐欏叆鏁版嵁 + map.forEach((k, v) -> excelWriter.fill(new FillWrapper(k, v), fillConfig, writeSheet)); + + // 缁撴潫鍐欏叆 + excelWriter.finish(); } } diff --git a/src/main/java/com/lf/server/service/sys/ReportService.java b/src/main/java/com/lf/server/service/sys/ReportService.java index cb77083..84a5a31 100644 --- a/src/main/java/com/lf/server/service/sys/ReportService.java +++ b/src/main/java/com/lf/server/service/sys/ReportService.java @@ -14,9 +14,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 鎶ュ憡妯℃澘 @@ -153,7 +151,17 @@ break; } } else { - // + switch (re.getCode()) { + case "countOperates ": + createCountOperatesExcel(source, target); + break; + case "countSizes": + createCountSizesExcel(source, target); + break; + default: + createCountServicesExcel(source, target); + break; + } } } @@ -215,6 +223,67 @@ } /** + * 鍒涘缓 鐢ㄦ埛娴侀噺缁熻 Excel + */ + public void createCountOperatesExcel(String source, String target) { + List<CountEntity> list = countOperates(); + if (null == list || list.isEmpty()) { + return; + } + + int rows = 1; + for (CountEntity ce : list) { + ce.setNo(rows++); + } + + Map<String, List<CountEntity>> map = new HashMap<>(); + map.put("data", list); + + ExcelHelper.writeToTemplate(source, target, map); + } + + /** + * 鍒涘缓 鏈嶅姟璋冪敤閲忕粺璁� Excel + */ + public void createCountServicesExcel(String source, String target) { + List<CountEntity> list = countServices(); + if (null == list || list.isEmpty()) { + return; + } + + int rows = 1; + for (CountEntity ce : list) { + ce.setNo(rows++); + } + + Map<String, List<CountEntity>> map = new HashMap<>(); + map.put("data", list); + + ExcelHelper.writeToTemplate(source, target, map); + } + + /** + * 鍒涘缓 鏁版嵁閲忕粺璁� Excel + */ + public void createCountSizesExcel(String source, String target) { + List<CountEntity> list = countSizes(); + if (null == list || list.isEmpty()) { + return; + } + + int rows = 1; + for (CountEntity ce : list) { + ce.setNo(rows++); + ce.setM2(FileHelper.getSizes(ce.getSizes())); + } + + Map<String, List<CountEntity>> map = new HashMap<>(); + map.put("data", list); + + ExcelHelper.writeToTemplate(source, target, map); + } + + /** * 鑾峰彇涓嬭浇瀹炰綋绫� */ private DownloadEntity getDownloadEntity(UserEntity ue, String file) { -- Gitblit v1.9.3