From 73c8750b6a9758a344eca430568900960ef60759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=8C=E5=85=88=E8=88=9C?= <2499071264@qq.com> Date: Mon, 9 Nov 2026 15:21:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BA=BA=E5=91=98=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=B2=BB=E7=90=86=E8=BF=81=E7=A7=BB2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PersonMemberMatchServiceImpl.java | 1 - .../impl/PersonExceptionServiceImpl.java | 1 - .../param/pageform/MemberManagePageForm.java | 14 +++++++-- .../service/impl/MemberManageServiceImpl.java | 30 +++++++++++++++++-- 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/budwk/app/zhgh/personGovernance/memberMatch/service/impl/PersonMemberMatchServiceImpl.java b/src/main/java/com/budwk/app/zhgh/personGovernance/memberMatch/service/impl/PersonMemberMatchServiceImpl.java index de203b5..aa63bf5 100644 --- a/src/main/java/com/budwk/app/zhgh/personGovernance/memberMatch/service/impl/PersonMemberMatchServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/personGovernance/memberMatch/service/impl/PersonMemberMatchServiceImpl.java @@ -629,7 +629,6 @@ public class PersonMemberMatchServiceImpl extends BaseServiceImpl 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)) { diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberManagePageForm.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberManagePageForm.java index de7dcbd..7bb4c0f 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberManagePageForm.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberManagePageForm.java @@ -42,6 +42,8 @@ public class MemberManagePageForm extends PageForm { private String userAttribute; + private List 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"); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java index 5006491..564c544 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java @@ -98,8 +98,8 @@ public class MemberManageServiceImpl extends BaseServiceImpl 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 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 implement Set allowChangeFieldNames = map.getAs("allowChangeFieldNames", Set.class); Map 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 implement @Override public void compareChangeInfoAndUpdateMember(MemberChangeRecord record) { + applyRetiredPersonType(record); normalizeArrivalAtSchoolDate(record); List changeList = getChangeInfos(record); @@ -507,6 +518,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement @Override public void validateChangeAndSetBasicData(MemberChangeRecord record, MemberChangeOrigin origin) { + applyRetiredPersonType(record); normalizeArrivalAtSchoolDate(record); // 校验有没有发生变更 List changeInfos = getChangeInfos(record); @@ -526,6 +538,20 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement } + private void applyRetiredPersonType(MemberChangeRecord record) { + if (record == null || !StrUtil.equals("退休", record.getUserState())) { + return; + } + List 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 对象复制后以英文字符串形式参与比较或直接落库。 */