From 5709386cee30f9a654e1a53329f08bce8d75ed04 Mon Sep 17 00:00:00 2001 From: Guo XIn <371864209@qq.com> Date: Tue, 10 Oct 2023 14:43:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=EF=BC=9A=E7=BB=BC=E5=90=88?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E7=B3=BB=E7=BB=9F=E6=95=B0=E6=8D=AE=E8=A1=A8?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=A2=9E=E5=8A=A0=E9=BB=98=E8=AE=A4=E8=A1=A8?= =?UTF-8?q?=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bianmu/export/MetaTableExport.java | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/shandan-system/src/main/java/com/keyware/shandan/bianmu/export/MetaTableExport.java b/shandan-system/src/main/java/com/keyware/shandan/bianmu/export/MetaTableExport.java index 8fcf74c..6205955 100644 --- a/shandan-system/src/main/java/com/keyware/shandan/bianmu/export/MetaTableExport.java +++ b/shandan-system/src/main/java/com/keyware/shandan/bianmu/export/MetaTableExport.java @@ -1,6 +1,7 @@ package com.keyware.shandan.bianmu.export; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.poi.excel.BigExcelWriter; import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSONArray; @@ -9,9 +10,14 @@ import com.keyware.shandan.bianmu.entity.MetadataBasicVo; import com.keyware.shandan.bianmu.service.MetadataService; import com.keyware.shandan.common.util.StringUtils; import com.keyware.shandan.frame.config.component.AppContext; +import com.keyware.shandan.system.entity.SysOrg; +import com.keyware.shandan.system.entity.SysUser; +import com.keyware.shandan.system.service.SysUserService; +import org.apache.poi.ss.usermodel.Font; import java.io.File; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.function.Consumer; @@ -21,6 +27,7 @@ public class MetaTableExport extends ExportProgress { private final MetadataBasicVo metadata; private final String fileName; private final MetadataService metadataService; + private final SysUserService userService; // 所有行的集合 private final List> rowList = new ArrayList<>(); @@ -32,6 +39,7 @@ public class MetaTableExport extends ExportProgress { public MetaTableExport(String userId, MetadataBasicVo metadata) { super(userId); + this.userService = AppContext.getContext().getBean(SysUserService.class); this.metadataService = AppContext.getContext().getBean(MetadataService.class); this.metadata = metadata; String name = metadata.getMetadataComment(); @@ -49,10 +57,13 @@ public class MetaTableExport extends ExportProgress { // 添加第一行,字段列名注释集合,当做表格的第一行 rowList.add(colsArray.stream().map((json) -> { JSONObject field = (JSONObject) json; - String comment = field.getString("comment"); String colName = field.getString("columnName"); colNameList.add(colName); - return colName + (StringUtils.hasText(comment) ? "[" + comment + "]" : ""); + return colName; + }).collect(Collectors.toList())); + rowList.add(colsArray.stream().map((json) -> { + JSONObject field = (JSONObject) json; + return field.getString("comment"); }).collect(Collectors.toList())); @@ -73,8 +84,10 @@ public class MetaTableExport extends ExportProgress { this.setTitle("正在写入缓存"); this.autoAddStep(); + // 添加表头 + addTableHeader(writer); //一次性写出内容 - writer.write(rows); + writer.write(rows, true); this.setTitle("正在写入文件"); this.autoAddStep(); @@ -92,6 +105,29 @@ public class MetaTableExport extends ExportProgress { } } + private void addTableHeader(BigExcelWriter writer) { + SysUser user = userService.getById(getUserId()); + SysOrg org = user.getOrg(); + String tableName = metadata.getMetadataComment(); + if (!StringUtils.hasText(tableName)) { + tableName = metadata.getMetadataName(); + } + int middleOffset = Math.max(colNameList.size() / 2, 1); + int rowIndex = writer.getCurrentRow(); + + writer.merge(rowIndex, rowIndex + 1, 0, 0, "时间", true) + .merge(rowIndex, rowIndex + 1, 1, middleOffset - 1, DateUtil.formatDateTime(new Date()), true) + .merge(rowIndex, rowIndex + 1, middleOffset, middleOffset, "表名", true) + .merge(rowIndex, rowIndex + 1, middleOffset + 1, colNameList.size() - 1, tableName, true) + // 另起一行 + .passRows(2) + .merge(rowIndex + 2, rowIndex + 3, 0, 0, "姓名", true) + .merge(rowIndex + 2, rowIndex + 3, 1, middleOffset - 1, user.getUserName(), true) + .merge(rowIndex + 2, rowIndex + 3, middleOffset, middleOffset, "部门", true) + .merge(rowIndex + 2, rowIndex + 3, middleOffset + 1, colNameList.size() - 1, org.getOrgName(), true) + .passRows(2); + } + @Override public long getStepTotal() { return 4;