Pre Merge pull request !623 from insist/5.X-dev

This commit is contained in:
insist 2024-12-21 08:42:01 +00:00 committed by Gitee
commit 6e8d6108b5
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
18 changed files with 76 additions and 65 deletions

View File

@ -77,16 +77,17 @@ public class ExcelUtil {
/** /**
* 导出excel * 导出excel
* *
* @param list 导出数据集合 * @param list 导出数据集合
* @param sheetName 工作表的名称 * @param excludeColumnFieldNames 排除的列字段名称集合
* @param clazz 实体类 * @param sheetName 工作表的名称
* @param response 响应体 * @param clazz 实体类
* @param response 响应体
*/ */
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, HttpServletResponse response) { public static <T> void exportExcel(List<T> list, Collection<String> excludeColumnFieldNames, String sheetName, Class<T> clazz, HttpServletResponse response) {
try { try {
resetResponse(sheetName, response); resetResponse(sheetName, response);
ServletOutputStream os = response.getOutputStream(); ServletOutputStream os = response.getOutputStream();
exportExcel(list, sheetName, clazz, false, os, null); exportExcel(list, excludeColumnFieldNames, sheetName, clazz, false, os, null);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException("导出Excel异常"); throw new RuntimeException("导出Excel异常");
} }
@ -95,17 +96,18 @@ public class ExcelUtil {
/** /**
* 导出excel * 导出excel
* *
* @param list 导出数据集合 * @param list 导出数据集合
* @param sheetName 工作表的名称 * @param excludeColumnFieldNames 排除的列字段名称集合
* @param clazz 实体类 * @param sheetName 工作表的名称
* @param response 响应体 * @param clazz 实体类
* @param options 级联下拉选 * @param response 响应体
* @param options 级联下拉选
*/ */
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, HttpServletResponse response, List<DropDownOptions> options) { public static <T> void exportExcel(List<T> list, Collection<String> excludeColumnFieldNames, String sheetName, Class<T> clazz, HttpServletResponse response, List<DropDownOptions> options) {
try { try {
resetResponse(sheetName, response); resetResponse(sheetName, response);
ServletOutputStream os = response.getOutputStream(); ServletOutputStream os = response.getOutputStream();
exportExcel(list, sheetName, clazz, false, os, options); exportExcel(list, excludeColumnFieldNames, sheetName, clazz, false, os, options);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException("导出Excel异常"); throw new RuntimeException("导出Excel异常");
} }
@ -114,17 +116,18 @@ public class ExcelUtil {
/** /**
* 导出excel * 导出excel
* *
* @param list 导出数据集合 * @param list 导出数据集合
* @param sheetName 工作表的名称 * @param excludeColumnFieldNames 排除的列字段名称集合
* @param clazz 实体类 * @param sheetName 工作表的名称
* @param merge 是否合并单元格 * @param clazz 实体类
* @param response 响应体 * @param merge 是否合并单元格
* @param response 响应体
*/ */
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, boolean merge, HttpServletResponse response) { public static <T> void exportExcel(List<T> list, Collection<String> excludeColumnFieldNames, String sheetName, Class<T> clazz, boolean merge, HttpServletResponse response) {
try { try {
resetResponse(sheetName, response); resetResponse(sheetName, response);
ServletOutputStream os = response.getOutputStream(); ServletOutputStream os = response.getOutputStream();
exportExcel(list, sheetName, clazz, merge, os, null); exportExcel(list, excludeColumnFieldNames, sheetName, clazz, merge, os, null);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException("导出Excel异常"); throw new RuntimeException("导出Excel异常");
} }
@ -133,18 +136,19 @@ public class ExcelUtil {
/** /**
* 导出excel * 导出excel
* *
* @param list 导出数据集合 * @param list 导出数据集合
* @param sheetName 工作表的名称 * @param excludeColumnFieldNames 排除的列字段名称集合
* @param clazz 实体类 * @param sheetName 工作表的名称
* @param merge 是否合并单元格 * @param clazz 实体类
* @param response 响应体 * @param merge 是否合并单元格
* @param options 级联下拉选 * @param response 响应体
* @param options 级联下拉选
*/ */
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, boolean merge, HttpServletResponse response, List<DropDownOptions> options) { public static <T> void exportExcel(List<T> list, Collection<String> excludeColumnFieldNames, String sheetName, Class<T> clazz, boolean merge, HttpServletResponse response, List<DropDownOptions> options) {
try { try {
resetResponse(sheetName, response); resetResponse(sheetName, response);
ServletOutputStream os = response.getOutputStream(); ServletOutputStream os = response.getOutputStream();
exportExcel(list, sheetName, clazz, merge, os, options); exportExcel(list, excludeColumnFieldNames, sheetName, clazz, merge, os, options);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException("导出Excel异常"); throw new RuntimeException("导出Excel异常");
} }
@ -153,43 +157,49 @@ public class ExcelUtil {
/** /**
* 导出excel * 导出excel
* *
* @param list 导出数据集合 * @param list 导出数据集合
* @param sheetName 工作表的名称 * @param excludeColumnFieldNames 排除的列字段名称集合
* @param clazz 实体类 * @param sheetName 工作表的名称
* @param os 输出流 * @param clazz 实体类
* @param os 输出流
*/ */
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, OutputStream os) { public static <T> void exportExcel(List<T> list, Collection<String> excludeColumnFieldNames, String sheetName, Class<T> clazz, OutputStream os) {
exportExcel(list, sheetName, clazz, false, os, null); exportExcel(list, excludeColumnFieldNames, sheetName, clazz, false, os, null);
} }
/** /**
* 导出excel * 导出excel
* *
* @param list 导出数据集合 * @param list 导出数据集合
* @param sheetName 工作表的名称 * @param excludeColumnFieldNames 排除的列字段名称集合
* @param clazz 实体类 * @param sheetName 工作表的名称
* @param os 输出流 * @param clazz 实体类
* @param options 级联下拉选内容 * @param os 输出流
* @param options 级联下拉选内容
*/ */
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, OutputStream os, List<DropDownOptions> options) { public static <T> void exportExcel(List<T> list, Collection<String> excludeColumnFieldNames, String sheetName, Class<T> clazz, OutputStream os, List<DropDownOptions> options) {
exportExcel(list, sheetName, clazz, false, os, options); exportExcel(list, excludeColumnFieldNames, sheetName, clazz, false, os, options);
} }
/** /**
* 导出excel * 导出excel
* *
* @param list 导出数据集合 * @param list 导出数据集合
* @param sheetName 工作表的名称 * @param excludeColumnFieldNames 排除的列字段名称集合
* @param clazz 实体类 * @see com.alibaba.excel.write.builder.AbstractExcelWriterParameterBuilder#excludeColumnFieldNames(java.util.Collection)
* @param merge 是否合并单元格 * @param sheetName 工作表的名称
* @param os 输出流 * @param clazz 实体类
* @param merge 是否合并单元格
* @param os 输出流
*/ */
public static <T> void exportExcel(List<T> list, String sheetName, Class<T> clazz, boolean merge, public static <T> void exportExcel(List<T> list, Collection<String> excludeColumnFieldNames, String sheetName, Class<T> clazz, boolean merge,
OutputStream os, List<DropDownOptions> options) { OutputStream os, List<DropDownOptions> options) {
ExcelWriterSheetBuilder builder = EasyExcel.write(os, clazz) ExcelWriterSheetBuilder builder = EasyExcel.write(os, clazz)
.autoCloseStream(false) .autoCloseStream(false)
// 自动适配 // 自动适配
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
// 忽略自定义列
.excludeColumnFieldNames(excludeColumnFieldNames)
// 大数值自动转换 防止失真 // 大数值自动转换 防止失真
.registerConverter(new ExcelBigNumberConvert()) .registerConverter(new ExcelBigNumberConvert())
.registerWriteHandler(new DataWriteHandler(list.get(0).getClass())) .registerWriteHandler(new DataWriteHandler(list.get(0).getClass()))

View File

@ -92,7 +92,7 @@ public class TestDemoController extends BaseController {
// for (TestDemoVo vo : list) { // for (TestDemoVo vo : list) {
// vo.setId(1234567891234567893L); // vo.setId(1234567891234567893L);
// } // }
ExcelUtil.exportExcel(list, "测试单表", TestDemoVo.class, response); ExcelUtil.exportExcel(list,List.of("userId"), "测试单表", TestDemoVo.class, response);
} }
/** /**

View File

@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@ -55,7 +56,7 @@ public class TestTreeController extends BaseController {
@GetMapping("/export") @GetMapping("/export")
public void export(@Validated TestTreeBo bo, HttpServletResponse response) { public void export(@Validated TestTreeBo bo, HttpServletResponse response) {
List<TestTreeVo> list = testTreeService.queryList(bo); List<TestTreeVo> list = testTreeService.queryList(bo);
ExcelUtil.exportExcel(list, "测试树表", TestTreeVo.class, response); ExcelUtil.exportExcel(list, null, "测试树表", TestTreeVo.class, response);
} }
/** /**

View File

@ -99,7 +99,7 @@ public class ExportExcelServiceImpl implements IExportExcelService {
return everyRowData; return everyRowData;
}); });
ExcelUtil.exportExcel(outList, "下拉框示例", ExportDemoVo.class, response, options); ExcelUtil.exportExcel(outList, null, "下拉框示例", ExportDemoVo.class, response, options);
} }
private String buildOptions(List<DemoCityData> cityDataList, Integer id) { private String buildOptions(List<DemoCityData> cityDataList, Integer id) {

View File

@ -50,7 +50,7 @@ public class SysLogininforController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysLogininforBo logininfor, HttpServletResponse response) { public void export(SysLogininforBo logininfor, HttpServletResponse response) {
List<SysLogininforVo> list = logininforService.selectLogininforList(logininfor); List<SysLogininforVo> list = logininforService.selectLogininforList(logininfor);
ExcelUtil.exportExcel(list, "登录日志", SysLogininforVo.class, response); ExcelUtil.exportExcel(list, null, "登录日志", SysLogininforVo.class, response);
} }
/** /**

View File

@ -48,7 +48,7 @@ public class SysOperlogController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysOperLogBo operLog, HttpServletResponse response) { public void export(SysOperLogBo operLog, HttpServletResponse response) {
List<SysOperLogVo> list = operLogService.selectOperLogList(operLog); List<SysOperLogVo> list = operLogService.selectOperLogList(operLog);
ExcelUtil.exportExcel(list, "操作日志", SysOperLogVo.class, response); ExcelUtil.exportExcel(list, null, "操作日志", SysOperLogVo.class, response);
} }
/** /**

View File

@ -53,7 +53,7 @@ public class SysClientController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysClientBo bo, HttpServletResponse response) { public void export(SysClientBo bo, HttpServletResponse response) {
List<SysClientVo> list = sysClientService.queryList(bo); List<SysClientVo> list = sysClientService.queryList(bo);
ExcelUtil.exportExcel(list, "客户端管理", SysClientVo.class, response); ExcelUtil.exportExcel(list, null, "客户端管理", SysClientVo.class, response);
} }
/** /**

View File

@ -48,7 +48,7 @@ public class SysConfigController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysConfigBo config, HttpServletResponse response) { public void export(SysConfigBo config, HttpServletResponse response) {
List<SysConfigVo> list = configService.selectConfigList(config); List<SysConfigVo> list = configService.selectConfigList(config);
ExcelUtil.exportExcel(list, "参数数据", SysConfigVo.class, response); ExcelUtil.exportExcel(list, null, "参数数据", SysConfigVo.class, response);
} }
/** /**

View File

@ -52,7 +52,7 @@ public class SysDictDataController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysDictDataBo dictData, HttpServletResponse response) { public void export(SysDictDataBo dictData, HttpServletResponse response) {
List<SysDictDataVo> list = dictDataService.selectDictDataList(dictData); List<SysDictDataVo> list = dictDataService.selectDictDataList(dictData);
ExcelUtil.exportExcel(list, "字典数据", SysDictDataVo.class, response); ExcelUtil.exportExcel(list, null, "字典数据", SysDictDataVo.class, response);
} }
/** /**

View File

@ -48,7 +48,7 @@ public class SysDictTypeController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysDictTypeBo dictType, HttpServletResponse response) { public void export(SysDictTypeBo dictType, HttpServletResponse response) {
List<SysDictTypeVo> list = dictTypeService.selectDictTypeList(dictType); List<SysDictTypeVo> list = dictTypeService.selectDictTypeList(dictType);
ExcelUtil.exportExcel(list, "字典类型", SysDictTypeVo.class, response); ExcelUtil.exportExcel(list, null, "字典类型", SysDictTypeVo.class, response);
} }
/** /**

View File

@ -51,7 +51,7 @@ public class SysPostController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysPostBo post, HttpServletResponse response) { public void export(SysPostBo post, HttpServletResponse response) {
List<SysPostVo> list = postService.selectPostList(post); List<SysPostVo> list = postService.selectPostList(post);
ExcelUtil.exportExcel(list, "岗位数据", SysPostVo.class, response); ExcelUtil.exportExcel(list, null, "岗位数据", SysPostVo.class, response);
} }
/** /**

View File

@ -57,7 +57,7 @@ public class SysRoleController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysRoleBo role, HttpServletResponse response) { public void export(SysRoleBo role, HttpServletResponse response) {
List<SysRoleVo> list = roleService.selectRoleList(role); List<SysRoleVo> list = roleService.selectRoleList(role);
ExcelUtil.exportExcel(list, "角色数据", SysRoleVo.class, response); ExcelUtil.exportExcel(list, null, "角色数据", SysRoleVo.class, response);
} }
/** /**

View File

@ -63,7 +63,7 @@ public class SysTenantController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysTenantBo bo, HttpServletResponse response) { public void export(SysTenantBo bo, HttpServletResponse response) {
List<SysTenantVo> list = tenantService.queryList(bo); List<SysTenantVo> list = tenantService.queryList(bo);
ExcelUtil.exportExcel(list, "租户", SysTenantVo.class, response); ExcelUtil.exportExcel(list, null, "租户", SysTenantVo.class, response);
} }
/** /**

View File

@ -69,7 +69,7 @@ public class SysTenantPackageController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysTenantPackageBo bo, HttpServletResponse response) { public void export(SysTenantPackageBo bo, HttpServletResponse response) {
List<SysTenantPackageVo> list = tenantPackageService.queryList(bo); List<SysTenantPackageVo> list = tenantPackageService.queryList(bo);
ExcelUtil.exportExcel(list, "租户套餐", SysTenantPackageVo.class, response); ExcelUtil.exportExcel(list, null, "租户套餐", SysTenantPackageVo.class, response);
} }
/** /**

View File

@ -72,7 +72,7 @@ public class SysUserController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysUserBo user, HttpServletResponse response) { public void export(SysUserBo user, HttpServletResponse response) {
List<SysUserExportVo> list = userService.selectUserExportList(user); List<SysUserExportVo> list = userService.selectUserExportList(user);
ExcelUtil.exportExcel(list, "用户数据", SysUserExportVo.class, response); ExcelUtil.exportExcel(list, null, "用户数据", SysUserExportVo.class, response);
} }
/** /**
@ -94,7 +94,7 @@ public class SysUserController extends BaseController {
*/ */
@PostMapping("/importTemplate") @PostMapping("/importTemplate")
public void importTemplate(HttpServletResponse response) { public void importTemplate(HttpServletResponse response) {
ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", SysUserImportVo.class, response); ExcelUtil.exportExcel(new ArrayList<>(), null, "用户数据", SysUserImportVo.class, response);
} }
/** /**

View File

@ -54,7 +54,7 @@ public class TestLeaveController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(TestLeaveBo bo, HttpServletResponse response) { public void export(TestLeaveBo bo, HttpServletResponse response) {
List<TestLeaveVo> list = testLeaveService.queryList(bo); List<TestLeaveVo> list = testLeaveService.queryList(bo);
ExcelUtil.exportExcel(list, "请假", TestLeaveVo.class, response); ExcelUtil.exportExcel(list, null, "请假", TestLeaveVo.class, response);
} }
/** /**

View File

@ -54,7 +54,7 @@ public class WfCategoryController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(WfCategoryBo bo, HttpServletResponse response) { public void export(WfCategoryBo bo, HttpServletResponse response) {
List<WfCategoryVo> list = wfCategoryService.queryList(bo); List<WfCategoryVo> list = wfCategoryService.queryList(bo);
ExcelUtil.exportExcel(list, "流程分类", WfCategoryVo.class, response); ExcelUtil.exportExcel(list, null, "流程分类", WfCategoryVo.class, response);
} }
/** /**

View File

@ -62,7 +62,7 @@ public class WfFormManageController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(WfFormManageBo bo, HttpServletResponse response) { public void export(WfFormManageBo bo, HttpServletResponse response) {
List<WfFormManageVo> list = wfFormManageService.queryList(bo); List<WfFormManageVo> list = wfFormManageService.queryList(bo);
ExcelUtil.exportExcel(list, "表单管理", WfFormManageVo.class, response); ExcelUtil.exportExcel(list, null, "表单管理", WfFormManageVo.class, response);
} }
/** /**