我是靠谱客的博主 朴素信封,这篇文章主要介绍jeecg导出改装(多表关联导出 ),现在分享给大家,希望可以做个参考。

前言

jeecg导出 只能导出单表或者主子表。但是往往写的报表(关联很多表)也导出需要

源代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/** * 导出excel * * @param request */ protected ModelAndView exportXls(HttpServletRequest request, T object, Class<T> clazz, String title) { // Step.1 组装查询条件 QueryWrapper<T> queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap()); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // Step.2 获取导出数据 List<T> pageList = service.list(queryWrapper); List<T> exportList = null; // 过滤选中数据 String selections = request.getParameter("selections"); if (oConvertUtils.isNotEmpty(selections)) { List<String> selectionList = Arrays.asList(selections.split(",")); exportList = pageList.stream().filter(item -> selectionList.contains(getId(item))).collect(Collectors.toList()); } else { exportList = pageList; } // Step.3 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下 mv.addObject(NormalExcelConstants.CLASS, clazz); mv.addObject(NormalExcelConstants.PARAMS, new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title)); mv.addObject(NormalExcelConstants.DATA_LIST, exportList); return mv; }

改动之后

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/** * 自定义导出excel * * @param request */ protected ModelAndView customExportXls(HttpServletRequest request, T object, Class<T> clazz, String title,List<T> pageList) { // Step.1 组装查询条件 // QueryWrapper<T> queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap()); // Step.2 获取导出数据 // List<T> pageList = service.list(queryWrapper); List<T> exportList = null; LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 过滤选中数据 String selections = request.getParameter("selections"); if (oConvertUtils.isNotEmpty(selections)) { List<String> selectionList = Arrays.asList(selections.split(",")); exportList = pageList.stream().filter(item -> selectionList.contains(getId(item))).collect(Collectors.toList()); } else { exportList = pageList; } // Step.3 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下 mv.addObject(NormalExcelConstants.CLASS, clazz); mv.addObject(NormalExcelConstants.PARAMS, new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title)); mv.addObject(NormalExcelConstants.DATA_LIST, exportList); return mv; }
  1. 其实改动并不大 只需要将你查询的集合 传进来
    把List pageList = service.list(queryWrapper); 给替换掉就行了。

业务代码实现

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/** * 导出excel * * @param request * @param dormSubsidy */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, DormSubsidy dormSubsidy) { QueryWrapper<DormSubsidy> queryWrapper = QueryGenerator.initQueryWrapper(dormSubsidy, request.getParameterMap()); queryWrapper.orderByDesc("gzfdd"); List<DormSubsidy> list = dormSubsidyService.list(queryWrapper); return super.customExportXls(request,dormSubsidy,DormSubsidy.class,"公租房补贴",list); }

最后

以上就是朴素信封最近收集整理的关于jeecg导出改装(多表关联导出 )的全部内容,更多相关jeecg导出改装(多表关联导出内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部