From bcd9cb83cbbb36217cb99ced7bf1fa3cb26bd53c Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 28 四月 2025 16:59:51 +0800
Subject: [PATCH] #wms端生成任务优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java |  103 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 65 insertions(+), 38 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
index 922d42f..5f6e0c4 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/utils/ExcelUtil.java
@@ -2,16 +2,19 @@
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
 import cn.afterturn.easypoi.excel.entity.ImportParams;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.vincent.rsf.framework.common.Cools;
+import com.vincent.rsf.framework.common.SpringUtils;
+import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate;
 import com.vincent.rsf.server.manager.entity.excel.annotation.ExcelComment;
+import com.vincent.rsf.server.system.entity.Fields;
+import com.vincent.rsf.server.system.service.FieldsService;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -26,7 +29,6 @@
  */
 @Slf4j
 public class ExcelUtil {
-
     public static void build(Workbook workbook, HttpServletResponse response) {
         response.reset();
         Http.cors(response);
@@ -34,20 +36,27 @@
         try {
             response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("export", "UTF-8"));
             workbook.write(response.getOutputStream());
-        } catch (IOException ignore) {}
+        } catch (IOException ignore) {
+        }
     }
 
     public static <T> Workbook create(List<T> list, Class<T> clz) {
-        return  create(list, clz, false);
+        return create(list, clz, false);
     }
 
     public static <T> Workbook create(List<T> list, Class<T> clz, boolean flagTemplate) {
-        HSSFWorkbook workbook = new HSSFWorkbook();
+        XSSFWorkbook workbook = new XSSFWorkbook();
         Sheet sheet = workbook.createSheet(clz.getSimpleName());
 
         Row header = sheet.createRow(0);
         Field[] fields = Cools.getAllFields(clz);
         int headerIdx = 0;
+        FieldsService itemService = SpringUtils.getBean(FieldsService.class);
+        List<Fields> sysFields = itemService.list(new LambdaQueryWrapper<Fields>()
+                .eq(Fields::getStatus, 1)
+                .eq(Fields::getFlagEnable, 1));
+
+
         for (Field field : fields) {
             if (Modifier.isFinal(field.getModifiers())
                     || Modifier.isStatic(field.getModifiers())
@@ -56,9 +65,7 @@
             }
             String memo = "Undefined";
             if (flagTemplate) {
-                if (field.isAnnotationPresent(ExcelComment.class)) {
-                    memo = field.getAnnotation(ExcelComment.class).value();
-                }
+                memo = field.getName();
             } else {
                 if (field.isAnnotationPresent(Excel.class)) {
                     memo = field.getAnnotation(Excel.class).name();
@@ -70,39 +77,53 @@
             header.createCell(headerIdx).setCellValue(memo);
             headerIdx++;
         }
-
-        int rowIndex = 1;
-        for (T t : list) {
-            Row row = sheet.createRow(rowIndex++);
-
-            int cellIndex = 0;
-            for (Field field : fields) {
-                if (Modifier.isFinal(field.getModifiers())
-                        || Modifier.isStatic(field.getModifiers())
-                        || Modifier.isTransient(field.getModifiers())) {
-                    continue;
-                }
-
-                // 姝よ寰堥噸瑕侊紝鐗瑰埆鏄瓧娈典负private鏃�
-                field.setAccessible(true);
-                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));
+        if (clz.equals(MatnrsTemplate.class)) {
+            //娣诲姞鎵╁睍瀛楁鍒悕
+            if (!sysFields.isEmpty()) {
+                for (Fields field : sysFields) {
+                    if (flagTemplate) {
+                        header.createCell(headerIdx).setCellValue(field.getFields());
                     } else {
-                        row.createCell(cellIndex).setCellValue(value.toString());
+                        header.createCell(headerIdx).setCellValue(field.getFieldsAlise());
                     }
+                    headerIdx++;
                 }
-                cellIndex++;
             }
         }
 
+        int rowIndex = 1;
+        if (!Objects.isNull(list)) {
+            for (T t : list) {
+                Row row = sheet.createRow(rowIndex++);
+
+                int cellIndex = 0;
+                for (Field field : fields) {
+                    if (Modifier.isFinal(field.getModifiers())
+                            || Modifier.isStatic(field.getModifiers())
+                            || Modifier.isTransient(field.getModifiers())) {
+                        continue;
+                    }
+
+                    // 姝よ寰堥噸瑕侊紝鐗瑰埆鏄瓧娈典负private鏃�
+                    field.setAccessible(true);
+                    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 <= fields.length; i++) {
             sheet.autoSizeColumn(i);
         }
@@ -113,15 +134,21 @@
     /**
      * 娣诲姞瀵煎叆excel閰嶇疆鍙傛暟
      * 娉細榛樿閰嶇疆鍙弧瓒冲綋鍓嶉渶姹�
+     *
      * @return
      */
     public static ImportParams getDefaultImportParams() {
-        ImportParams params = new ImportParams();
-        return params;
+        ImportParams importParams = new ImportParams();
+        importParams.setTitleRows(0);
+//        importParams.setNeedVerify(true);
+        importParams.setHeadRows(1);
+        importParams.setSheetNum(1);
+        return importParams;
     }
 
     /**
      * 鏍规嵁 {@code tClass} 鐩稿叧鎴愬憳鍙橀噺鐨� {@link ExcelComment#example()} 瀛楁鍒涘缓妯℃嫙鏁版嵁锛屾殏涓嶆敮鎸� 澶嶆潅绫诲瀷
+     *
      * @param tClass
      * @return
      */

--
Gitblit v1.9.1