|
|
@@ -466,11 +466,11 @@ public class SysUserController extends BaseController {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 获取用户列表
|
|
|
+ * 导出用户数据
|
|
|
*/
|
|
|
- @RequiresPermissions("system:user:list")
|
|
|
+ @RequiresPermissions("system:user:export")
|
|
|
@PostMapping("/export")
|
|
|
- public void export(SysUser user, HttpServletResponse response) throws IOException {
|
|
|
+ public void export(SysUser user, HttpServletResponse response) {
|
|
|
List<UserExport> list=userService.down(user);
|
|
|
if (ObjectUtil.isEmpty(list)) {
|
|
|
throw new RuntimeException("导出数据为空!");
|
|
|
@@ -478,13 +478,6 @@ public class SysUserController extends BaseController {
|
|
|
if(list.size()>10000){
|
|
|
throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
|
|
|
}
|
|
|
-
|
|
|
-// response.setContentType("application/vnd.ms-excel");
|
|
|
-// response.setCharacterEncoding("utf-8");
|
|
|
-// String fileName = URLEncoder.encode("用户数据" + DateHelper.getDateString(new Date()), "UTF-8");
|
|
|
-// response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
|
|
|
- // 调用EasyExcel的导出方法
|
|
|
-// EasyExcel.write(response.getOutputStream(), UserExport.class).sheet("Sheet1").doWrite(list);
|
|
|
try {
|
|
|
// 设置响应头
|
|
|
response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("用户数据", "utf-8"));
|
|
|
@@ -494,8 +487,35 @@ public class SysUserController extends BaseController {
|
|
|
EasyExcel.write(response.getOutputStream(), UserExport.class)
|
|
|
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("用户数据").doWrite(list);
|
|
|
} catch (Exception e) {
|
|
|
-// EXCELLOG.info("预案演练导出失败{}",e.getMessage());
|
|
|
-// e.printStackTrace();
|
|
|
+ // 重置response
|
|
|
+ response.reset();
|
|
|
+ response.setContentType("application/json");
|
|
|
+ response.setCharacterEncoding("utf-8");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 导出管理人员数据
|
|
|
+ */
|
|
|
+ @RequiresPermissions("system:user:exportManager")
|
|
|
+ @PostMapping("/exportManager")
|
|
|
+ public void exportManager(SysUser user, HttpServletResponse response) {
|
|
|
+ List<UserExport> list=userService.down(user);
|
|
|
+ if (ObjectUtil.isEmpty(list)) {
|
|
|
+ throw new RuntimeException("导出数据为空!");
|
|
|
+ }
|
|
|
+ list=list.stream().filter(e -> e.getIsManager() != null).collect(Collectors.toList());
|
|
|
+ if(list.size()>10000){
|
|
|
+ throw new RuntimeException("导出数据量过大(单次导出限量10000条数据),请填写条件分批导出");
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ // 设置响应头
|
|
|
+ response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("用户数据", "utf-8"));
|
|
|
+ response.setContentType("application/octet-stream;charset=UTF-8");
|
|
|
+ response.setCharacterEncoding("utf-8");
|
|
|
+ // 数据导出
|
|
|
+ EasyExcel.write(response.getOutputStream(), UserExport.class)
|
|
|
+ .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("用户数据").doWrite(list);
|
|
|
+ } catch (Exception e) {
|
|
|
// 重置response
|
|
|
response.reset();
|
|
|
response.setContentType("application/json");
|