This commit is contained in:
=
2026-04-20 16:53:26 +08:00
parent 8306e15e0b
commit 97def4472b
2 changed files with 28 additions and 19 deletions
@@ -121,16 +121,15 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
*/
private boolean checkMembershipEligibility(String userState, String preparedBy, Date postDoctoralJoinDate) {
// 博士后单独判断:只要进站时间在两年内就是会员
if ("博士后".equals(preparedBy)) {
if (postDoctoralJoinDate != null) {
Date twoYearsAgo = DateUtil.offset(DateUtil.date(), DateField.YEAR, -2).toJdkDate();
return postDoctoralJoinDate.after(twoYearsAgo);
}
return false;
}
// if ("博士后".equals(preparedBy)) {
// if (postDoctoralJoinDate != null) {
// Date twoYearsAgo = DateUtil.offset(DateUtil.date(), DateField.YEAR, -2).toJdkDate();
// return postDoctoralJoinDate.after(twoYearsAgo);
// }
// return false;
// }
// 其他人员需要判断在岗状态和聘用方式
if (!"在岗".equals(userState)) {
if (!"在岗".equals(userState) && !"在岗-里仁学院".equals(userState)) {
return false;
}
@@ -195,7 +194,11 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
u.setSalt(salt);
u.setPassword(PwdUtil.getPassword(PwdUtil.generate(12), salt));
if (u.getMember()) {
// 判断是否为会员
boolean isMember = checkMembershipEligibility(u.getUserState(), u.getPreparedBy(), u.getPostDoctoralJoinDate());
u.setMember(isMember);
if (isMember) {
addMemberUserIds.add(u.getId());
}
needInitUserList.add(u);
@@ -205,10 +208,16 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
// 更新会员状态
boolean currentIsMember = user.getMember() != null && user.getMember();
boolean shouldBeMember = checkMembershipEligibility(u.getUserState(), u.getPreparedBy(), u.getPostDoctoralJoinDate());
if (!currentIsMember) {
// 设置新的会员状态
u.setMember(shouldBeMember);
if (shouldBeMember && !currentIsMember) {
// 应该是会员但当前不是,需要添加
addMemberUserIds.add(user.getId());
} else{
} else if (!shouldBeMember && currentIsMember) {
// 不应该是会员但当前是,需要移除
removeMemberUserIds.add(user.getId());
}
@@ -70,7 +70,7 @@ public class SysDataUserIncrUpdateServiceImpl implements SysDataUserUpdateServic
// 检查是否符合会员条件
// 1. 用户状态为"在岗"
if ("在岗".equals(sysUser.getUserState())) {
if ("在岗".equals(sysUser.getUserState()) || "在岗-里仁学院".equals(sysUser.getUserState())) {
// 2. 检查聘用方式条件
List<String> membershipQualifyingPreparedBy = Arrays.asList("新人事代理", "校聘合同制", "事业编制");
@@ -79,12 +79,12 @@ public class SysDataUserIncrUpdateServiceImpl implements SysDataUserUpdateServic
// 第二种情况:聘用方式是博士后,且进站时间不超过两年
boolean isQualifiedPostdoc = false;
if ("博士后".equals(sysUser.getPreparedBy()) && sysUser.getPostDoctoralJoinDate() != null) {
Calendar twoYearsAgo = Calendar.getInstance();
twoYearsAgo.add(Calendar.YEAR, -2);
Date twoYearsAgoDate = twoYearsAgo.getTime();
isQualifiedPostdoc = sysUser.getPostDoctoralJoinDate().after(twoYearsAgoDate);
}
// if ("博士后".equals(sysUser.getPreparedBy()) && sysUser.getPostDoctoralJoinDate() != null) {
// Calendar twoYearsAgo = Calendar.getInstance();
// twoYearsAgo.add(Calendar.YEAR, -2);
// Date twoYearsAgoDate = twoYearsAgo.getTime();
// isQualifiedPostdoc = sysUser.getPostDoctoralJoinDate().after(twoYearsAgoDate);
// }
// 如果满足任一条件,设置为会员
if (isQualifiedByPreparedBy || isQualifiedPostdoc) {