diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java index 65640829..23c9405a 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java @@ -71,10 +71,10 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService */ private static final Set MEMBER_USER_STATES = Set.of("在岗", "切线", "免职", "驻村", "援疆(藏)"); - /** - * 全量更新时,以下在职状态会自动取消会员身份和会员角色。 - */ + /* + // 全量更新当前只增加会员,不取消会员身份和会员角色。 private static final Set 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 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 needInitUserList = new CopyOnWriteArrayList<>(); List histories = new CopyOnWriteArrayList<>(); List addMemberUserIds = Collections.synchronizedList(new ArrayList<>()); - List removeMemberUserIds = Collections.synchronizedList(new ArrayList<>()); +// List 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 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 + " 个"; }