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