commit
This commit is contained in:
+20
-20
@@ -71,10 +71,10 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
*/
|
||||
private static final Set<String> MEMBER_USER_STATES = Set.of("在岗", "切线", "免职", "驻村", "援疆(藏)");
|
||||
|
||||
/**
|
||||
* 全量更新时,以下在职状态会自动取消会员身份和会员角色。
|
||||
*/
|
||||
/*
|
||||
// 全量更新当前只增加会员,不取消会员身份和会员角色。
|
||||
private static final Set<String> REMOVE_MEMBER_USER_STATES = Set.of("离退休", "离世", "离校");
|
||||
*/
|
||||
|
||||
/**
|
||||
* 字段映射类,用于缓存反射结果
|
||||
@@ -157,12 +157,12 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
return StrUtil.isNotBlank(userState) && MEMBER_USER_STATES.contains(userState);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断本次人员状态是否需要取消会员身份。
|
||||
*/
|
||||
/*
|
||||
// 全量更新当前只增加会员,不取消会员身份和会员角色。
|
||||
private boolean shouldRemoveMember(String userState) {
|
||||
return StrUtil.isNotBlank(userState) && REMOVE_MEMBER_USER_STATES.contains(userState);
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* 人员源数据只负责基础人员信息,会员缴费及会费类字段由会员业务维护。
|
||||
@@ -213,9 +213,8 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
return insertCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量取消会员身份并删除会员角色,仅用于全量更新中明确需要退会的人员状态。
|
||||
*/
|
||||
/*
|
||||
// 全量更新当前只增加会员,不取消会员身份和会员角色。
|
||||
private int removeMemberAndRole(List<String> userIds, Sys_role memberRole) {
|
||||
if (Lang.isEmpty(userIds) || memberRole == null) {
|
||||
return 0;
|
||||
@@ -232,6 +231,7 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
}
|
||||
return removeRoleCount;
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* 全量更新用户数据
|
||||
@@ -273,7 +273,7 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
List<Sys_user> needInitUserList = new CopyOnWriteArrayList<>();
|
||||
List<Sys_user_history> histories = new CopyOnWriteArrayList<>();
|
||||
List<String> addMemberUserIds = Collections.synchronizedList(new ArrayList<>());
|
||||
List<String> removeMemberUserIds = Collections.synchronizedList(new ArrayList<>());
|
||||
// List<String> removeMemberUserIds = Collections.synchronizedList(new ArrayList<>());
|
||||
|
||||
// 处理每条数据
|
||||
for (Sys_user_source source : sources) {
|
||||
@@ -284,7 +284,7 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
Sys_user u = new Sys_user();
|
||||
BeanUtils.copyProperties(source, u);
|
||||
boolean addMember = shouldAddMember(source.getUserState());
|
||||
boolean removeMember = shouldRemoveMember(source.getUserState());
|
||||
// boolean removeMember = shouldRemoveMember(source.getUserState());
|
||||
|
||||
if (user == null) {
|
||||
// 新增用户,初始化数据
|
||||
@@ -297,9 +297,10 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
if (addMember) {
|
||||
u.setMember(true);
|
||||
addMemberUserIds.add(u.getId());
|
||||
} else if (removeMember) {
|
||||
u.setMember(false);
|
||||
}
|
||||
// else if (removeMember) {
|
||||
// u.setMember(false);
|
||||
// }
|
||||
needInitUserList.add(u);
|
||||
} else {
|
||||
// 修改现有用户 - 根据工号判断是原有的人
|
||||
@@ -308,10 +309,11 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
if (addMember) {
|
||||
u.setMember(true);
|
||||
addMemberUserIds.add(user.getId());
|
||||
} else if (removeMember) {
|
||||
u.setMember(false);
|
||||
removeMemberUserIds.add(user.getId());
|
||||
}
|
||||
// else if (removeMember) {
|
||||
// u.setMember(false);
|
||||
// removeMemberUserIds.add(user.getId());
|
||||
// }
|
||||
|
||||
needDoUpdateList.add(u);
|
||||
}
|
||||
@@ -409,8 +411,8 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
return "更新失败: " + e.getMessage();
|
||||
}
|
||||
|
||||
int memberRoleRemoveCount = removeMemberAndRole(removeMemberUserIds, memberRole);
|
||||
log.info("全量更新取消会员完成,取消会员{}个,删除会员角色{}个", removeMemberUserIds.stream().filter(Objects::nonNull).distinct().count(), memberRoleRemoveCount);
|
||||
// int memberRoleRemoveCount = removeMemberAndRole(removeMemberUserIds, memberRole);
|
||||
// log.info("全量更新取消会员完成,取消会员{}个,删除会员角色{}个", removeMemberUserIds.stream().filter(Objects::nonNull).distinct().count(), memberRoleRemoveCount);
|
||||
|
||||
// 全量更新后统一补齐角色:所有人补公共角色,所有会员补会员角色;仅新增缺失角色,不重复插入。
|
||||
List<Sys_user> latestUsers = dao.query(Sys_user.class, Cnd.NEW());
|
||||
@@ -485,8 +487,6 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
|
||||
log.info("全量更新用户数据完成,耗时: {} 毫秒", (endTime - startTime));
|
||||
|
||||
return "更新完成: 新增用户 " + needInitUserList.size() + " 个, 更新用户 " + needDoUpdateList.size()
|
||||
+ " 个, 取消会员 " + removeMemberUserIds.stream().filter(Objects::nonNull).distinct().count()
|
||||
+ " 个, 删除会员角色 " + memberRoleRemoveCount
|
||||
+ " 个, 新增公共角色 " + publicRoleAddCount + " 个, 新增会员角色 " + memberRoleAddCount + " 个";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user