From f42c8c52d0ad68d69537c5542fcac0b26e154dae Mon Sep 17 00:00:00 2001 From: Paidax Date: Tue, 25 Feb 2025 10:54:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/v/nutz/base/utils/MsgApi.java | 80 ++-- .../club/applyIn/ClubApplyInController.java | 3 +- .../regist/ClubRegistApplyController.java | 8 +- .../sys/handler/ClubUserApplyToDoHandler.java | 2 +- .../sys/services/impl/SysUserServiceImpl.java | 21 +- .../service/impl/SourceUserServiceImpl.java | 128 ++++-- ...MemberApplyBranchUnionAuditController.java | 34 +- .../apply/MemberApplyController.java | 30 +- .../apply/MemberApplyMineController.java | 5 + ...MemberApplySchoolUnionAuditController.java | 19 +- .../change/MemberChangeApplyController.java | 19 +- .../change/MemberChangeManageController.java | 88 ++-- .../inquire/MemberDataBoardController.java | 4 +- .../member/handle/MemberApplyToDoHandler.java | 28 +- .../handle/MemberChangeToDoHandler.java | 28 +- .../member/model/MemberChangeRecord.java | 5 + .../service/impl/MemberCommonServiceImpl.java | 47 +- .../SourceChangeManageController.java | 1 + .../impl/SourceChangeManageServiceImpl.java | 58 ++- .../SpecialStaffManageController.java | 2 +- .../static/components/plugins/TextEditor.vue | 2 +- .../resources/static/components/sign/sign.vue | 4 +- .../resources/views/layouts/platform.html | 11 + .../member/apply/branchUnionAudit/index.html | 312 ++++++++++++++ .../apply/common/memberApplyAuditInfo.js | 155 +++++++ .../views/mobile/member/apply/mine/index.html | 231 ++++++++++ .../mobile/member/apply/sbumit/index.html | 15 - .../member/apply/schoolUnionAudit/index.html | 359 ++++++++++++++++ .../mobile/member/apply/submit/index.html | 406 ++++++++++++++++++ .../mobile/member/common/memberInfoH5.js | 81 ++++ src/main/resources/views/mobile/platform.html | 9 + .../views/platform/data/user/UpdateUser.html | 48 +-- .../platform/member/apply/audit/Layout.html | 4 +- .../member/apply/branchUnionAudit/index.html | 8 +- .../member/apply/common/commonQuery.js | 4 +- .../platform/member/apply/mine/index.html | 4 +- .../member/apply/schoolUnionAudit/index.html | 15 +- .../platform/member/apply/submit/index.html | 94 +++- .../views/platform/member/change/Manage.html | 4 +- .../views/platform/member/change/Records.html | 4 +- .../platform/member/change/audit/Layout.html | 4 +- .../member/change/branchUnionAudit/index.html | 6 +- .../member/change/common/commonQuery.js | 4 +- .../member/change/common/memberChange.js | 20 +- .../change/common/memberChangeAuditInfo.js | 8 +- .../platform/member/change/manage/index.html | 10 +- .../platform/member/change/record/index.html | 4 +- .../member/change/schoolUnionAudit/index.html | 6 +- .../platform/member/common/memberInfo.js | 11 +- .../sourcechange/manage/commonQuery.js | 15 +- .../platform/sourcechange/manage/index.html | 35 +- .../sourcechange/manage/userChangeInfo.js | 10 +- .../sys/club/regist/clubRegistApply.html | 6 +- 53 files changed, 2128 insertions(+), 391 deletions(-) create mode 100644 src/main/resources/views/mobile/member/apply/branchUnionAudit/index.html create mode 100644 src/main/resources/views/mobile/member/apply/common/memberApplyAuditInfo.js create mode 100644 src/main/resources/views/mobile/member/apply/mine/index.html delete mode 100644 src/main/resources/views/mobile/member/apply/sbumit/index.html create mode 100644 src/main/resources/views/mobile/member/apply/schoolUnionAudit/index.html create mode 100644 src/main/resources/views/mobile/member/apply/submit/index.html create mode 100644 src/main/resources/views/mobile/member/common/memberInfoH5.js diff --git a/src/main/java/io/v/nutz/base/utils/MsgApi.java b/src/main/java/io/v/nutz/base/utils/MsgApi.java index 1334043..18efda5 100644 --- a/src/main/java/io/v/nutz/base/utils/MsgApi.java +++ b/src/main/java/io/v/nutz/base/utils/MsgApi.java @@ -58,46 +58,46 @@ public class MsgApi { */ public void sendMsg(List channels, String loginNameStr, Integer mtype, String title, String content, String imageUrl,String link) { try { -// if (!Globals.MyConfig.getBoolean("SendMsg")) { -// log.info("发送失败,消息暂未开启!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); -// return; -// } -// -// if (Globals.isEnv(Env.dev)) { -// log.info("开发模式不允许发送短信!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); -// return; -// } -// -// if (StrUtil.isBlank(title)||StrUtil.isBlank(content) ||Lang.isEmpty(channels) || Lang.isEmpty(loginNameStr)) { -// log.info("发送失败,缺少需要参数请检查!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); -// return; -// } -// -// String msgToken = getMsgToken(); -// NutMap map = new NutMap(); -// map.put("channel", String.join(",", channels)); -// //推送范围(1:普通模式;2:全体教师;3:全体学生;4:全体人员) -// map.put("objScope", 1); -// map.put("objIds", loginNameStr); -// map.put("mtype", mtype); -// map.put("sendStatus", 1); -// map.put("title", title); -// map.put("content", content); -// map.put("imageUrl", imageUrl); -// map.put("link", link); -// -// HttpRequest request = HttpUtil.createPost(MSG_API) -// .header("token", msgToken) -// .body(Json.toJson(map)); -// JSONObject jsonObject = JSON.parseObject(request.execute().body()); -// int status = jsonObject.getInteger("code"); -// -// if (status == 200) { -// log.info("发送成功>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); -// } else { -// log.info("发送失败>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); -// throw new RuntimeException("Message sending failed with status code: " + status + ", Message: " + jsonObject.getString("message")); -// } + /*if (!Globals.MyConfig.getBoolean("SendMsg")) { + log.info("发送失败,消息暂未开启!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + return; + } + + if (Globals.isEnv(Env.dev)) { + log.info("开发模式不允许发送短信!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + return; + } + + if (StrUtil.isBlank(title)||StrUtil.isBlank(content) ||Lang.isEmpty(channels) || Lang.isEmpty(loginNameStr)) { + log.info("发送失败,缺少需要参数请检查!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + return; + } + + String msgToken = getMsgToken(); + NutMap map = new NutMap(); + map.put("channel", String.join(",", channels)); + //推送范围(1:普通模式;2:全体教师;3:全体学生;4:全体人员) + map.put("objScope", 1); + map.put("objIds", loginNameStr); + map.put("mtype", mtype); + map.put("sendStatus", 1); + map.put("title", title); + map.put("content", content); + map.put("imageUrl", imageUrl); + map.put("link", link); + + HttpRequest request = HttpUtil.createPost(MSG_API) + .header("token", msgToken) + .body(Json.toJson(map)); + JSONObject jsonObject = JSON.parseObject(request.execute().body()); + int status = jsonObject.getInteger("code"); + + if (status == 200) { + log.info("发送成功>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + } else { + log.info("发送失败>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); + throw new RuntimeException("Message sending failed with status code: " + status + ", Message: " + jsonObject.getString("message")); + }*/ } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/io/v/nutz/sys/controllers/platform/sys/club/applyIn/ClubApplyInController.java b/src/main/java/io/v/nutz/sys/controllers/platform/sys/club/applyIn/ClubApplyInController.java index 3725676..aa56b81 100644 --- a/src/main/java/io/v/nutz/sys/controllers/platform/sys/club/applyIn/ClubApplyInController.java +++ b/src/main/java/io/v/nutz/sys/controllers/platform/sys/club/applyIn/ClubApplyInController.java @@ -150,7 +150,8 @@ public class ClubApplyInController { if(sysUser.getMember() != 1) { return Result.error("您当前不是会员,无法申请"); } - int count = dao.count(Sys_club_user.class, Cnd.where("userid", "=", ShiroUtil.getUserId()).and("isNormal", "=", true)); + int count = dao.count(Sys_club_user.class, Cnd.where("userid", "=", ShiroUtil.getUserId()) + .and("isNormal", "=", true).and("`status`", "in", List.of(1, 3, 5))); if(count >= 3) { return Result.error("您已参与3个协会,无法申请"); } diff --git a/src/main/java/io/v/nutz/sys/controllers/platform/sys/club/regist/ClubRegistApplyController.java b/src/main/java/io/v/nutz/sys/controllers/platform/sys/club/regist/ClubRegistApplyController.java index 4d5aee3..a649fb6 100644 --- a/src/main/java/io/v/nutz/sys/controllers/platform/sys/club/regist/ClubRegistApplyController.java +++ b/src/main/java/io/v/nutz/sys/controllers/platform/sys/club/regist/ClubRegistApplyController.java @@ -76,9 +76,9 @@ public class ClubRegistApplyController { @Param(value = "isSave", required = false) Boolean isSave, @Param(value = "::managePerson", required = false) List managePerson, @Param(value = "::clubUserList", required = false) List clubUserList) throws IOException { - if(!isSave && !sysClubService.getInviteAgree(club)) { + /*if(!isSave && !sysClubService.getInviteAgree(club)) { return Result.error("您邀请的会员中确认人数暂未达到20人,暂不能提交,只能保存"); - } + }*/ club.setIsjs(false); if (ShiroUtil.hasAnyRoles("sysadmin, A06, xxhgly")) { club.setFoundTime(DateUtil.getDateTime()); @@ -190,9 +190,9 @@ public class ClubRegistApplyController { @Param(value = "::managePerson", required = false) List managePerson, @Param(value = "::clubUserList", required = false) List clubUserList) throws IOException { - if(!isSave && Objects.equals(club.getState(), ClubRegistAuditState.NOT_SUBMIT) && !sysClubService.getInviteAgree(club)) { + /*if(!isSave && Objects.equals(club.getState(), ClubRegistAuditState.NOT_SUBMIT) && !sysClubService.getInviteAgree(club)) { return Result.error("您邀请的会员中确认人数暂未达到20人,暂不能提交,只能保存"); - } + }*/ //如果不是管理员,并且点的提交按钮 if (!isSave && Objects.equals(club.getUserid(), ShiroUtil.getUserId())) { diff --git a/src/main/java/io/v/nutz/sys/controllers/platform/sys/handler/ClubUserApplyToDoHandler.java b/src/main/java/io/v/nutz/sys/controllers/platform/sys/handler/ClubUserApplyToDoHandler.java index a506330..e7d3e8a 100644 --- a/src/main/java/io/v/nutz/sys/controllers/platform/sys/handler/ClubUserApplyToDoHandler.java +++ b/src/main/java/io/v/nutz/sys/controllers/platform/sys/handler/ClubUserApplyToDoHandler.java @@ -102,7 +102,7 @@ public enum ClubUserApplyToDoHandler { sur.userId """); sqlStr.setCondition(Cnd.NEW().and("sur.roleId", "in", Lang.array(Roles.club01, Roles.club02, Roles.club03, Roles.club04)) - .and("clubId", "=", clubUser.getClubid())); + .and("sur.stid", "=", clubUser.getClubid())); Sql sql = Sqls.queryString(sqlStr.toString()); dao.execute(sql); List loginNames = sql.getList(String.class); diff --git a/src/main/java/io/v/nutz/sys/services/impl/SysUserServiceImpl.java b/src/main/java/io/v/nutz/sys/services/impl/SysUserServiceImpl.java index e8c5ace..56edd62 100644 --- a/src/main/java/io/v/nutz/sys/services/impl/SysUserServiceImpl.java +++ b/src/main/java/io/v/nutz/sys/services/impl/SysUserServiceImpl.java @@ -142,16 +142,21 @@ public class SysUserServiceImpl extends BaseServiceImpl implements Sys @Override public Sys_user fillUnitUnion(Sys_user user) { if (user.getUnit() != null) { - if (Strings.isNotBlank(user.getUnit().getUnionid())) { - Sys_union union = dao().fetch(Sys_union.class, user.getUnit().getUnionid()); + User fetch = dao().fetch(User.class, Cnd.where("id", "=", user.getId())); + if (StrUtil.isNotBlank(fetch.getUnionid())) { + Sys_union union = dao().fetch(Sys_union.class, fetch.getUnionid()); user.setUnion(union); - } else { - User fetch = dao().fetch(User.class, Cnd.where("id", "=", user.getId())); - if (StrUtil.isNotBlank(fetch.getUnionid())) { - Sys_union union = dao().fetch(Sys_union.class, fetch.getUnionid()); - user.setUnion(union); - } } +// if (Strings.isNotBlank(user.getUnit().getUnionid())) { +// Sys_union union = dao().fetch(Sys_union.class, user.getUnit().getUnionid()); +// user.setUnion(union); +// } else { +// User fetch = dao().fetch(User.class, Cnd.where("id", "=", user.getId())); +// if (StrUtil.isNotBlank(fetch.getUnionid())) { +// Sys_union union = dao().fetch(Sys_union.class, fetch.getUnionid()); +// user.setUnion(union); +// } +// } } return user; } diff --git a/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java b/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java index 9135273..24cfea9 100644 --- a/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/data/service/impl/SourceUserServiceImpl.java @@ -284,6 +284,8 @@ public class SourceUserServiceImpl extends ViServiceImpl implements sysRoleService.clearCache(); } else { + List loginNameList = middleTables.stream().map(SourceChangeMiddleTable::getLoginname).toList(); + dao().clear(SourceChangeMiddleTable.class, Cnd.where("loginname", "in", loginNameList).and("isOperate", "=", false)); manyAddOrRenewUtil.asyncExecuteFastInsert(middleTables, 200); } } catch (Exception e) { @@ -316,48 +318,39 @@ public class SourceUserServiceImpl extends ViServiceImpl implements boolean shouldAdd = false; boolean shouldRemove = false; + // 提前检查 userState 条件(如果存在) + boolean userStateConditionMet = true; + if ("userState".equals(siftName)) { + userStateConditionMet = checkListCondition(siftValue, source, "userState"); + } + switch (siftName) { case "userState": - if (siftValue instanceof List && source != null && source.getUserState() != null) { - List userStateList = (List) siftValue; - shouldAdd = userStateList.contains(source.getUserState()); - shouldRemove = !shouldAdd && user != null && user.getMember() == 1; - } + // 如果 userState 不满足条件,则直接设置 shouldRemove + shouldAdd = userStateConditionMet; + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; break; + case "personType": - if (siftValue instanceof List && source != null && source.getPersonType() != null) { - List personTypeList = (List) siftValue; - shouldAdd = personTypeList.contains(source.getPersonType()); - shouldRemove = !shouldAdd && user != null && user.getMember() == 1; - } + // 检查 personType 条件 + // 必须同时满足 userState 和 personType 条件 + shouldAdd = checkListCondition(siftValue, source, "personType"); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; break; + case "loginNameStart": - if (siftValue instanceof String && source != null && source.getLoginname() != null) { - String loginNameStart = (String) siftValue; - shouldAdd = source.getLoginname().startsWith(loginNameStart); - shouldRemove = !shouldAdd && user != null && user.getMember() == 1; - } - break; case "loginNameEnd": - if (siftValue instanceof String && source != null && source.getLoginname() != null) { - String loginNameEnd = (String) siftValue; - shouldAdd = source.getLoginname().endsWith(loginNameEnd); - shouldRemove = !shouldAdd && user != null && user.getMember() == 1; - } + shouldAdd = checkLoginNameCondition(siftValue, source, siftName); + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; break; + case "userQuery": - if (siftValue instanceof List && user != null) { - List userIds = (List) siftValue; - shouldAdd = userIds.contains(user.getId()) && user.getMember() != 1; - } + shouldAdd = checkUserQueryCondition(siftValue, user); break; } + if (shouldAdd) { - if (user == null) { - addMemberUserIds.add(source.getId()); - } else if (user.getMember() != 1) { - addMemberUserIds.add(user.getId()); - } + addUserToMemberList(user, source, addMemberUserIds); source.setMember(1); } else if (shouldRemove) { deleteMemberUserIds.add(user.getId()); @@ -365,13 +358,22 @@ public class SourceUserServiceImpl extends ViServiceImpl implements } }); - + if (config.getWelfareMemberSiftList() == null) { + return; + } config.getWelfareMemberSiftList().forEach(welfareMember -> { String siftName = welfareMember.getSiftName(); Object siftValue = welfareMember.getSiftValue(); boolean shouldAdd = false; boolean shouldRemove = false; + // 提前检查 userState 条件(如果存在) + boolean userStateConditionMet = true; + if ("userState".equals(siftName) && siftValue instanceof List) { + List userStateList = (List) siftValue; + userStateConditionMet = source != null && source.getUserState() != null && userStateList.contains(source.getUserState()); + } + switch (siftName) { case "member": if ((user != null && addMemberUserIds.contains(user.getId())) || addMemberUserIds.contains(source.getId())) { @@ -380,34 +382,36 @@ public class SourceUserServiceImpl extends ViServiceImpl implements shouldRemove = true; } break; + case "userState": - if (siftValue instanceof List && source != null && source.getUserState() != null) { - List userStateList = (List) siftValue; - shouldAdd = userStateList.contains(source.getUserState()); - shouldRemove = !shouldAdd && user != null && user.getMember() == 1; - } + shouldAdd = userStateConditionMet; + shouldRemove = !shouldAdd && user != null && user.getMember() == 1; break; + case "personType": if (siftValue instanceof List && source != null && source.getPersonType() != null) { List personTypeList = (List) siftValue; - shouldAdd = personTypeList.contains(source.getPersonType()); + boolean personTypeConditionMet = personTypeList.contains(source.getPersonType()); + // 必须同时满足 userState 和 personType 条件 + shouldAdd = userStateConditionMet && personTypeConditionMet; shouldRemove = !shouldAdd && user != null && user.getMember() == 1; } break; + case "loginNameStart": - if (siftValue instanceof String && source != null && source.getLoginname() != null) { - String loginNameStart = (String) siftValue; + if (siftValue instanceof String loginNameStart && source != null && source.getLoginname() != null) { shouldAdd = source.getLoginname().startsWith(loginNameStart); shouldRemove = !shouldAdd && user != null && user.getMember() == 1; } break; + case "loginNameEnd": - if (siftValue instanceof String && source != null && source.getLoginname() != null) { - String loginNameEnd = (String) siftValue; + if (siftValue instanceof String loginNameEnd && source != null && source.getLoginname() != null) { shouldAdd = source.getLoginname().endsWith(loginNameEnd); shouldRemove = !shouldAdd && user != null && user.getMember() == 1; } break; + case "userQuery": if (siftValue instanceof List && user != null) { List userIds = (List) siftValue; @@ -415,6 +419,7 @@ public class SourceUserServiceImpl extends ViServiceImpl implements } break; } + if (shouldAdd) { if (user == null) { addWelfareMemberUserIds.add(source.getId()); @@ -422,7 +427,7 @@ public class SourceUserServiceImpl extends ViServiceImpl implements addWelfareMemberUserIds.add(user.getId()); } source.setWelfareMember(1); - } else if (shouldRemove) { + } else if (shouldRemove && user != null) { deleteWelfareMemberUserIds.add(user.getId()); source.setWelfareMember(0); } @@ -430,6 +435,41 @@ public class SourceUserServiceImpl extends ViServiceImpl implements } + // 提取公共方法 + private boolean checkListCondition(Object siftValue, UserSource source, String siftName) { + if (!(siftValue instanceof List) || source == null) { + return false; + } + List list = (List) siftValue; + return "userState".equals(siftName) ? list.contains(source.getUserState()) : + "personType".equals(siftName) && list.contains(source.getPersonType()); + } + + private boolean checkLoginNameCondition(Object siftValue, UserSource source, String siftName) { + if (!(siftValue instanceof String) || source == null || source.getLoginname() == null) { + return false; + } + String loginName = source.getLoginname(); + String condition = (String) siftValue; + return "loginNameStart".equals(siftName) ? loginName.startsWith(condition) : + "loginNameEnd".equals(siftName) && loginName.endsWith(condition); + } + + private boolean checkUserQueryCondition(Object siftValue, Sys_user user) { + if (!(siftValue instanceof List) || user == null) { + return false; + } + List userIds = (List) siftValue; + return userIds.contains(user.getId()) && user.getMember() != 1; + } + + private void addUserToMemberList(Sys_user user, UserSource source, List addMemberUserIds) { + if (user == null) { + addMemberUserIds.add(source.getId()); + } else if (user.getMember() != 1) { + addMemberUserIds.add(user.getId()); + } + } /** * 用于人工操作,不自动更新,不改变数据库数据 @@ -469,7 +509,7 @@ public class SourceUserServiceImpl extends ViServiceImpl implements return null; } String changeInfos = changeList.stream().map(v -> { - return "(变更字段:" + v.getString("fieldName") + ",变更前:" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + ",变更后:" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ")"; + return v.getString("fieldName") + ":" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + "->" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ";"; }).collect(Collectors.joining(";")); // 比较变更数据 @@ -515,7 +555,7 @@ public class SourceUserServiceImpl extends ViServiceImpl implements return null; } String changeInfos = changeList.stream().map(v -> { - return "(变更字段:" + v.getString("fieldName") + ",变更前:" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + ",变更后:" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ")"; + return v.getString("fieldName") + ":" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + "->" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ";"; }).collect(Collectors.joining(";")); // 比较变更数据 commonCompareChange(source, user, changeTypes); diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java index 5f94302..f711f39 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java @@ -29,6 +29,7 @@ import org.nutz.dao.sql.Sql; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; @@ -58,6 +59,11 @@ public class MemberApplyBranchUnionAuditController { @RequiresPermissions("member.apply.branchUnion.audit") public void index() {} + @At("/h5") + @Ok("beetl:/mobile/member/apply/branchUnionAudit/index.html") + @RequiresPermissions("member.apply.branchUnion.audit") + public void h5() {} + @At @RequiresPermissions("member.apply.branchUnion.audit") @@ -123,18 +129,26 @@ public class MemberApplyBranchUnionAuditController { } else if (audit.getAuditType() == 1) { MemberApplyToDoHandler.COMPLETE_PROCESS.exec(record, null); // 判断是否改变了工会关系 + User user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); if (!ObjectUtil.equals(user.getUnionid(), record.getAllocationUnionId())) { - Sys_union union = dao.fetch(Sys_union.class, Cnd.where("id", "=", record.getAllocationUnionId())); - SpecialStaff staff = new SpecialStaff(); - staff.setUserId(record.getUserId()); - staff.setPersonnelRelationUnitId(user.getUnitid()); - staff.setPersonnelRelationUnitName(user.getUnitname()); - staff.setUnionRelationUnionId(union.getId()); - staff.setUnionRelationUnionName(union.getUnionname()); - staff.setIsManyUnit(false); - staff.setSpecialStaffType("HMC_RELATION"); - dao.insert(staff); + if (dao.count(SpecialStaff.class, Cnd.where("userId", "=", record.getUserId())) > 0) { + dao.clear(SpecialStaff.class, Cnd.where("userId", "=", record.getUserId())); + user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); + } + + if (!ObjectUtil.equals(user.getUnionid(), record.getAllocationUnionId())) { + Sys_union union = dao.fetch(Sys_union.class, Cnd.where("id", "=", record.getAllocationUnionId())); + SpecialStaff staff = new SpecialStaff(); + staff.setUserId(record.getUserId()); + staff.setPersonnelRelationUnitId(user.getUnitid()); + staff.setPersonnelRelationUnitName(user.getUnitname()); + staff.setUnionRelationUnionId(union.getId()); + staff.setUnionRelationUnionName(union.getUnionname()); + staff.setIsManyUnit(false); + staff.setSpecialStaffType("HMC_RELATION"); + dao.insert(staff); + } } Sys_user sysUser = new Sys_user(); diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyController.java index b79cc10..101bfe5 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyController.java @@ -18,6 +18,7 @@ import org.nutz.dao.Dao; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; @@ -50,7 +51,7 @@ public class MemberApplyController { } @At("/h5") - @Ok("beetl:/platform/member/apply/submit/index.html") + @Ok("beetl:/mobile/member/apply/submit/index.html") @RequiresPermissions("member.apply.submit") public void h5() { } @@ -86,7 +87,9 @@ public class MemberApplyController { record.setChangeType(MemberChangeType.RESTORE.name()); record.setChangeTypes(List.of(MemberChangeType.RESTORE.name())); // 待提交 - record.setApplyStateId(10); + if (record.getApplyStateId() == null) { + record.setApplyStateId(10); + } dao.insertOrUpdate(record); return null; } @@ -103,6 +106,10 @@ public class MemberApplyController { record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name()); record.setChangeType(MemberChangeType.RESTORE.name()); record.setChangeTypes(List.of(MemberChangeType.RESTORE.name())); + + if (record.getApplyStateId() != null && List.of(30, 60).contains(record.getApplyStateId())) { + MemberApplyToDoHandler.COMPLETE_APPLY_RE_MODIFY_TASK.exec(record, NutMap.NEW().addv("nodeName", "重新修改申请")); + } // 待校工会审核 record.setApplyStateId(20); dao.insertOrUpdate(record); @@ -111,11 +118,20 @@ public class MemberApplyController { MemberApplyToDoHandler.START_PROCESS.exec(record, null); MemberApplyToDoHandler.CREATE_SCHOOL_TASK.exec(record, null); - List schoolLoginNameList = commonService.getSchoolOrBranchUnionMemberAdminLoginNames("school", null); - String schoolLoginNameListStr = schoolLoginNameList.stream().distinct().collect(Collectors.joining(",")); - - String content = "%s老师正申请加入工会,请您点击此条消息或前往智慧工会进行审核"; - msgApi.sendMsg(List.of("DingTalk"), schoolLoginNameListStr, 2, "协会入会邀请", content, "", ""); + // 短信通知 +// List schoolLoginNameList = commonService.getSchoolOrBranchUnionMemberAdminLoginNames("school", null); +// String schoolLoginNameListStr = schoolLoginNameList.stream().distinct().collect(Collectors.joining(",")); +// +// String content = "%s老师正申请加入工会,请您点击此条消息或前往智慧工会进行审核"; +// msgApi.sendMsg(List.of("DingTalk"), schoolLoginNameListStr, 2, "协会入会邀请", content, "", ""); return null; } + + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + public Object validateApply(){ + return dao.count(MemberApplyRecord.class, Cnd.where("userId", "=", ShiroUtil.getUserId()).and("applyStateId", "in", List.of(10, 20, 30, 50, 60))); + } } diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java index af8814d..a11305e 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java @@ -53,6 +53,11 @@ public class MemberApplyMineController { public void index() { } + @At("/h5") + @Ok("beetl:/mobile/member/apply/mine/index.html") + @RequiresPermissions("member.apply.mine") + public void h5() { + } @At @RequiresPermissions("member.apply.mine") diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java index c15dc90..606024a 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java @@ -53,6 +53,10 @@ public class MemberApplySchoolUnionAuditController { @RequiresPermissions("member.apply.schoolUnion.audit") public void index() {} + @At("/h5") + @Ok("beetl:/mobile/member/apply/schoolUnionAudit/index.html") + @RequiresPermissions("member.apply.schoolUnion.audit") + public void h5() {} @At @RequiresPermissions("member.apply.schoolUnion.audit") @@ -112,7 +116,8 @@ public class MemberApplySchoolUnionAuditController { if (audit.getAuditType() == 2) { MemberApplyToDoHandler.CREATE_APPLY_RE_MODIFY_TASK.exec(record, null); - String content = "%s老师您好,您的入会申请被校工会退回,您可根据退回原因修改后再次提交,如有疑问请及时联系校工会".formatted(record.getUsername()); + // 短信通知 +// String content = "%s老师您好,您的入会申请被校工会退回,您可根据退回原因修改后再次提交,如有疑问请及时联系校工会".formatted(record.getUsername()); } else if (audit.getAuditType() == 1) { Sql sql = Sqls.create(""" SELECT @@ -131,13 +136,15 @@ public class MemberApplySchoolUnionAuditController { List unionLeaderLoginNames = list.stream().map(v -> v.getString("loginname")).toList(); MemberApplyToDoHandler.CREATE_UNION_TASK.exec(record, NutMap.NEW().addv("unionLeaderLoginNames", unionLeaderLoginNames)); - for (NutMap map : list) { - String content = "%s老师您好,%s老师的入会申请校工会已通过,现将工会关系划入本工会,请您点击此消息或前往智慧工会进行接收" - .formatted(map.getString("username"), record.getUsername()); - } + // 短信通知 +// for (NutMap map : list) { +// String content = "%s老师您好,%s老师的入会申请校工会已通过,现将工会关系划入本工会,请您点击此消息或前往智慧工会进行接收" +// .formatted(map.getString("username"), record.getUsername()); +// } } else { MemberApplyToDoHandler.REFUSE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会审核拒绝")); - String content = "%s老师您好,您的入会申请被校工会拒绝,如有疑问请及时联系校工会".formatted(record.getUsername()); + // 短信通知 +// String content = "%s老师您好,您的入会申请被校工会拒绝,如有疑问请及时联系校工会".formatted(record.getUsername()); } MemberApplyToDoHandler.COMPLETE_SCHOOL_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会审核完成")); return null; diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java index cb15524..b74385f 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java @@ -1,19 +1,14 @@ package io.v.nutz.zhgh.staffmanage.member.controller.change; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.Roles; -import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.models.Sys_union; import io.v.nutz.sys.models.Sys_unit; -import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.models.User; import io.v.nutz.web.commons.slog.annotation.SLog; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeOrigin; -import io.v.nutz.zhgh.staffmanage.member.constant.MemberChangeType; import io.v.nutz.zhgh.staffmanage.member.handle.MemberChangeToDoHandler; import io.v.nutz.zhgh.staffmanage.member.model.MemberChangeRecord; import io.v.nutz.zhgh.staffmanage.member.service.MemberCommonService; @@ -22,18 +17,13 @@ import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; -import org.nutz.dao.Sqls; -import org.nutz.dao.sql.Sql; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.Lang; -import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; -import java.util.ArrayList; -import java.util.Arrays; import java.util.List; @IocBean @@ -85,7 +75,9 @@ public class MemberChangeApplyController { // 变更来源 个人 record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name()); // 待提交 - record.setApplyStateId(10010); + if (record.getApplyStateId() == null) { + record.setApplyStateId(10010); + } dao.insertOrUpdate(record); return Result.success(); } catch (Exception e) { @@ -115,6 +107,11 @@ public class MemberChangeApplyController { record.setUserId(ShiroUtil.getUserId()); // 变更来源 个人 record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name()); + + + if (List.of(10030, 10060).contains(record.getApplyStateId())) { + MemberChangeToDoHandler.COMPLETE_APPLY_RE_MODIFY_TASK.exec(record, NutMap.NEW().addv("nodeName", "重新修改申请")); + } // 待分工会审核 record.setApplyStateId(10020); dao.insertOrUpdate(record); diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java index 3869365..153f191 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java @@ -154,9 +154,9 @@ public class MemberChangeManageController { } cnd.and("u.unionid", "=", Vi.getUnionId()); } - + } else { + cnd.andEX("u.unionid", "=", unionId); } - cnd.andEX("u.unionid", "=", unionId); cnd.andEX("u.unitid", "=", unitId); cnd.andEX("u.threeUnitId", "=", threeUnitId); cnd.andEX("u.unionGroupId", "=", unionGroupId); @@ -275,6 +275,7 @@ public class MemberChangeManageController { } @At + @ViReturn @Aop(TransAop.READ_COMMITTED) @RequiresPermissions("member.change.mange") @SLog(tag = "会员高级管理-会员变更", msg = "分工会/校工会会员管理员提交变更") @@ -288,54 +289,49 @@ public class MemberChangeManageController { return Result.error("未校验到变更数据,请确认数据是否存在变更"); } - try { - // 变更就表明,当前审核人审核通过 - Audit audit = new Audit(); - audit.setAuditor(ShiroUtil.getUserId()); - audit.setLoginname(ShiroUtil.getPlatformLoginname()); - audit.setUsername(ShiroUtil.getPlatformUsername()); - audit.setAuditOpinion("通过"); - audit.setAuditTime(DateUtil.date()); - dao.insert(audit); + // 变更就表明,当前审核人审核通过 + Audit audit = new Audit(); + audit.setAuditor(ShiroUtil.getUserId()); + audit.setLoginname(ShiroUtil.getPlatformLoginname()); + audit.setUsername(ShiroUtil.getPlatformUsername()); + audit.setAuditOpinion("通过"); + audit.setAuditTime(DateUtil.date()); + dao.insert(audit); - User user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); - // 比较有哪些变更类型 - List changeTypes = memberService.compareChangeType(record, user); - record.setChangeTypes(changeTypes); - if (!ShiroUtil.hasAnyRoles("sysadmin, SchoolUnionMemberAdmin")) { - // 分工会变更,分工会审核通过,转为校工会审核 - record.setChangeOrigin(MemberChangeOrigin.BRANCH_UNION.name()); - record.setApplyStateId(10050); - record.setBranchUnionAuditId(audit.getId()); - dao.insert(record); + User user = dao.fetch(User.class, Cnd.where("id", "=", record.getUserId())); + // 比较有哪些变更类型 + List changeTypes = memberService.compareChangeType(record, user); + record.setChangeTypes(changeTypes); + if (!ShiroUtil.hasAnyRoles("sysadmin, SchoolUnionMemberAdmin")) { + // 分工会变更,分工会审核通过,转为校工会审核 + record.setChangeOrigin(MemberChangeOrigin.BRANCH_UNION.name()); + record.setApplyStateId(10050); + record.setBranchUnionAuditId(audit.getId()); + dao.insert(record); - // 创建流程任务 - MemberChangeToDoHandler.START_PROCESS.exec(record, null); - MemberChangeToDoHandler.CREATE_UNION_TASK.exec(record, null); - MemberChangeToDoHandler.COMPLETE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核完成")); - MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record, null); - } else { - // 校工会变更,变更直接完成 - record.setChangeOrigin(MemberChangeOrigin.SCHOOL_UNION.name()); - record.setApplyStateId(10080); - record.setBranchUnionAuditId(audit.getId()); - record.setSchoolUnionAuditId(audit.getId()); - dao.insert(record); + // 创建流程任务 + MemberChangeToDoHandler.START_PROCESS.exec(record, null); + MemberChangeToDoHandler.CREATE_UNION_TASK.exec(record, null); + MemberChangeToDoHandler.COMPLETE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核完成")); + MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record, null); + } else { + // 校工会变更,变更直接完成 + record.setChangeOrigin(MemberChangeOrigin.SCHOOL_UNION.name()); + record.setApplyStateId(10080); + record.setBranchUnionAuditId(audit.getId()); + record.setSchoolUnionAuditId(audit.getId()); + dao.insert(record); - // 创建流程任务 - MemberChangeToDoHandler.START_PROCESS.exec(record, null); - MemberChangeToDoHandler.CREATE_UNION_TASK.exec(record, null); - MemberChangeToDoHandler.COMPLETE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核完成")); - MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record, null); - MemberChangeToDoHandler.COMPLETE_SCHOOL_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会审核完成")); - MemberChangeToDoHandler.COMPLETE_PROCESS.exec(record, null); - memberService.compareChangeInfoAndUpdateMember(record.getId()); - } - return Result.success("操作成功"); - } catch (Exception e) { - log.error("分工会/校工会会员管理员提交变更:", e); - return Result.error("操作失败"); + // 创建流程任务 + MemberChangeToDoHandler.START_PROCESS.exec(record, null); + MemberChangeToDoHandler.CREATE_UNION_TASK.exec(record, null); + MemberChangeToDoHandler.COMPLETE_UNION_TASK.exec(record, NutMap.NEW().addv("nodeName", "分工会审核完成")); + MemberChangeToDoHandler.CREATE_SCHOOL_TASK.exec(record, null); + MemberChangeToDoHandler.COMPLETE_SCHOOL_TASK.exec(record, NutMap.NEW().addv("nodeName", "校工会审核完成")); + MemberChangeToDoHandler.COMPLETE_PROCESS.exec(record, null); + memberService.compareChangeInfoAndUpdateMember(record.getId()); } + return null; } diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberDataBoardController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberDataBoardController.java index b72174c..532acf2 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberDataBoardController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/controller/inquire/MemberDataBoardController.java @@ -139,7 +139,7 @@ public class MemberDataBoardController { sys_dict dict LEFT JOIN sys_dict parent ON dict.parentId = parent.id WHERE - parent.`code` = 'UserType' + parent.`code` = 'PERSON_TYPE' ORDER BY dict.location """); @@ -164,7 +164,7 @@ public class MemberDataBoardController { sys_dict dict LEFT JOIN sys_dict parent ON dict.parentId = parent.id WHERE - parent.`code` = 'UserState' + parent.`code` = 'USER_STATE' ORDER BY dict.location """); diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberApplyToDoHandler.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberApplyToDoHandler.java index 160190e..25614dd 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberApplyToDoHandler.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberApplyToDoHandler.java @@ -41,8 +41,8 @@ public enum MemberApplyToDoHandler { "MEMBER_APPLY@" + record.getId(), "", record.getUserId(), - "/platform/member/apply", - "/platform/member/apply/h5" + "/platform/member/apply/mine", + "/platform/member/apply/mine" ); } }, @@ -64,10 +64,10 @@ public enum MemberApplyToDoHandler { "退回重新修改", ShiroUtil.getUserId(), List.of(loginname), - "/platform/member/apply", - "/platform/member/apply", - "/platform/member/apply", - "/platform/member/apply" + "/platform/member/apply/mine", + "/platform/member/apply/mine", + "/platform/member/apply/mine", + "/platform/member/apply/mine" ); localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), "退回重新修改"); @@ -107,10 +107,10 @@ public enum MemberApplyToDoHandler { "校工会审核", ShiroUtil.getUserId(), schoolLeaderLoginNames, - "/platform/member/apply/audit/school", - "/platform/member/apply/audit/school", - "/platform/member/apply/audit/school", - "/platform/member/apply/audit/school" + "/platform/member/apply/schoolUnion/audit", + "/platform/member/apply/schoolUnion/audit", + "/platform/member/apply/schoolUnion/audit", + "/platform/member/apply/schoolUnion/audit" ); localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), "校工会审核"); @@ -149,10 +149,10 @@ public enum MemberApplyToDoHandler { "分工会审核", ShiroUtil.getUserId(), unionLeaderLoginNames, - "/platform/member/apply/audit/union", - "/platform/member/apply/audit/union", - "/platform/member/apply/audit/union", - "/platform/member/apply/audit/union" + "/platform/member/apply/branchUnion/audit", + "/platform/member/apply/branchUnion/audit", + "/platform/member/apply/branchUnion/audit", + "/platform/member/apply/branchUnion/audit" ); localProcessService.updateProcessNodeName("MEMBER_APPLY@" + record.getId(), "分工会审核"); } diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberChangeToDoHandler.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberChangeToDoHandler.java index fe13e0f..afbba26 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberChangeToDoHandler.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/handle/MemberChangeToDoHandler.java @@ -34,8 +34,8 @@ public enum MemberChangeToDoHandler { "MEMBER_CHANGE@" + record.getId(), "", record.getUserId(), - "/platform/member/change/apply", - "/platform/member/change/apply" + "/platform/member/change/mine", + "/platform/member/change/mine" ); } }, @@ -67,10 +67,10 @@ public enum MemberChangeToDoHandler { nodeName, ShiroUtil.getUserId(), List.of(loginname), - "/platform/member/change/apply", - "/platform/member/change/apply", - "/platform/member/change/apply", - "/platform/member/change/apply" + "/platform/member/change/mine", + "/platform/member/change/mine", + "/platform/member/change/mine", + "/platform/member/change/mine" ); localProcessService.updateProcessNodeName("MEMBER_CHANGE@" + record.getId(), nodeName); @@ -108,10 +108,10 @@ public enum MemberChangeToDoHandler { "分工会审核", ShiroUtil.getUserId(), branchLeaders, - "/platform/member/change/audit/union", - "/platform/member/change/audit/union", - "/platform/member/change/audit/union", - "/platform/member/change/audit/union" + "/platform/member/change/branchUnion/audit", + "/platform/member/change/branchUnion/audit", + "/platform/member/change/branchUnion/audit", + "/platform/member/change/branchUnion/audit" ); localProcessService.updateProcessNodeName("MEMBER_CHANGE@" + record.getId(), "分工会审核"); @@ -150,10 +150,10 @@ public enum MemberChangeToDoHandler { "校工会审核", ShiroUtil.getUserId(), schoolLeaders, - "/platform/member/change/audit/school", - "/platform/member/change/audit/school", - "/platform/member/change/audit/school", - "/platform/member/change/audit/school" + "/platform/member/change/schoolUnion/audit", + "/platform/member/change/schoolUnion/audit", + "/platform/member/change/schoolUnion/audit", + "/platform/member/change/schoolUnion/audit" ); localProcessService.updateProcessNodeName("MEMBER_CHANGE@" + record.getId(), "校工会审核"); diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberChangeRecord.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberChangeRecord.java index 4f3b3ee..3e0e56a 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberChangeRecord.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/model/MemberChangeRecord.java @@ -163,6 +163,11 @@ public class MemberChangeRecord { @ColDefine(type = ColType.VARCHAR, width = 20) private String campus; + @Column + @Comment("退休日期") + @ColDefine(type = ColType.DATE) + private Date retireDate; + @Column @Comment("家庭主要成员及其工作单位") @ColDefine(type = ColType.MYSQL_JSON) diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java index b366fe4..0b84e4a 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/member/service/impl/MemberCommonServiceImpl.java @@ -251,11 +251,7 @@ public class MemberCommonServiceImpl extends ViServiceImpl implements history.setChangeTime(DateUtil.date()); history.setChangeTypes(record.getChangeTypes()); history.setChangeOrigin(record.getChangeOrigin()); - history.setChangeInfos(changeList); - String changeInfos = changeList.stream().map(v -> { - return "(变更字段:" + v.getString("fieldName") + ",变更前:" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + ",变更后:" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ")"; - }).collect(Collectors.joining(";")); - history.setChangeInfosStr(changeInfos); + // 加入会员 if (record.getMember()) { @@ -314,18 +310,39 @@ public class MemberCommonServiceImpl extends ViServiceImpl implements // 如果工会发生变更了,就是工会关系变更,记录到特殊人员表中 if (record.getChangeTypes().contains(MemberChangeType.UNION_CHANGE.getType())) { - Sys_union union = dao().fetch(Sys_union.class, Cnd.where("id", "=", record.getUnionId())); - SpecialStaff staff = new SpecialStaff(); - staff.setUserId(userId); - staff.setPersonnelRelationUnitId(user.getUnitid()); - staff.setPersonnelRelationUnitName(user.getUnitname()); - staff.setUnionRelationUnionId(union.getId()); - staff.setUnionRelationUnionName(union.getUnionname()); - staff.setIsManyUnit(false); - staff.setSpecialStaffType("HMC_RELATION"); - dao().insert(staff); + if (dao().count(SpecialStaff.class, Cnd.where("userId", "=", record.getUserId())) > 0) { + dao().clear(SpecialStaff.class, Cnd.where("userId", "=", record.getUserId())); + user = dao().fetch(User.class, Cnd.where("id", "=", record.getUserId())); + } + + if (!ObjectUtil.equals(user.getUnionid(), record.getUnionId())) { + Sys_union union = dao().fetch(Sys_union.class, Cnd.where("id", "=", record.getUnionId())); + // 记录工会关系变更的数据 + NutMap map = NutMap.NEW(); + map.put("field", "unionId"); + map.put("fieldName", "工会"); + map.put("sourceValue", record.getUnionName()); + map.put("newValue", union.getUnionname()); + changeList.add(map); + + SpecialStaff staff = new SpecialStaff(); + staff.setUserId(userId); + staff.setPersonnelRelationUnitId(user.getUnitid()); + staff.setPersonnelRelationUnitName(user.getUnitname()); + staff.setUnionRelationUnionId(union.getId()); + staff.setUnionRelationUnionName(union.getUnionname()); + staff.setIsManyUnit(false); + staff.setSpecialStaffType("HMC_RELATION"); + dao().insert(staff); + } } + // 如果有工会关系变更,也需要记录变更了什么工会 + history.setChangeInfos(changeList); + String changeInfos = changeList.stream().map(v -> { + return v.getString("fieldName") + ":" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + "->" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ";"; + }).collect(Collectors.joining(";")); + history.setChangeInfosStr(changeInfos); dao().updateIgnoreNull(info); dao().insert(history); diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java index 2c2d0ae..8c56f41 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java @@ -79,6 +79,7 @@ public class SourceChangeManageController { scmt.changeTypes, scmt.changeOrigin, scmt.isOperate, + scmt.changeInfosStr, u.id AS userId FROM source_change_middle_table scmt diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/impl/SourceChangeManageServiceImpl.java b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/impl/SourceChangeManageServiceImpl.java index 06d1fb4..8354675 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/impl/SourceChangeManageServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/sourcechange/service/impl/SourceChangeManageServiceImpl.java @@ -60,6 +60,8 @@ public class SourceChangeManageServiceImpl extends BaseServiceImpl { + return v.getString("fieldName") + ":" + HtmlUtil.cleanHtmlTag(v.getString("sourceValue")) + "->" + HtmlUtil.cleanHtmlTag(v.getString("newValue")) + ";"; + }).collect(Collectors.joining(";")); + history.setChangeInfosStr(changeInfos); history.setChangeTypes(changeTypes); dao().insert(history); diff --git a/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java index 2963e24..7abba93 100644 --- a/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java +++ b/src/main/java/io/v/nutz/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java @@ -148,7 +148,7 @@ public class SpecialStaffManageController { $condition """); Cnd cnd = Cnd.NEW(); - cnd.where("id", "not in", "(select userId from special_staff)"); + cnd.and("id", "not in", "(select userId from special_staff)"); if (StrUtil.isNotBlank(keyWord)) { SqlExpressionGroup seg = new SqlExpressionGroup(); seg.orLike("username", keyWord); diff --git a/src/main/resources/static/components/plugins/TextEditor.vue b/src/main/resources/static/components/plugins/TextEditor.vue index b8e455e..58d9cad 100644 --- a/src/main/resources/static/components/plugins/TextEditor.vue +++ b/src/main/resources/static/components/plugins/TextEditor.vue @@ -1,7 +1,7 @@ diff --git a/src/main/resources/static/components/sign/sign.vue b/src/main/resources/static/components/sign/sign.vue index a649f23..f3078f3 100644 --- a/src/main/resources/static/components/sign/sign.vue +++ b/src/main/resources/static/components/sign/sign.vue @@ -81,8 +81,8 @@ module.exports = { clearInterval(signatureInterval) const ts = new Date().getTime() + (Math.floor(Math.random() * (1000 - 1 + 1)) + 1).toString() console.log(ts) - this.postAddress = location.protocol + '//' + location.host + '/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64 - // this.postAddress = 'https://zhgh.hmc.edu.cn/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64 + // this.postAddress = location.protocol + '//' + location.host + '/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64 + this.postAddress = 'https://zhgh.hmc.edu.cn/signature?prefix=' + this.prefix + '&id=' + ts + "&is_value_base64=" + this.is_value_base64 this.showQrCode = true diff --git a/src/main/resources/views/layouts/platform.html b/src/main/resources/views/layouts/platform.html index a526f1b..322d3ce 100644 --- a/src/main/resources/views/layouts/platform.html +++ b/src/main/resources/views/layouts/platform.html @@ -507,6 +507,16 @@ }); }, + async flushCache(){ + const day = moment().format('YYYY-MM-DD') + if (window.localStorage.getItem('flushCache') !== day) { + const {code, msg} = await $.post('/platform/home/clearCache') + if (code === 0) { + location.reload() + } + window.localStorage.setItem('flushCache', day) + } + }, findParentNodes(data, targetHref, parents = []) { for (const node of data) { if (node && node.href === targetHref) { @@ -545,6 +555,7 @@ created() { this.matchMenu() this.getUnReadMsgNum() + this.flushCache() } }) diff --git a/src/main/resources/views/mobile/member/apply/branchUnionAudit/index.html b/src/main/resources/views/mobile/member/apply/branchUnionAudit/index.html new file mode 100644 index 0000000..ecfcfd8 --- /dev/null +++ b/src/main/resources/views/mobile/member/apply/branchUnionAudit/index.html @@ -0,0 +1,312 @@ + + +
+ + + + + + + + + +
+ +
+
+
+
+
+ | + {{item.username + '(' + item.loginname + ')'}} +
+
+
+ +
+ + 工作单位:{{item.unitName}} + 所属工会:{{item.unionName}} + 分配工会:{{item.allocationUnionName}} + 在职状态:{{item.userState}} + 人员类型:{{item.personType}} + +
+ + + +
+
+ 当前状态: + {{item.stateName}} +
+
+ 查看 + + 审核 + + 撤回 + +
+
+
+
+
+ +
+ + + + + + +
+
{{ '分工会接收' }}
+ + + + + +
+ 取消 + 退回申请 + 拒绝接收 + 同意接收 +
+
+
+
+ + diff --git a/src/main/resources/views/mobile/member/apply/common/memberApplyAuditInfo.js b/src/main/resources/views/mobile/member/apply/common/memberApplyAuditInfo.js new file mode 100644 index 0000000..e9f2f93 --- /dev/null +++ b/src/main/resources/views/mobile/member/apply/common/memberApplyAuditInfo.js @@ -0,0 +1,155 @@ +const MEMBER_APPLY_AUDIT_INFO = { + template: /*language=HTML*/ ` +
+ + + + +
+
+ 申请信息 +
+
+ {{clickUpOrDown ? '点击收起' : '点击展开'}} + +
+
+
+ + + +
+
+ + + + {{ viewData.schoolAudit.username }} + {{ viewData.schoolAudit.auditTime }} + {{ viewData.allocationUnionName }} + {{ viewData.schoolAudit.auditOpinion }} + + + + + + {{ viewData.branchAudit.username }} + {{ viewData.branchAudit.auditTime }} + {{ viewData.branchAudit.auditOpinion }} + + +
+
+ `, + data(){ + return{ + activeName: 'basicInfo', + viewData: { + schoolAudit: {}, + branchAudit: {} + }, + + clickUpOrDown: true + } + }, + methods:{ + async onOpen(id){ + const resp = await $.post('/platform/member/apply/mine/findMemberApplyRecord', {id}) + if (resp.code === 0) { + this.viewData = resp.data + this.$emit('union-name', this.viewData.userUnionName) + if (this.viewData.families) { + this.viewData.families = JSON.parse(this.viewData.families) + } else { + this.viewData.families = [] + } + } + } + }, + style: /*language=CSS*/ + ` + .column-cell { + flex-direction: column; + } + .family-table { + width: 100%; + max-width: 100%; + border-collapse: collapse; + table-layout: auto; + text-align: center; + font-family: 'Arial', sans-serif; + margin: 20px 0; + } + .table-header { + background-color: #1867b0; + color: white; + font-weight: bold; + text-transform: uppercase; + } + .table-row { + background-color: #f9f9f9; + transition: background-color 0.3s; + } + .table-row:hover { + background-color: #f1f1f1; + } + .table-cell { + padding: 10px 20px; + border: 1px solid #ddd; + text-align: center; + } + ` +} diff --git a/src/main/resources/views/mobile/member/apply/mine/index.html b/src/main/resources/views/mobile/member/apply/mine/index.html new file mode 100644 index 0000000..4a07849 --- /dev/null +++ b/src/main/resources/views/mobile/member/apply/mine/index.html @@ -0,0 +1,231 @@ + + +
+ + + + + + + + + +
+ +
+
+
+
+
+ | + {{item.username + '(' + item.loginname + ')'}} +
+
+
+ +
+ + 工作单位:{{item.unitName}} + 所属工会:{{item.unionName}} + 在职状态:{{item.userState}} + 人员类型:{{item.personType}} + +
+ + + +
+
+ 当前状态: + {{item.stateName}} +
+
+ 查看 + + 编辑 +
+
+
+
+
+ +
+ + + + + + + +
+ + diff --git a/src/main/resources/views/mobile/member/apply/sbumit/index.html b/src/main/resources/views/mobile/member/apply/sbumit/index.html deleted file mode 100644 index 85cb3b0..0000000 --- a/src/main/resources/views/mobile/member/apply/sbumit/index.html +++ /dev/null @@ -1,15 +0,0 @@ - -
- -
- - diff --git a/src/main/resources/views/mobile/member/apply/schoolUnionAudit/index.html b/src/main/resources/views/mobile/member/apply/schoolUnionAudit/index.html new file mode 100644 index 0000000..a05a8c5 --- /dev/null +++ b/src/main/resources/views/mobile/member/apply/schoolUnionAudit/index.html @@ -0,0 +1,359 @@ + + +
+ + + + + + + + + + +
+ +
+
+
+
+
+ | + {{item.username + '(' + item.loginname + ')'}} +
+
+
+ +
+ + 工作单位:{{item.unitName}} + 所属工会:{{item.unionName}} + 分配工会:{{item.allocationUnionName}} + 在职状态:{{item.userState}} + 人员类型:{{item.personType}} + +
+ + + +
+
+ 当前状态: + {{item.stateName}} +
+
+ 查看 + + 审核 + + 撤回 + +
+
+
+
+
+ +
+ + + + + + +
+
{{ '校工会审核' }}
+ + + + + + + + + + +
+ 取消 + 退回申请 + 拒绝申请 + 同意申请 +
+
+
+
+ + diff --git a/src/main/resources/views/mobile/member/apply/submit/index.html b/src/main/resources/views/mobile/member/apply/submit/index.html new file mode 100644 index 0000000..8c6c02b --- /dev/null +++ b/src/main/resources/views/mobile/member/apply/submit/index.html @@ -0,0 +1,406 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ 家庭主要成员及联系方式 +
+
+ +
+ + + +
+
+ + + + +
+
+ 返 回 + 保存申请 + 提交申请 +
+
+
+ + diff --git a/src/main/resources/views/mobile/member/common/memberInfoH5.js b/src/main/resources/views/mobile/member/common/memberInfoH5.js new file mode 100644 index 0000000..ce5881c --- /dev/null +++ b/src/main/resources/views/mobile/member/common/memberInfoH5.js @@ -0,0 +1,81 @@ +const MEMBER_INFO_H5 = { + template: /*language=HTML*/ ` +
+ + {{ viewData.loginname }} + {{ viewData.username }} + {{ viewData.sex }} + + {{ viewData.nation }} + {{ moment(viewData.birthday).format("YYYY年MM月DD日") }} + {{ viewData.political }} + + {{ viewData.education }} + {{ viewData.academicDegree }} + {{ viewData.position }} + + {{ viewData.unitname }} + {{ viewData.unionname }} + {{ viewData.campus }} + + {{ viewData.idcard }} + {{ viewData.mobile }} + {{ viewData.email }} + + {{ viewData.userState }} + {{ viewData.personType }} + {{ viewData.preparedBy || '暂无' }} + + {{ viewData.member ? '会员' : '非会员' }} + {{ viewData.welfareMember ? '福利会员' : '非福利会员' }} + + + + + + + + + + + + + + + + + + + + + +
序号与本人关系姓名单位备注
{{ index + 1 }}{{ item.name }}{{ item.age }}{{ item.relation }}{{ item.monthlyIncome }}
+
+ +
+ 无数据 +
+
+
+ `, + data(){ + return{ + viewData: {} + } + }, + methods: { + onOpen(userId){ + $.post('/platform/member/common/fetchMemberUserById', {userId}) + .then(resp => { + if (resp.code === 0) { + this.viewData = resp.data + } else { + this.$toast.fail(resp.msg) + } + }) + } + }, + created() { + + } +} diff --git a/src/main/resources/views/mobile/platform.html b/src/main/resources/views/mobile/platform.html index dccb2b6..12dbbe0 100644 --- a/src/main/resources/views/mobile/platform.html +++ b/src/main/resources/views/mobile/platform.html @@ -53,8 +53,17 @@ + + + + + + diff --git a/src/main/resources/views/platform/member/apply/audit/Layout.html b/src/main/resources/views/platform/member/apply/audit/Layout.html index f820a36..0c92061 100644 --- a/src/main/resources/views/platform/member/apply/audit/Layout.html +++ b/src/main/resources/views/platform/member/apply/audit/Layout.html @@ -462,9 +462,9 @@ this.pageData(); if ("${@shiro.hasRole('sysadmin')||@shiro.hasRole('SchoolUnionMemberAdmin')||@shiro.hasRole('H03')}" === 'true') { - this.unions = await getUnions(null, false) + this.unions = await getUnionList(null, false) } else { - this.unions = await getUnions(null, true) + this.unions = await getUnionList(null, true) this.$set(this.pageForm, 'unionId', this.unions ? this.unions[0].id : null) this.flushUnits() } diff --git a/src/main/resources/views/platform/member/apply/branchUnionAudit/index.html b/src/main/resources/views/platform/member/apply/branchUnionAudit/index.html index 879b9ea..99c3f17 100644 --- a/src/main/resources/views/platform/member/apply/branchUnionAudit/index.html +++ b/src/main/resources/views/platform/member/apply/branchUnionAudit/index.html @@ -51,7 +51,7 @@ layout("/layouts/platform.html"){