Browse Source

Merge branch 'refs/heads/feat-20250730-userexport' into pre

lixuesong 1 day ago
parent
commit
b2f712d993

+ 11 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysUserExportServiceImpl.java

@@ -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;