From 2b430bf3f4d6e84bd7ad351a6bcdd1d3a08c4630 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 17 二月 2024 10:38:22 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/RoleController.java | 15 -------
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/entity/Role.java | 4 +-
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/ExcelUtil.java | 93 +++++++++++++++++++++++++++++++++-------------
3 files changed, 70 insertions(+), 42 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/RoleController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/RoleController.java
index d76a594..d99c207 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/RoleController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/controller/RoleController.java
@@ -11,14 +11,11 @@
import com.zy.asrs.wcs.sys.entity.Role;
import com.zy.asrs.wcs.sys.service.RoleService;
import com.zy.asrs.wcs.utils.ExcelUtil;
-import com.zy.asrs.wcs.utils.Utils;
-import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -119,17 +116,7 @@
@PreAuthorize("hasAuthority('sys:role:list')")
@PostMapping("/role/export")
public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
- Workbook workbook = ExcelUtil.create();
- try {
- // 璁剧疆鍝嶅簲澶�
- response.reset();
- Utils.cors(response);
- response.setContentType("application/octet-stream; charset=utf-8");
- response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("export", "UTF-8"));
- workbook.write(response.getOutputStream());
- } finally {
- workbook.close();
- }
+ ExcelUtil.build(ExcelUtil.create(roleService.list(), Role.class), response);
}
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/entity/Role.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/entity/Role.java
index 7395569..a198217 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/entity/Role.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/sys/entity/Role.java
@@ -49,13 +49,13 @@
/**
* 鐘舵�� 1: 姝e父 0: 绂佺敤
*/
- @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ")
+ @ApiModelProperty(value= "鐘舵��")
private Integer status;
/**
* 鏄惁鍒犻櫎 1: 鏄� 0: 鍚�
*/
- @ApiModelProperty(value= "鏄惁鍒犻櫎 1: 鏄� 0: 鍚� ")
+ @ApiModelProperty(value= "鏄惁鍒犻櫎")
@TableLogic
private Integer deleted;
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/ExcelUtil.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/ExcelUtil.java
index ad6384a..c74ac0a 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/ExcelUtil.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/ExcelUtil.java
@@ -1,48 +1,89 @@
package com.zy.asrs.wcs.utils;
+import com.zy.asrs.framework.common.Cools;
+import io.swagger.annotations.ApiModelProperty;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
/**
* Created by vincent on 2/17/2024
*/
public class ExcelUtil {
- public static Workbook create() {
- // 鍒涘缓 Workbook 鍜� Sheet
+ public static void build(Workbook workbook, HttpServletResponse response) {
+ response.reset();
+ Utils.cors(response);
+ response.setContentType("application/octet-stream; charset=utf-8");
+ try {
+ response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("export", "UTF-8"));
+ workbook.write(response.getOutputStream());
+ } catch (IOException ignore) {}
+ }
+
+ public static <T> Workbook create(List<T> list, Class<T> clz) {
HSSFWorkbook workbook = new HSSFWorkbook();
- Sheet sheet = workbook.createSheet("杩愮淮鎶ヨ〃");
+ Sheet sheet = workbook.createSheet(clz.getSimpleName());
- // 鍒涘缓琛ㄥご
Row header = sheet.createRow(0);
- header.createCell(0).setCellValue("濮撳悕");
- header.createCell(1).setCellValue("骞撮緞");
- header.createCell(2).setCellValue("鎬у埆");
- header.createCell(3).setCellValue("鑱屼綅");
+ Field[] fields = Cools.getAllFields(clz);
+ int headerIdx = 0;
+ for (Field field : fields) {
+ if (Modifier.isFinal(field.getModifiers())
+ || Modifier.isStatic(field.getModifiers())
+ || Modifier.isTransient(field.getModifiers())) {
+ continue;
+ }
+ String memo = "鏈煡";
+ if (field.isAnnotationPresent(ApiModelProperty.class)) {
+ memo = field.getAnnotation(ApiModelProperty.class).value();
+ }
+ header.createCell(headerIdx).setCellValue(memo);
+ headerIdx++;
+ }
- // 娣诲姞涓�浜涙暟鎹�
- Row row1 = sheet.createRow(1);
- row1.createCell(0).setCellValue("寮犱笁");
- row1.createCell(1).setCellValue(28);
- row1.createCell(2).setCellValue("鐢�");
- row1.createCell(3).setCellValue("杩愮淮宸ョ▼甯�");
+ int rowIndex = 1;
+ for (T t : list) {
+ Row row = sheet.createRow(rowIndex++);
- Row row2 = sheet.createRow(2);
- row2.createCell(0).setCellValue("鏉庡洓");
- row2.createCell(1).setCellValue(32);
- row2.createCell(2).setCellValue("濂�");
- row2.createCell(3).setCellValue("椤圭洰缁忕悊");
+ int cellIndex = 0;
+ for (Field field : fields) {
+ if (Modifier.isFinal(field.getModifiers())
+ || Modifier.isStatic(field.getModifiers())
+ || Modifier.isTransient(field.getModifiers())) {
+ continue;
+ }
- Row row3 = sheet.createRow(3);
- row3.createCell(0).setCellValue("鐜嬩簲");
- row3.createCell(1).setCellValue(25);
- row3.createCell(2).setCellValue("鐢�");
- row3.createCell(3).setCellValue("寮�鍙戝伐绋嬪笀");
+ field.setAccessible(true); // 姝よ寰堥噸瑕侊紝鐗瑰埆鏄瓧娈典负private鏃�
+ Object value = null;
+ try {
+ value = field.get(t);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ if (value != null) {
+ if (value instanceof Date) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ row.createCell(cellIndex).setCellValue(sdf.format((Date) value));
+ } else {
+ row.createCell(cellIndex).setCellValue(value.toString());
+ }
+ }
+ cellIndex++;
+ }
+ }
- // 鎵ц鍗曞厓鏍艰嚜鍔ㄥ垪瀹�
- for (int i = 0; i <= 3; i++) {
+ for (int i = 0; i <= fields.length; i++) {
sheet.autoSizeColumn(i);
}
--
Gitblit v1.9.1