fix: 人员数据治理迁移2

This commit is contained in:
2026-11-09 15:21:10 +08:00
parent edc53353cb
commit 73c8750b6a
4 changed files with 40 additions and 6 deletions
@@ -629,7 +629,6 @@ public class PersonMemberMatchServiceImpl extends BaseServiceImpl<PersonMemberMa
Sys_user_role userRole = new Sys_user_role();
userRole.setUserId(userId);
userRole.setRoleId(role.getId());
userRole.setEnable(true);
dao().insert(userRole);
}
}
@@ -153,7 +153,6 @@ public class PersonExceptionServiceImpl extends BaseServiceImpl<PersonException>
Sys_user_role userRole = new Sys_user_role();
userRole.setUserId(userId);
userRole.setRoleId(memberRole.getId());
userRole.setEnable(true);
dao().insert(userRole);
}
} else if (member == 0 && (Boolean.TRUE.equals(user.getMember()) || hasMemberRole)) {
@@ -42,6 +42,8 @@ public class MemberManagePageForm extends PageForm {
private String userAttribute;
private List<String> userAttributes;
private String changeType;
//变更状态数组
@@ -95,7 +97,11 @@ public class MemberManagePageForm extends PageForm {
cnd.andEX("u.sex", "=", pageForm.getSex());
cnd.andEX("u.personType", "=", pageForm.getPersonType());
cnd.andEX("u.aidFundMemberUserType", "=", pageForm.getAidFundMemberUserType());
cnd.andEX("u.userAttribute", "=", pageForm.getUserAttribute());
if (Lang.isNotEmpty(pageForm.getUserAttributes())) {
cnd.and("u.userAttribute", "in", pageForm.getUserAttributes());
} else {
cnd.andEX("u.userAttribute", "=", pageForm.getUserAttribute());
}
if (StrUtil.isNotBlank(pageForm.getChangeDateBefore()) && StrUtil.isNotBlank(pageForm.getChangeDateEnd())) {
cnd.and(new Static(String.format("Date(his.changeTime) >= '%s' and Date(his.changeTime) <= '%s'", pageForm.getChangeDateBefore(), pageForm.getChangeDateEnd())));
@@ -150,7 +156,11 @@ public class MemberManagePageForm extends PageForm {
cnd.andEX("record.preparedBy", "=", pageForm.getPreparedBy());
cnd.andEX("record.personType", "=", pageForm.getPersonType());
cnd.andEX("record.aidFundMemberUserType", "=", pageForm.getAidFundMemberUserType());
cnd.andEX("record.userAttribute", "=", pageForm.getUserAttribute());
if (Lang.isNotEmpty(pageForm.getUserAttributes())) {
cnd.and("record.userAttribute", "in", pageForm.getUserAttributes());
} else {
cnd.andEX("record.userAttribute", "=", pageForm.getUserAttribute());
}
cnd.groupBy("record.id,task.id");
}
@@ -98,8 +98,8 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
u.userAttribute,
u.aidFundMemberUserType,
u.arrivalAtSchoolDate,
his.id hisId,
his.changeTypes,
COALESCE(his.id, '') hisId,
COALESCE(his.changeTypes, '[]') changeTypes,
his.changeTime
FROM
vw_user u
@@ -176,6 +176,11 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
cnd.andEX("his.unitId", "=", pageForm.getUnitId());
cnd.andEX("his.personType", "=", pageForm.getPersonType());
cnd.andEX("his.userState", "=", pageForm.getUserState());
if (Lang.isNotEmpty(pageForm.getUserAttributes())) {
cnd.and("his.userAttribute", "in", pageForm.getUserAttributes());
} else {
cnd.andEX("his.userAttribute", "=", pageForm.getUserAttribute());
}
if (StrUtil.isNotBlank(pageForm.getChangeType())){
cnd.and(new Static("JSON_CONTAINS(his.changeTypes, JSON_ARRAY('%s'), '$')".formatted(pageForm.getChangeType())));
}
@@ -252,6 +257,11 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
Set<String> allowChangeFieldNames = map.getAs("allowChangeFieldNames", Set.class);
Map<String, String> dictMap = map.getAs("dictMap", Map.class);
if (record.getRetireDate() != null) {
allowChangeFieldNames.add("retireDate");
dictMap.put("retireDate", "退休日期");
}
// 新数据
NutMap newMap = Lang.obj2nutmap(record);
// 原数据
@@ -301,6 +311,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
@Override
public void compareChangeInfoAndUpdateMember(MemberChangeRecord record) {
applyRetiredPersonType(record);
normalizeArrivalAtSchoolDate(record);
List<NutMap> changeList = getChangeInfos(record);
@@ -507,6 +518,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
@Override
public void validateChangeAndSetBasicData(MemberChangeRecord record, MemberChangeOrigin origin) {
applyRetiredPersonType(record);
normalizeArrivalAtSchoolDate(record);
// 校验有没有发生变更
List<NutMap> changeInfos = getChangeInfos(record);
@@ -526,6 +538,20 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
}
private void applyRetiredPersonType(MemberChangeRecord record) {
if (record == null || !StrUtil.equals("退休", record.getUserState())) {
return;
}
List<Sys_dict> personTypeOptions = sysDictService.getSubListByCode("USER_PERSON_TYPE");
if (Lang.isEmpty(personTypeOptions)) {
return;
}
personTypeOptions.stream()
.filter(option -> StrUtil.equals("离退休人员", option.getName()))
.findFirst()
.ifPresent(option -> record.setPersonType(option.getCode()));
}
/**
* 统一规范变更记录中的到校日期,避免 Date 对象复制后以英文字符串形式参与比较或直接落库。
*/