From dec8951aae400e54f6ee83a8f95867dba9da8af1 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期五, 23 五月 2025 17:17:33 +0800
Subject: [PATCH] [钣金计划大表] 优化:焊缝统计导出Excel样式

---
 aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java                         |  113 ++++++++++++++++++++++++-------------
 aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java |   11 ---
 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java    |    2 
 3 files changed, 76 insertions(+), 50 deletions(-)

diff --git a/aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java b/aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java
index 6f62c0a..6238fdd 100644
--- a/aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java
+++ b/aps-common/aps-common-core/src/main/java/com/aps/common/core/utils/poi/ExcelUtil.java
@@ -692,33 +692,10 @@
     {
         // 鍐欏叆鍚勬潯璁板綍,姣忔潯璁板綍瀵瑰簲excel琛ㄤ腑鐨勪竴琛�
         Map<String, CellStyle> styles = new HashMap<String, CellStyle>();
-        CellStyle style = wb.createCellStyle();
-        style.setAlignment(HorizontalAlignment.CENTER);
-        style.setVerticalAlignment(VerticalAlignment.CENTER);
-        Font titleFont = wb.createFont();
-        titleFont.setFontName("Arial");
-        titleFont.setFontHeightInPoints((short) 16);
-        titleFont.setBold(true);
-        style.setFont(titleFont);
-        DataFormat dataFormat = wb.createDataFormat();
-        style.setDataFormat(dataFormat.getFormat("@"));
+        CellStyle style = getTitleCellStyle(wb);
         styles.put("title", style);
 
-        style = wb.createCellStyle();
-        style.setAlignment(HorizontalAlignment.CENTER);
-        style.setVerticalAlignment(VerticalAlignment.CENTER);
-        style.setBorderRight(BorderStyle.THIN);
-        style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
-        style.setBorderLeft(BorderStyle.THIN);
-        style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
-        style.setBorderTop(BorderStyle.THIN);
-        style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
-        style.setBorderBottom(BorderStyle.THIN);
-        style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
-        Font dataFont = wb.createFont();
-        dataFont.setFontName("Arial");
-        dataFont.setFontHeightInPoints((short) 10);
-        style.setFont(dataFont);
+        style = getDataCellStyle(wb);
         styles.put("data", style);
 
         style = wb.createCellStyle();
@@ -737,6 +714,40 @@
         return styles;
     }
 
+    public static CellStyle getTitleCellStyle(Workbook wb) {
+        CellStyle style = wb.createCellStyle();
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        Font titleFont = wb.createFont();
+        titleFont.setFontName("Arial");
+        titleFont.setFontHeightInPoints((short) 16);
+        titleFont.setBold(true);
+        style.setFont(titleFont);
+        DataFormat dataFormat = wb.createDataFormat();
+        style.setDataFormat(dataFormat.getFormat("@"));
+        return style;
+    }
+
+    public static CellStyle getDataCellStyle(Workbook wb) {
+        CellStyle style;
+        style = wb.createCellStyle();
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        style.setBorderRight(BorderStyle.THIN);
+        style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+        style.setBorderLeft(BorderStyle.THIN);
+        style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+        style.setBorderTop(BorderStyle.THIN);
+        style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+        style.setBorderBottom(BorderStyle.THIN);
+        style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+        Font dataFont = wb.createFont();
+        dataFont.setFontName("Arial");
+        dataFont.setFontHeightInPoints((short) 10);
+        style.setFont(dataFont);
+        return style;
+    }
+
     /**
      * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸澶存牱寮�
      * 
@@ -752,27 +763,49 @@
             String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor());
             if (!headerStyles.containsKey(key))
             {
-                CellStyle style = wb.createCellStyle();
-                style.cloneStyleFrom(styles.get("data"));
-                style.setAlignment(HorizontalAlignment.CENTER);
-                style.setVerticalAlignment(VerticalAlignment.CENTER);
-                style.setFillForegroundColor(excel.headerBackgroundColor().index);
-                style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
-                Font headerFont = wb.createFont();
-                headerFont.setFontName("Arial");
-                headerFont.setFontHeightInPoints((short) 10);
-                headerFont.setBold(true);
-                headerFont.setColor(excel.headerColor().index);
-                style.setFont(headerFont);
-                // 璁剧疆琛ㄦ牸澶村崟鍏冩牸鏂囨湰褰㈠紡
-                DataFormat dataFormat = wb.createDataFormat();
-                style.setDataFormat(dataFormat.getFormat("@"));
+                CellStyle style = getHeaderStyle(wb, excel);
                 headerStyles.put(key, style);
             }
         }
         return headerStyles;
     }
 
+    private static CellStyle getHeaderStyle(Workbook wb, Excel excel) {
+        CellStyle style = wb.createCellStyle();
+        style.cloneStyleFrom(getDataCellStyle(wb));
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        style.setFillForegroundColor(excel.headerBackgroundColor().index);
+        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+        Font headerFont = wb.createFont();
+        headerFont.setFontName("Arial");
+        headerFont.setFontHeightInPoints((short) 10);
+        headerFont.setBold(true);
+        headerFont.setColor(excel.headerColor().index);
+        style.setFont(headerFont);
+        // 璁剧疆琛ㄦ牸澶村崟鍏冩牸鏂囨湰褰㈠紡
+        DataFormat dataFormat = wb.createDataFormat();
+        style.setDataFormat(dataFormat.getFormat("@"));
+        return style;
+    }
+    public static CellStyle getCommonHeaderStyle(Workbook wb) {
+        CellStyle style = wb.createCellStyle();
+        style.cloneStyleFrom(getDataCellStyle(wb));
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        style.setFillForegroundColor( IndexedColors.GREY_50_PERCENT.getIndex());
+        style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+        Font headerFont = wb.createFont();
+        headerFont.setFontName("Arial");
+        headerFont.setFontHeightInPoints((short) 10);
+        headerFont.setBold(true);
+        headerFont.setColor(IndexedColors.WHITE.getIndex());
+        style.setFont(headerFont);
+        // 璁剧疆琛ㄦ牸澶村崟鍏冩牸鏂囨湰褰㈠紡
+        DataFormat dataFormat = wb.createDataFormat();
+        style.setDataFormat(dataFormat.getFormat("@"));
+        return style;
+    }
     /**
      * 鏍规嵁Excel娉ㄨВ鍒涘缓琛ㄦ牸鍒楁牱寮�
      * 
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java
index 001df24..ce86fc5 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java
@@ -46,7 +46,7 @@
     /**
      * 瀵煎嚭鐒婄紳缁熻琛╒2鍒楄〃
      */
-    @RequiresPermissions("weldSeamStatistics:weldSeamStatisticsV2:export")
+    //@RequiresPermissions("weldSeamStatistics:weldSeamStatisticsV2:export")
     @Log(title = "鐒婄紳缁熻琛╒2", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2) throws IOException {
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java
index 32599c0..ec82f44 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java
@@ -229,14 +229,8 @@
 
         //2. 鍒涘缓Excel宸ヤ綔绨�
         SXSSFWorkbook wb = new SXSSFWorkbook(500);
-        ExcelUtil<ApsWeldSeamStatisticsV2> excelUtil = new ExcelUtil<>(ApsWeldSeamStatisticsV2.class);
-        excelUtil.init(list, "鐒婄紳缁熻琛�", "鐒婄紳缁熻琛�", Excel.Type.EXPORT);
-        excelUtil.createWorkbook();
-        excelUtil.createExcelField();
-
-        Map<String, CellStyle> cellStyleMap = excelUtil.createStyles(wb);
-        CellStyle titleStyle = cellStyleMap.get("header_WHITE_GREY_50_PERCENT");
-        CellStyle dataStyle = cellStyleMap.get("data_CENTER_BLACK_WHITE_STRING_false");
+        CellStyle titleStyle = ExcelUtil.getCommonHeaderStyle(wb);
+        CellStyle dataStyle =ExcelUtil.getDataCellStyle(wb);
 
         SXSSFSheet sheet = wb.createSheet("鐒婄紳缁熻琛�");
         List<LinkedHashMap<String,String>> titleList=  initRowTitle();
@@ -255,7 +249,6 @@
         //5. 鏋勫缓鏁版嵁琛�
         LinkedHashMap<String, String> first = titleList.get(0);
         ArrayList<Map.Entry<String, String>> titles = new ArrayList<>(first.entrySet());
-        List<String> stringFiledKeys=Arrays.asList("productionBase","isSatisfy");
         for (int rowInx = 0; rowInx < list.size(); rowInx++) {
             SXSSFRow dataRow = sheet.createRow(rowInx + 2);
             ApsWeldSeamStatisticsV2 statistics = list.get(rowInx);

--
Gitblit v1.9.3