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