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