|
@@ -50,6 +50,7 @@ import java.io.File;
|
|
|
import java.io.FileInputStream;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
@@ -121,6 +122,11 @@ public class SysUserExportServiceImpl implements SysUserExportService {
|
|
|
|
|
|
// 查询用户列表 构建Excel数据
|
|
|
List<SysUser> users = this.listUsers(user, roles, query);
|
|
|
+ if (CollUtil.isEmpty(users)) {
|
|
|
+ log.info("用户列表为空");
|
|
|
+ throw new BizException("没有数据");
|
|
|
+ }
|
|
|
+
|
|
|
List<SysUserExcelModel> data = buildExcelModel(users);
|
|
|
|
|
|
// 导出
|
|
@@ -128,6 +134,10 @@ public class SysUserExportServiceImpl implements SysUserExportService {
|
|
|
return !StrUtil.startWith(resultValue, "ERROR");
|
|
|
});
|
|
|
|
|
|
+ } catch (BizException e) {
|
|
|
+ log.error("{}导出异常", ExportType.USER.getDescription(), e);
|
|
|
+ redisUtils.setExportError(ExportType.USER, user.getId(), e.getMessage());
|
|
|
+ return Boolean.FALSE;
|
|
|
} finally {
|
|
|
redisUtils.releaseExportGlobalAllows();
|
|
|
redisUtils.cleanupGenerating(ExportType.USER, user.getId());
|
|
@@ -136,10 +146,6 @@ public class SysUserExportServiceImpl implements SysUserExportService {
|
|
|
|
|
|
|
|
|
private List<SysUserExcelModel> buildExcelModel(List<SysUser> users) {
|
|
|
- if (CollUtil.isEmpty(users)) {
|
|
|
- log.info("用户列表为空");
|
|
|
- return List.of();
|
|
|
- }
|
|
|
// 查询企业信息
|
|
|
Map<Integer, SysDept> deptMap = queryDeptInfo(users);
|
|
|
|
|
@@ -192,7 +198,7 @@ public class SysUserExportServiceImpl implements SysUserExportService {
|
|
|
Set<Integer> deptIds = users.stream().map(SysUser::getDeptId).collect(Collectors.toSet());
|
|
|
Map<Integer, SysDept> deptMap = new HashMap<>();
|
|
|
if (CollUtil.isNotEmpty(deptIds)) {
|
|
|
- List<SysDept> sysDepts = deptMapper.selectBatchIds(deptIds);
|
|
|
+ List<SysDept> sysDepts = deptMapper.selectByIds(new ArrayList<>(deptIds));
|
|
|
deptMap.putAll(sysDepts.stream().collect(Collectors.toMap(SysDept::getDeptId, Function.identity())));
|
|
|
}
|
|
|
return deptMap;
|