diff --git a/src/main/java/com/budwk/app/base/constant/BpmProcessConstant.java b/src/main/java/com/budwk/app/base/constant/BpmProcessConstant.java index 3e65356..d0f34f4 100644 --- a/src/main/java/com/budwk/app/base/constant/BpmProcessConstant.java +++ b/src/main/java/com/budwk/app/base/constant/BpmProcessConstant.java @@ -26,6 +26,8 @@ public enum BpmProcessConstant { MEMBER_SINGLE_APPLY("会员入会申请"), + MEMBER_CHANGE("会员变更申请"), + MEMBER_BRANCH_UNION_CHANGE("会员分工会变更"), CLUB_JOIN("协会入会申请"), diff --git a/src/main/java/com/budwk/app/sys/controller/SysUnionGroupController.java b/src/main/java/com/budwk/app/sys/controller/SysUnionGroupController.java index 54700a1..36f21e6 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysUnionGroupController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysUnionGroupController.java @@ -1,12 +1,11 @@ package com.budwk.app.sys.controller; import cn.dev33.satoken.annotation.SaCheckPermission; -import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.sys.models.Sys_union_group; -import com.budwk.app.sys.models.Sys_user_role; +import com.budwk.app.sys.models.Sys_unit; import com.budwk.app.sys.services.SysUnionGroupService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -14,14 +13,18 @@ import lombok.extern.slf4j.Slf4j; import org.nutz.aop.interceptor.ioc.TransAop; 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.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; +import org.nutz.mvc.annotation.Param; import javax.validation.Valid; +import java.util.Arrays; import java.util.List; @IocBean @@ -81,10 +84,39 @@ public class SysUnionGroupController { @At @SaCheckPermission("sys.manager.union") @ApiOperation("获取非工会小组组长人员") - public Result listUser(@Valid String unionId, String keyword) { - List list = sysUnionGroupService.listNotLeader(unionId, keyword); + public Result listUser(@Valid @Param("unionId") String unionId, + @Param("keyword") String keyword, + @Param("userIds") String[] userIds) { + List list = sysUnionGroupService.listNotLeader(unionId, keyword, Arrays.asList(userIds)); return Result.success(list); } + @At + @SaCheckPermission("sys.manager.union") + @ApiOperation("获取组成单位") + public Result getUnits(String unionId, String groupId){ + Sql sql = Sqls.create(""" + SELECT + j.unitId + FROM + sys_union_group, + JSON_TABLE (unitIds, '$[*]' COLUMNS (unitId VARCHAR (50) PATH '$')) AS j + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("unionId", "=", unionId); + cnd.andEX("id", "!=", groupId); + sql.setCondition(cnd); + + sql.setCallback(Sqls.callback.strList()); + dao.execute(sql); + List list = sql.getList(String.class); + + List unitList = dao.query(Sys_unit.class, + Cnd.where("unionId", "=", unionId) + .and("unitLevel", "=", 2) + .andEX("id", "not in", list)); + return Result.success(unitList); + } } diff --git a/src/main/java/com/budwk/app/sys/models/Sys_union_group.java b/src/main/java/com/budwk/app/sys/models/Sys_union_group.java index fa8997d..b3552ae 100644 --- a/src/main/java/com/budwk/app/sys/models/Sys_union_group.java +++ b/src/main/java/com/budwk/app/sys/models/Sys_union_group.java @@ -6,6 +6,8 @@ import lombok.EqualsAndHashCode; import org.nutz.dao.entity.annotation.*; import org.nutz.dao.interceptor.annotation.PrevInsert; +import java.util.List; + @Data @EqualsAndHashCode(callSuper = true) @Table("sys_union_group") @@ -23,6 +25,11 @@ public class Sys_union_group extends BaseModel { @ColDefine(type = ColType.VARCHAR, width = 32) private String unionId; + @Column + @Comment("绑定单位Id集合") + @ColDefine(type = ColType.MYSQL_JSON) + private List unitIds; + @Comment("名称") @Column @ColDefine(type = ColType.VARCHAR, width = 100) @@ -33,10 +40,9 @@ public class Sys_union_group extends BaseModel { @ColDefine(type = ColType.VARCHAR, width = 10) private String code; - @Comment("小组长") @Column + @Comment("小组长") @ColDefine(type = ColType.VARCHAR, width = 32) - private String leader; - + private List leaders; } diff --git a/src/main/java/com/budwk/app/sys/services/SysUnionGroupService.java b/src/main/java/com/budwk/app/sys/services/SysUnionGroupService.java index f542a60..8f06347 100644 --- a/src/main/java/com/budwk/app/sys/services/SysUnionGroupService.java +++ b/src/main/java/com/budwk/app/sys/services/SysUnionGroupService.java @@ -22,8 +22,9 @@ public interface SysUnionGroupService extends BaseService { * 查询非组长的成员 * @param unionId 分工会id * @param keyword 关键字 + * @param userIds 用户Id */ - List listNotLeader(String unionId, String keyword); + List listNotLeader(String unionId, String keyword, List userIds); /** * 分页查询 diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysUnionGroupServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysUnionGroupServiceImpl.java index 82284c6..54cbcc3 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysUnionGroupServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysUnionGroupServiceImpl.java @@ -47,7 +47,7 @@ public class SysUnionGroupServiceImpl extends BaseServiceImpl i throw new BaseException("小组编码已存在"); } dao().insert(group); - grantRole(group.getId(), group.getLeader()); + grantRole(group.getId(), group.getLeaders()); } @Override @@ -59,7 +59,7 @@ public class SysUnionGroupServiceImpl extends BaseServiceImpl i throw new BaseException("小组编码已存在"); } dao().updateIgnoreNull(group); - grantRole(group.getId(), group.getLeader()); + grantRole(group.getId(), group.getLeaders()); } @Override @@ -72,14 +72,19 @@ public class SysUnionGroupServiceImpl extends BaseServiceImpl i } @Override - public List listNotLeader(String unionId, String keyword) { + public List listNotLeader(String unionId, String keyword, List userIds) { Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user $condition limit 0,10"); Cnd cnd = Cnd.NEW(); cnd.and("unionId", "=", unionId); - SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.orLike("username", keyword); - seg.orLike("loginname", keyword); - cnd.and(seg); + if (StrUtil.isNotBlank(keyword)) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike("username", keyword); + seg.orLike("loginname", keyword); + cnd.and(seg); + } else { + cnd.and("id", "in", userIds); + } + sql.setCondition(cnd); return listMap(sql); } @@ -88,12 +93,38 @@ public class SysUnionGroupServiceImpl extends BaseServiceImpl i public Pagination pageData(PageForm pageForm, String unionId) { Sql sql = Sqls.create(""" SELECT - t1.*, - t2.username AS leaderUserName, - t2.mobile AS leaderMobile + t1.id, + t1.`code`, + t1.unionId, + t1.`name`, + t1.leaders, + t1.unitIds, + u_agg.unitInfos, + l_agg.leaderInfos FROM sys_union_group t1 - LEFT JOIN sys_user t2 ON t2.id = t1.leader + LEFT JOIN ( + SELECT + tg.id, + GROUP_CONCAT(u.NAME ORDER BY u.id) AS unitInfos + FROM + sys_union_group tg + JOIN JSON_TABLE (tg.unitIds, '$[*]' COLUMNS (unitId VARCHAR (50) PATH '$')) ju + JOIN sys_unit u ON u.id = ju.unitId + GROUP BY + tg.id + ) u_agg ON u_agg.id = t1.id + LEFT JOIN ( + SELECT + tg.id, + GROUP_CONCAT(CONCAT(u1.username, '(', u1.loginname, ')') ORDER BY u1.username) AS leaderInfos + FROM + sys_union_group tg + JOIN JSON_TABLE (tg.leaders, '$[*]' COLUMNS (userId VARCHAR (50) PATH '$')) jl + JOIN sys_user u1 ON u1.id = jl.userId + GROUP BY + tg.id + ) l_agg ON l_agg.id = t1.id $condition """); Cnd cnd = Cnd.NEW(); @@ -124,16 +155,19 @@ public class SysUnionGroupServiceImpl extends BaseServiceImpl i * @param groupId 小组id * @param groupLeader 组长id */ - private void grantRole(String groupId, String groupLeader) { + private void grantRole(String groupId, List groupLeader) { // 小组长权限 Sys_role unionGroupRole = sysRoleService.getByCode(RoleConstant.BRANCH_UNION_GROUP_LEADER.name()); deleteUserRole(groupId, unionGroupRole.getId()); - Sys_user_role userRole = new Sys_user_role(); - userRole.setRoleId(unionGroupRole.getId()); - userRole.setUnionGroupId(groupId); - userRole.setUserId(groupLeader); - dao().insert(userRole); + List roleList = groupLeader.stream().map(v -> { + Sys_user_role userRole = new Sys_user_role(); + userRole.setRoleId(unionGroupRole.getId()); + userRole.setUnionGroupId(groupId); + userRole.setUserId(v); + return userRole; + }).toList(); + dao().insert(roleList); sysUserService.clearCache(); sysRoleService.clearCache(); diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysUserServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysUserServiceImpl.java index ac5ec22..a9d8a19 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysUserServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysUserServiceImpl.java @@ -17,6 +17,7 @@ import com.budwk.app.sys.models.*; import com.budwk.app.sys.services.SysMenuService; import com.budwk.app.sys.services.SysRoleService; import com.budwk.app.sys.services.SysUserService; +import com.budwk.app.sys.views.View_user; import com.budwk.app.web.commons.base.Globals; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; @@ -387,7 +388,17 @@ public class SysUserServiceImpl extends BaseServiceImpl implements Sys StpUtil.login(user.getId()); StpUtil.checkLogin(); - StpUtil.getSession(true).set("loginname", Strings.sNull(user.getLoginname())).set("username", Strings.sNull(user.getUsername())).set("unitId", Strings.sNull(user.getUnitId())).set("unitPath", Strings.sNull(user.getUnitPath())).set("unionId", ObjectUtil.isEmpty(user.getUnion()) ? "" : user.getUnion().getId()); + // 查询一下视图,存储一些sys_user表中没有的字段 + View_user viewUser = dao().fetch(View_user.class, Cnd.where("id", "=", user.getId())); + StpUtil.getSession(true) + .set("loginname", Strings.sNull(user.getLoginname())) + .set("username", Strings.sNull(user.getUsername())) + .set("unitId", Strings.sNull(user.getUnitId())) + .set("unitPath", Strings.sNull(user.getUnitPath())) + .set("unionId", ObjectUtil.isEmpty(user.getUnion()) ? "" : user.getUnion().getId()) + .set("unionGroupId", Strings.sNull(viewUser.getUnionGroupId())) + .set("clubIds", Strings.sNull(viewUser.getClubIds())); + Sys_log sysLog = new Sys_log(); sysLog.setType("info"); sysLog.setTag("用户登陆"); diff --git a/src/main/java/com/budwk/app/sys/views/View_user.java b/src/main/java/com/budwk/app/sys/views/View_user.java index d22d9fd..7560039 100644 --- a/src/main/java/com/budwk/app/sys/views/View_user.java +++ b/src/main/java/com/budwk/app/sys/views/View_user.java @@ -177,4 +177,16 @@ public class View_user { private Date memberJoinTime; private Date memberLeaveTime; + + @Column + private String unionGroupId; + + @Column + private String unionGroupName; + + @Column + private String clubIds; + + @Column + private Boolean aidFundMember; } diff --git a/src/main/java/com/budwk/app/web/commons/auth/utils/SecurityUtil.java b/src/main/java/com/budwk/app/web/commons/auth/utils/SecurityUtil.java index e2267f7..a692dbf 100644 --- a/src/main/java/com/budwk/app/web/commons/auth/utils/SecurityUtil.java +++ b/src/main/java/com/budwk/app/web/commons/auth/utils/SecurityUtil.java @@ -4,30 +4,67 @@ import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.stp.StpUtil; import org.nutz.lang.Strings; +import java.util.Arrays; +import java.util.List; + /** * @author wizzer@qq.com */ public class SecurityUtil { + + /** + * 获取当前用户ID + */ public static String getUserId() { return Strings.sNull(StpUtil.getLoginId("")); } + /** + * 获取当前用户登录名 + */ public static String getUserLoginname() { return Strings.sNull(getSession().get("loginname")); } + /** + * 获取当前用户姓名 + */ public static String getUserUsername() { return Strings.sNull(getSession().get("username")); } + /** + * 获取当前用户单位ID + */ public static String getUnitId() { return Strings.sNull(getSession().get("unitId")); } + /** + * 获取当前用户工会ID + */ public static String getUnionId() { return Strings.sNull(getSession().get("unionId")); } + /** + * 获取当前用户工会小组ID + */ + public static String getUnionGroupId() { + return Strings.sNull(getSession().get("unionGroupId")); + } + + /** + * 获取当前用户协会ID + */ + public static List getClubIds() { + String clubIds = getSession().get("clubIds").toString(); + return Arrays.stream(clubIds.split(",")).toList(); + } + + /** + * 获取当前用户Session + */ public static SaSession getSession() { return StpUtil.getSession(true); } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/buildHome/controller/BuildHomeAgencyController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/buildHome/controller/BuildHomeAgencyController.java index b884d15..ba1d385 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/buildHome/controller/BuildHomeAgencyController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/buildHome/controller/BuildHomeAgencyController.java @@ -194,7 +194,7 @@ public class BuildHomeAgencyController { @SaCheckPermission("buildHome.agency") @ApiOperation("获取非工会小组组长人员") public Result listUser(@Valid String keyword) { - List list = sysUnionGroupService.listNotLeader(SecurityUtil.getUnionId(), keyword); + List list = sysUnionGroupService.listNotLeader(SecurityUtil.getUnionId(), keyword, null); return Result.success(list); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/constant/MemberChangeType.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/constant/MemberChangeType.java index f905537..fedc8b6 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/constant/MemberChangeType.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/constant/MemberChangeType.java @@ -1,5 +1,6 @@ package com.budwk.app.zhgh.staffmanage.member.constant; +import com.budwk.app.base.annotation.DictEnum; import lombok.AllArgsConstructor; import lombok.Getter; @@ -12,15 +13,40 @@ import lombok.Getter; */ @Getter @AllArgsConstructor +@DictEnum(key = "MemberChangeType", name = "会员变更类型") public enum MemberChangeType { //变更类型 - NEW("新入职"), - RESTORE("入会"), - WITHDRAWAL("退会"), - UNIT_CHANGE("单位异动"), - BASIC_CHANGE("基本信息异动"); + NEW("NEW", "新入职"), + RESTORE("RESTORE", "入会"), + WITHDRAWAL("WITHDRAWAL", "退会"), + ON_DUTY("ON_DUTY", "在岗"), + POSTDOC("POSTDOC", "在站"), + NONE("NONE", "无"), + OTHER("OTHER", "其他"), + QUIT("QUIT", "辞职"), + OUT_TRANSFER("OUT_TRANSFER", "调出"), + RETIRE("RETIRE", "退休"), + CONTRACT_END("CONTRACT_END", "合同到期"), + LEAVE("LEAVE", "离职"), + + DISMISS("DISMISS", "辞退"), + DISCHARGE("DISCHARGE", "退站"), + EXPIRE("EXPIRE", "不保留编制"), + POST_EXIT("POST_EXIT", "出站"), + TERMINATE("TERMINATE", "解聘"), + REMOVE("REMOVE", "除名"), + + RETIRE_DEATH("RETIRE_DEATH", "离休死亡"), + DEATH("DEATH", "死亡"), + POST_DEATH("POST_DEATH", "退休死亡"), + + UNIT_CHANGE("UNIT_CHANGE", "单位异动"), + UNION_CHANGE("UNION_CHANGE", "工会关系异动"), + BASIC_CHANGE("BASIC_CHANGE", "基本信息异动"); + + private final String code; private final String changeTypeName; } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java index 59fb9df..d7fdccb 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyBranchUnionAuditController.java @@ -19,11 +19,10 @@ import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.web.controllers.open.commons.service.CommonService; import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyBranchAuditPageForm; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyPageForm; import com.budwk.app.zhgh.staffmanage.member.service.MemberApplyRecordService; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import com.budwk.app.zhgh.staffmanage.member.vo.MemberApplyVo; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo; import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; @@ -48,18 +47,16 @@ import java.util.Map; * 会员入会申请分工会审核 */ @IocBean -@At("/platform/member/apply/branchUnionAudit") @Ok("json:full") +@At("/platform/member/apply/branchUnionAudit") public class MemberApplyBranchUnionAuditController { - @Inject - private MemberApplyRecordService memberApplyRecordService; - @Inject - private MemberManageService memberManageService; @Inject private BpmService bpmService; @Inject private CommonService commonService; + @Inject + private MemberCommonService memberManageService; @At("") @Ok("beetl:/platform/zhgh/staffmanage/member/apply/branchunionaudit/index.html") @@ -72,21 +69,17 @@ public class MemberApplyBranchUnionAuditController { public Result pageData(MemberApplyPageForm pageForm) { Sql sql = Sqls.create(""" SELECT - record.id, - vu.id AS userId, - vu.username, - vu.loginname, - record.changeType, - record.changeTypes, - record.changeOrigin, - record.applyDateTime, - record.unitId, - IFNULL(record.unionId, vu.unionid) AS unionId, - vu.unionname AS unionName, - IFNULL(record.unitName, vu.unitname) AS unitName, - IFNULL(record.userState, vu.userState) AS userState, - IFNULL(record.preparedBy, vu.preparedBy) AS preparedBy, - IFNULL(record.personType, vu.personType) AS personType, + info.id, + info.username, + info.loginname, + info.sex, + info.unitName, + info.unionName, + info.userState, + info.preparedBy, + info.personType, + info.changeTypes, + info.applyDateTime, inst.id processInstanceId, inst.processInstanceNodeId, inst.processInstanceNodeName, @@ -100,17 +93,16 @@ public class MemberApplyBranchUnionAuditController { INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId INNER JOIN bpm_process_define define On inst.processDefineId = define.id - INNER JOIN member_apply_record record ON record.id = inst.processInstanceBusinessId + INNER JOIN member_apply_record info ON info.id = inst.processInstanceBusinessId LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' - LEFT JOIN vw_user vu ON vu.id = record.userId $condition """); Cnd cnd = Cnd.NEW(); - MemberApplyPageForm.buildSearch(cnd, pageForm); + pageForm.buildSearch(cnd, "info."); if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); } - cnd.and("nd.nodeCode","=",20); + cnd.and("nd.nodeCode","=",50); if (pageForm.getAudit() != null) { if (pageForm.getAudit()) { cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE); @@ -120,9 +112,9 @@ public class MemberApplyBranchUnionAuditController { } cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_SINGLE_APPLY.name()); cnd.desc("task.createdOn"); - cnd.groupBy("record.id"); + cnd.groupBy("info.id"); sql.setCondition(cnd); - Pagination listPageVO = memberApplyRecordService.listPageVO(pageForm, sql, MemberApplyVo.class); + Pagination listPageVO = memberManageService.listPageVO(pageForm, sql, MemberCommonVo.class); return Result.success(listPageVO); } @@ -155,29 +147,6 @@ public class MemberApplyBranchUnionAuditController { bpmService.revokeTask(taskId); return Result.success(); } - - - /** - * 获取变更信息,审核 - * @param recordId - * @return - */ - @At - @SaCheckPermission(value = {"member.apply.branchUnionAudit","member.apply.mine","member.apply.schoolUnionAudit"}, mode = SaMode.OR) - public Result findAuditChangeInfo(@Valid String recordId) { - Sys_user_history history = memberApplyRecordService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", recordId).or("id","=",recordId)); - MemberApplyRecord record = memberApplyRecordService.dao().fetch(MemberApplyRecord.class, recordId); - if (ObjectUtil.isAllEmpty(history, record)) { - return Result.error("获取变更信息失败"); - } - List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_SINGLE_APPLY, recordId); - if (Lang.isNotEmpty(history)) { - List nutMaps = memberManageService.compareMemberChangeInfo(history); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); - } - List nutMaps = memberManageService.compareMemberChangeInfo(record); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); - } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyController.java index 670d6a8..32d2ab0 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyController.java @@ -10,6 +10,7 @@ import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.sys.models.Sys_union_group; import com.budwk.app.sys.models.Sys_user; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.sys.views.View_user; @@ -28,10 +29,13 @@ import org.nutz.dao.util.cri.Static; 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.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import javax.validation.Valid; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.stream.Stream; @@ -101,17 +105,34 @@ public class MemberApplyController { record.setChangeType(MemberChangeType.RESTORE.name()); record.setChangeTypes(List.of(MemberChangeType.RESTORE.name())); dao.insertOrUpdate(record); - //设置分工会审核人 - List users = commonService.findUserInfoByRoleCode("unionId", SecurityUtil.getUnionId(), RoleConstant.BRANCH_UNION_CHAIRMAN.name()); - if (ObjectUtil.isEmpty(users)) { - return Result.error("您的分工会没有设置审核人,请联系校工会!"); - } - List operatorUsers = commonService.findUserInfoByRoleCode("unionId", SecurityUtil.getUnionId(), RoleConstant.BRANCH_UNION_OPERATOR.name()); - List assignments = Stream.concat(users.stream(), operatorUsers.stream()).distinct().toList(); + HashMap variables = new HashMap<>(); + // 审核人工号集合 + List assignments = new ArrayList<>(); + + // 去查询申请人的单位有没有工会小组 + Sys_union_group group = dao.fetch(Sys_union_group.class, Cnd.where(Sys_union_group::getUnionId, "=", SecurityUtil.getUnionId()) + .and(new Static("JSON_CONTAINS(unitIds, '\"%s\"')".formatted(SecurityUtil.getUnitId())))); + if (Lang.isNotEmpty(group)) { + List query = dao.query(Sys_user.class, Cnd.where("id", "in", group.getLeaders())); + assignments = query.stream().map(Sys_user::getLoginname).toList(); + // 有小组,走工会小组审核 + variables.put("processType", "unionGroup"); + } else { + //设置分工会审核人 + List users = commonService.findUserInfoByRoleCode("unionId", SecurityUtil.getUnionId(), RoleConstant.BRANCH_UNION_CHAIRMAN.name()); + if (ObjectUtil.isEmpty(users)) { + return Result.error("您的分工会没有设置审核人,请联系校工会!"); + } + List operatorUsers = commonService.findUserInfoByRoleCode("unionId", SecurityUtil.getUnionId(), RoleConstant.BRANCH_UNION_OPERATOR.name()); + assignments = Stream.concat(users.stream(), operatorUsers.stream()).distinct().toList().stream().map(Sys_user::getLoginname).toList(); + + // 没有小组,走分工会审核 + variables.put("processType", "branchUnion"); + } bpmservice.startSubmitProcessInstance(BpmProcessConstant.MEMBER_SINGLE_APPLY.name(), - "【会员入会申请】" + record.getUsername(), record.getId(), assignments.stream().map(Sys_user::getLoginname).toList(), null); + "【会员变更申请】" + record.getUsername(), record.getId(), assignments, variables); return Result.success(); } @@ -152,4 +173,15 @@ public class MemberApplyController { return Result.success(dao.fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId()))); } + + /** + * 获取当前登录用户信息,是用来判断当前用户是否是会员 + * @return + */ + @At + @ApiOperation("获取当前登录用户信息") + @SaCheckPermission("member.apply.submit") + public Result getSelfUserInfo() { + return Result.success(dao.fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId()))); + } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java index 2744fcc..715e878 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyMineController.java @@ -1,14 +1,11 @@ package com.budwk.app.zhgh.staffmanage.member.controller.apply; import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.constant.BpmProcessConstant; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.bpm.service.BpmService; import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; @@ -18,11 +15,12 @@ import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyPageForm; import com.budwk.app.zhgh.staffmanage.member.service.MemberApplyRecordService; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import com.budwk.app.zhgh.staffmanage.member.vo.MemberApplyVo; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo; import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; 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.aop.Aop; @@ -34,7 +32,6 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import javax.validation.Valid; -import java.util.ArrayList; import java.util.List; /** @@ -46,11 +43,11 @@ import java.util.List; public class MemberApplyMineController { @Inject - private MemberApplyRecordService memberApplyRecordService; + private Dao dao; @Inject private BpmService bpmService; @Inject - private MemberManageService memberManageService; + private MemberCommonService memberManageService; @At("") @Ok("beetl:/platform/zhgh/staffmanage/member/apply/mine/index.html") @@ -64,21 +61,17 @@ public class MemberApplyMineController { public Result pageData(MemberApplyPageForm pageForm) { Sql sql = Sqls.create(""" SELECT - record.id, - vu.id AS userId, - vu.username, - vu.loginname, - record.changeType, - record.changeTypes, - record.changeOrigin, - record.applyDateTime, - record.unitId, - IFNULL(record.unionId, vu.unionid) AS unionId, - vu.unionname AS unionName, - IFNULL(record.unitName, vu.unitname) AS unitName, - IFNULL(record.userState, vu.userState) AS userState, - IFNULL(record.preparedBy, vu.preparedBy) AS preparedBy, - IFNULL(record.personType, vu.personType) AS personType, + info.id, + info.username, + info.loginname, + info.sex, + info.unitName, + info.unionName, + info.userState, + info.preparedBy, + info.personType, + info.changeTypes, + info.applyDateTime, inst.id processInstanceId, inst.processInstanceNodeId, inst.processInstanceNodeCode, @@ -95,31 +88,31 @@ public class MemberApplyMineController { WHERE prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 ) AND taskStatus = 'COMPELTE' - ) AS nextTaskIsComplete + ) AS nextTaskIsComplete, + ( SELECT name FROM sys_union_group WHERE info.unitId = unitId ) AS groupName FROM bpm_process_task task INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId INNER JOIN bpm_process_define define On inst.processDefineId = define.id - INNER JOIN member_apply_record record ON record.id = inst.processInstanceBusinessId + INNER JOIN member_apply_record info ON info.id = inst.processInstanceBusinessId LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' - LEFT JOIN vw_user vu ON vu.id = record.userId $condition """); Cnd cnd = Cnd.NEW(); - MemberApplyPageForm.buildSearch(cnd, pageForm); + pageForm.buildSearch(cnd, "info."); cnd.and("nd.nodeCode", "=", 10); cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_SINGLE_APPLY.name()); - if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name())) { if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) { - cnd.andEX("vu.unionId","=", SecurityUtil.getUnionId()); + cnd.and("info.unionId", "=", SecurityUtil.getUnionId()); } else { - cnd.and("vu.id", "=", SecurityUtil.getUserId()); + cnd.and("info.userId", "=", SecurityUtil.getUserId()); } } - cnd.desc("record.applyDateTime"); + cnd.desc("info.applyDateTime"); sql.setCondition(cnd); - Pagination listPageVO = memberApplyRecordService.listPageVO(pageForm, sql, MemberApplyVo.class); + Pagination listPageVO = memberManageService.listPageVO(pageForm, sql, MemberCommonVo.class); return Result.success(listPageVO); } @@ -129,7 +122,7 @@ public class MemberApplyMineController { @SaCheckPermission("member.apply.mine") @SLog(tag = "会员管理-入会申请-我的申请记录", msg = "删除申请") public Result delete(@Valid String id) { - memberApplyRecordService.delete(id); + dao.clear(MemberApplyRecord.class, Cnd.where("id", "=", id)); bpmService.deleteInstance(id); return Result.success(); } @@ -147,34 +140,19 @@ public class MemberApplyMineController { /** - * 获取变更信息,审核 - * @param recordId + * 获取审核信息 + * @param id * @return */ @At @SaCheckPermission("member.apply.mine") - public Result findAuditChangeInfo(@Valid String recordId) { - MemberApplyRecord record = new MemberApplyRecord(); - Cnd cnd = Cnd.NEW(); - cnd.and(Cnd.exps("recordId", "=", recordId).or("id","=",recordId)); - if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) { - cnd.and("loginname", "=", SecurityUtil.getUserLoginname()); - record = memberApplyRecordService.dao().fetch(MemberApplyRecord.class, Cnd.where("loginname", "=", SecurityUtil.getUserLoginname()) - .and("id", "=", recordId)); - } else { - record = memberApplyRecordService.dao().fetch(MemberApplyRecord.class, recordId); - } - Sys_user_history history = memberApplyRecordService.dao().fetch(Sys_user_history.class, cnd); + public Result findMemberApplyRecord(@Valid String id) { + MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, id); + NutMap nutMap = Lang.obj2nutmap(record); - if (ObjectUtil.isAllEmpty(history, record)) { - return Result.error("您暂无权限查询"); - } - List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_SINGLE_APPLY, recordId); - if (Lang.isNotEmpty(history)) { - List nutMaps = memberManageService.compareMemberChangeInfo(history); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); - } - List nutMaps = memberManageService.compareMemberChangeInfo(record); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); + List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_SINGLE_APPLY, id); + nutMap.put("nodeTasks", nodeTasks); + + return Result.success().addData(nutMap); } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java index 0b32cdf..403146a 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplySchoolUnionAuditController.java @@ -13,6 +13,7 @@ import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; import com.budwk.app.bpm.param.BpmTaskApprovalParam; import com.budwk.app.bpm.service.BpmService; import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; +import com.budwk.app.sys.models.Sys_user; import com.budwk.app.sys.models.Sys_user_history; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; @@ -20,11 +21,12 @@ import com.budwk.app.web.controllers.open.commons.service.CommonService; import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyPageForm; import com.budwk.app.zhgh.staffmanage.member.service.MemberApplyRecordService; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import com.budwk.app.zhgh.staffmanage.member.vo.MemberApplyVo; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo; import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.dao.util.cri.Static; @@ -38,7 +40,6 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import javax.validation.Valid; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -46,18 +47,18 @@ import java.util.Map; * 会员入会申请校工会审核 */ @IocBean -@At("/platform/member/apply/schoolUnionAudit") @Ok("json:full") +@At("/platform/member/apply/schoolUnionAudit") public class MemberApplySchoolUnionAuditController { @Inject - private MemberApplyRecordService memberApplyRecordService; - @Inject - private CommonService commonService; + private Dao dao; @Inject private BpmService bpmService; @Inject - private MemberManageService memberManageService; + private CommonService commonService; + @Inject + private MemberCommonService memberManageService; @At("") @Ok("beetl:/platform/zhgh/staffmanage/member/apply/schoolunionaudit/index.html") @@ -70,21 +71,17 @@ public class MemberApplySchoolUnionAuditController { public Result pageData(MemberApplyPageForm pageForm) { Sql sql = Sqls.create(""" SELECT - record.id, - vu.id AS userId, - vu.username, - vu.loginname, - record.changeType, - record.changeTypes, - record.changeOrigin, - record.applyDateTime, - record.unitId, - IFNULL(record.unionId, vu.unionid) AS unionId, - vu.unionname AS unionName, - IFNULL(record.unitName, vu.unitname) AS unitName, - IFNULL(record.userState, vu.userState) AS userState, - IFNULL(record.preparedBy, vu.preparedBy) AS preparedBy, - IFNULL(record.personType, vu.personType) AS personType, + info.id, + info.username, + info.loginname, + info.sex, + info.unitName, + info.unionName, + info.userState, + info.preparedBy, + info.personType, + info.changeTypes, + info.applyDateTime, inst.id processInstanceId, inst.processInstanceNodeId, inst.processInstanceNodeName, @@ -98,17 +95,16 @@ public class MemberApplySchoolUnionAuditController { INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId INNER JOIN bpm_process_define define On inst.processDefineId = define.id - INNER JOIN member_apply_record record ON record.id = inst.processInstanceBusinessId + INNER JOIN member_apply_record info ON info.id = inst.processInstanceBusinessId LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' - LEFT JOIN vw_user vu ON vu.id = record.userId $condition """); Cnd cnd = Cnd.NEW(); - MemberApplyPageForm.buildSearch(cnd, pageForm); + pageForm.buildSearch(cnd, "info."); if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); } - cnd.and("nd.nodeCode","=",50); + cnd.and("nd.nodeCode","=",80); if (pageForm.getAudit() != null) { if (pageForm.getAudit()) { cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE); @@ -118,9 +114,9 @@ public class MemberApplySchoolUnionAuditController { } cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_SINGLE_APPLY.name()); cnd.desc("task.createdOn"); -// cnd.groupBy("record.id"); + cnd.groupBy("info.id"); sql.setCondition(cnd); - Pagination listPageVO = memberApplyRecordService.listPageVO(pageForm, sql, MemberApplyVo.class); + Pagination listPageVO = memberManageService.listPageVO(pageForm, sql, MemberCommonVo.class); return Result.success(listPageVO); } @@ -133,8 +129,11 @@ public class MemberApplySchoolUnionAuditController { public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) { Map variables = BeanUtil.beanToMap(approvalParam); if (approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)) { - MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class, Cnd.where("id", "=", approvalParam.getProcessInstanceBusinessId())); - memberManageService.compareMemberChangeInfoAndUpdateUser(record); + MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, Cnd.where("id", "=", approvalParam.getProcessInstanceBusinessId())); + Sys_user sysUser = new Sys_user(); + BeanUtil.copyProperties(record, sysUser); + sysUser.setId(record.getUserId()); + dao.updateIgnoreNull(sysUser); } bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); return Result.success(); @@ -150,29 +149,6 @@ public class MemberApplySchoolUnionAuditController { bpmService.revokeTask(taskId); return Result.success(); } - - - /** - * 获取变更信息,审核 - * @param recordId - * @return - */ - @At - @SaCheckPermission(value = "member.apply.branchUnionAudit") - public Result findAuditChangeInfo(@Valid String recordId){ - Sys_user_history history = memberApplyRecordService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", recordId).or("id","=",recordId)); - MemberApplyRecord record = memberApplyRecordService.dao().fetch(MemberApplyRecord.class, recordId); - if (ObjectUtil.isAllEmpty(history, record)) { - return Result.error("获取变更信息失败"); - } - List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_SINGLE_APPLY, recordId); - if (Lang.isNotEmpty(history)) { - List nutMaps = memberManageService.compareMemberChangeInfo(history); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); - } - List nutMaps = memberManageService.compareMemberChangeInfo(record); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); - } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyUnionGroupAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyUnionGroupAuditController.java new file mode 100644 index 0000000..737b4e3 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/apply/MemberApplyUnionGroupAuditController.java @@ -0,0 +1,164 @@ +package com.budwk.app.zhgh.staffmanage.member.controller.apply; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.result.Result; +import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.sys.models.Sys_config; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.web.controllers.open.commons.service.CommonService; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyPageForm; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberChangePageForm; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.Static; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberApplyUnionGroupAuditController + * @Date 2025/9/20 15:07 + * @注释 入会工会小组审核 + */ +@Slf4j +@IocBean +@Ok("json") +@At("/platform/member/apply/unionGroupAudit") +public class MemberApplyUnionGroupAuditController { + + @Inject + private Dao dao; + @Inject + private BpmService bpmService; + @Inject + private CommonService commonService; + @Inject + private MemberCommonService memberCommonService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/member/apply/groupunionaudit/index.html") + @SaCheckPermission("member.apply.unionGroup.audit") + public void index() { + } + + @At + @SaCheckPermission("member.change.unionGroup.audit") + public Result pageData(MemberApplyPageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.username, + info.loginname, + info.sex, + info.unitName, + info.unionName, + info.userState, + info.preparedBy, + info.personType, + info.changeTypes, + info.applyDateTime, + inst.id processInstanceId, + inst.processInstanceNodeId, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + task.id processInstanceTaskId, + task.taskStatus processInstanceTaskStatus, + COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete + FROM + bpm_process_task task + INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId + INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId + INNER JOIN bpm_process_define define On inst.processDefineId = define.id + INNER JOIN member_apply_record info ON info.id = inst.processInstanceBusinessId + LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "info."); + if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ + cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); + } + cnd.and("nd.nodeCode","=",20); + if (pageForm.getAudit() != null) { + if (pageForm.getAudit()) { + cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE); + } else { + cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE); + } + } + cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_SINGLE_APPLY.name()); + cnd.desc("task.createdOn"); + cnd.groupBy("info.id"); + sql.setCondition(cnd); + Pagination listPageVO = memberCommonService.listPageVO(pageForm, sql, MemberCommonVo.class); + return Result.success(listPageVO); + } + + + @At + @Aop(TransAop.READ_COMMITTED) + @ApiOperation("会员变更工会小组审核") + @SaCheckPermission("member.change.unionGroup.audit") + @SLog(tag = "会员变更", msg = "工会小组审核") + public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) { + approvalParam.getBpmTaskApprovalTypeEnum(); + Map variables = BeanUtil.beanToMap(approvalParam); + + List assignments = new ArrayList<>(); + if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){ + // 查询系统参数,看是否需要分工会审核 + Sys_config config = dao.fetch(Sys_config.class, Cnd.where(Sys_config::getConfigKey, "=", "UnionGroupIsNeedBranchAudit")); + if ("true".equals(config.getConfigValue())) { + // 工会小组审核后,需要分工会审核 + variables.put("groupAuditNext", "branch"); + String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.BRANCH_UNION_CHAIRMAN); + assignments.add(approvalLoginName); + } else { + // 工会小组审核后,不需要分工会审核,交由校工会审核 + variables.put("groupAuditNext", "school"); + String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_ADMIN); + assignments.add(approvalLoginName); + } + } + bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments); + return Result.success(); + } + + + @At + @ApiOperation("工会小组审核撤回") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("member.change.unionGroup.audit") + @SLog(tag = "会员变更", msg = "工会小组审核撤回") + public Result revoke(@Valid String taskId) { + bpmService.revokeTask(taskId); + return Result.success(); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/MemberBranchUnionAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/MemberBranchUnionAuditController.java deleted file mode 100644 index b84b219..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/MemberBranchUnionAuditController.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.branch; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.dev33.satoken.annotation.SaMode; -import cn.hutool.core.util.ObjectUtil; -import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.constant.BpmProcessConstant; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.result.Result; -import com.budwk.app.bpm.param.BpmTaskApprovalParam; -import com.budwk.app.bpm.service.BpmService; -import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; -import com.budwk.app.sys.models.Sys_user_history; -import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberBranchUnionManageService; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import io.swagger.annotations.ApiOperation; -import lombok.extern.slf4j.Slf4j; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Cnd; -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; -import org.nutz.mvc.annotation.Param; - -import javax.validation.Valid; -import java.util.List; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberBranchUnionAuditController - * @Date 2024/8/13 8:48 - * @注释 分工会管理,分工会审核 - */ -@Slf4j -@IocBean -@Ok("json") -@At("/platform/member/branchUnion/audit") -public class MemberBranchUnionAuditController { - - @Inject - private MemberBranchUnionManageService memberBranchUnionManageService; - @Inject - private MemberManageService memberManageService; - @Inject - private BpmService bpmService; - - - @At("") - @Ok("beetl:/platform/zhgh/staffmanage/member/branch/audit/index.html") - @SaCheckPermission("member.branchUnion.audit") - public void index() { - } - - - @At - @SaCheckPermission("member.branchUnion.audit") - public Result pageData(MemberManagePageForm pageForm) { - Pagination pageData = memberBranchUnionManageService.getPageData(pageForm); - return Result.success(pageData); - } - - - @At - @ApiOperation("分工会审核") - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("member.branchUnion.audit") - @SLog(tag = "会员管理-分工会管理", type = "memberBranchUnionManage", msg = "分工会审核") - public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) { - bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), null, null); - return Result.success(); - } - - - @At - @ApiOperation("分工会审核撤回") - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("member.branchUnion.audit") - @SLog(tag = "会员管理-分工会管理", type = "memberBranchUnionManage", msg = "分工会审核撤回") - public Result revoke(@Valid String taskId) { - bpmService.revokeTask(taskId); - return Result.success(); - } - - - /** - * 获取变更信息,审核 - * @param recordId - * @return - */ - @At - @SaCheckPermission(value = {"member.branchUnion.audit", "member.schoolUnion.audit"}, mode = SaMode.OR) - public Result findAuditChangeInfo(String recordId) { - Sys_user_history history = memberBranchUnionManageService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", recordId).or("id","=",recordId)); - MemberApplyRecord record = memberBranchUnionManageService.dao().fetch(MemberApplyRecord.class, recordId); - if (ObjectUtil.isAllEmpty(history, record)) { - return Result.error("获取变更信息失败"); - } - List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE, recordId); - if (Lang.isNotEmpty(history)) { - List nutMaps = memberManageService.compareMemberChangeInfo(history); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); - } - List nutMaps = memberManageService.compareMemberChangeInfo(record); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/MemberBranchUnionManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/MemberBranchUnionManageController.java deleted file mode 100644 index c752dda..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/MemberBranchUnionManageController.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.branch; - -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.ExportParams; -import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; -import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.util.DesensitizedUtil; -import cn.hutool.core.util.StrUtil; -import com.budwk.app.base.annotation.RepeatSubmit; -import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.constant.BpmProcessConstant; -import com.budwk.app.base.constant.RoleConstant; -import com.budwk.app.base.exception.BaseException; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.result.Result; -import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.bpm.service.BpmService; -import com.budwk.app.sys.models.Sys_user; -import com.budwk.app.web.controllers.open.commons.service.CommonService; -import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin; -import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import lombok.extern.slf4j.Slf4j; -import org.apache.poi.ss.usermodel.Workbook; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Chain; -import org.nutz.dao.Cnd; -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.util.NutMap; -import org.nutz.mvc.annotation.At; -import org.nutz.mvc.annotation.Ok; -import org.nutz.mvc.annotation.Param; - -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberBranchUnionManageListController - * @Date 2024/8/12 14:06 - * @注释 会员分工会管理 - */ -@IocBean -@At("/platform/member/branchUnion/manage/list") -@Slf4j -@Ok("json") -public class MemberBranchUnionManageController { - - @Inject - private MemberManageService memberManageService; - @Inject - private CommonService commonService; - @Inject - private BpmService bpmservice; - - - @At("") - @Ok("beetl:/platform/zhgh/staffmanage/member/branch/manage/index.html") - @SaCheckPermission("member.branchUnion.manage.list") - public void index() { - } - - - @At - @SaCheckPermission("member.branchUnion.manage.list") - @Ok("json:{dateFormat:'yyyy-MM-dd'}") - public Result pageData(MemberManagePageForm pageForm) { - Sql sql = memberManageService.getSql(pageForm, "branchUnion"); - Pagination pagination = memberManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); - return Result.success(pagination); - } - - - @At - @SaCheckPermission("member.branchUnion.manage.list") - @SLog(tag = "添加会员", type = "memberBranchManage", msg = "添加会员") - public Result addMember(@Valid MemberApplyRecord record) { - return null; - } - - - @At - @SaCheckPermission("member.branchUnion.manage.list") - public Result getChangeInfoByUserId(String userId) { - return Result.success(memberManageService.getMemberChangeInfoByUserId(userId)); - } - - - @At - @SaCheckPermission("member.branchUnion.manage.list") - @Aop(TransAop.READ_COMMITTED) - @RepeatSubmit - @SLog(tag = "分工会管理-会员管理", type = "MemberBranchManageList", msg = "分工会普通变更") - public Result generalMemberChange(@Param("record") MemberApplyRecord record) { - try { - if (Objects.isNull(record)) { - return Result.error("数据获取失败"); - } - Sys_user user = memberManageService.dao().fetch(Sys_user.class, Cnd.where("loginname", "=", record.getLoginname())); - record.setUserId(user.getId()); - if ( record.getEdit() == null || !record.getEdit()) { - // 校验是否有变更的字段 - List changeInfoList = memberManageService.compareMemberChangeInfo(record); - // 存储变更的类型 - List changeTypeList = memberManageService.compareMemberChangeType(changeInfoList, record); - // 有字段发生变更会走下面的方法,没有则会抛异常 - record.setChangeTypes(changeTypeList); - record.setChangeOrigin(MemberChangeOrigin.BRANCH_UNION.name()); - memberManageService.dao().insert(record); - } else { - record.setChangeOrigin(MemberChangeOrigin.BRANCH_UNION.name()); - memberManageService.dao().updateIgnoreNull(record); - } - - String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_MEMBER_ADMIN); - if (StrUtil.isBlank(approvalLoginName)) { - throw new BaseException("校工会会员管理员未设置"); - } - bpmservice.startSubmitProcessInstance(BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE.name(), "【会员分工会变更】" +record.getUsername(), record.getId(), List.of(approvalLoginName), null); - return Result.success(); - } catch (Exception e) { - return Result.error(e.getMessage()); - } - } - - @At - @Ok("void") - @SaCheckPermission("member.branchUnion.manage.list") - public void doExport(MemberManagePageForm pageForm, HttpServletResponse response){ - Sql sql = memberManageService.getSql(pageForm, "branchUnion"); - List list = memberManageService.listMap(sql); - - List exportEntities = new ArrayList<>(); - exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); - exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); - exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); - exportEntities.add(new ExcelExportEntity("出生年月", "birthday", 20)); - exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); - exportEntities.add(new ExcelExportEntity("福利号码", "welfareMobile", 20)); - exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); - exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20)); - exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); - exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20)); - exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30)); - - ExportParams exportParams = new ExportParams(); - exportParams.setType(ExcelType.XSSF); - - try { - Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); - CommonDownloadUtil.download("会员名单.xlsx", workbook, response); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @At - @SaCheckPermission("member.branchUnion.manage.list") - @SLog(tag = "分工会管理-会员管理", type = "MemberBranchManageList", msg = "修改会员福利手机号") - public Result changeWelfareMobile(String id,String welfareMobile){ - memberManageService.dao().update(Sys_user.class, Chain.make("welfareMobile", welfareMobile),Cnd.where("id", "=", id)); - return Result.success(); - } - -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/MemberBranchUnionRecordController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/MemberBranchUnionRecordController.java deleted file mode 100644 index 456216c..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/MemberBranchUnionRecordController.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.branch; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.result.Result; -import com.budwk.app.sys.models.Sys_user_history; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import lombok.extern.slf4j.Slf4j; -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; - -import javax.validation.Valid; -import java.util.List; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberBranchRecordController - * @Date 2024/8/13 16:25 - * @注释 分工会 会员变更记录 - */ -@Slf4j -@IocBean -@Ok("json") -@At("/platform/member/branchUnion/record") -public class MemberBranchUnionRecordController { - - @Inject - private MemberManageService memberManageService; - - - @At("") - @Ok("beetl:/platform/zhgh/staffmanage/member/branch/record/index.html") - @SaCheckPermission("member.branchUnion.record") - public void index() { - } - - - @At - @SaCheckPermission("member.branchUnion.record") - public Result pageData(MemberManagePageForm pageForm){ - Pagination pagination = memberManageService.memberHistoryRecords(pageForm); - return Result.success(pagination); - } - - - @At - @SaCheckPermission("member.branchUnion.record") - public Result findAuditChangeInfo(@Valid String recordId) { - Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, recordId); - List list = memberManageService.compareMemberChangeInfo(history); - return Result.success(list); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java new file mode 100644 index 0000000..2c1fbf2 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeApplyController.java @@ -0,0 +1,155 @@ +package com.budwk.app.zhgh.staffmanage.member.controller.change; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.result.Result; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.sys.models.Sys_union; +import com.budwk.app.sys.models.Sys_union_group; +import com.budwk.app.sys.models.Sys_unit; +import com.budwk.app.sys.models.Sys_user; +import com.budwk.app.sys.views.View_user; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.web.controllers.open.commons.service.CommonService; +import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.util.cri.Static; +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; +import org.nutz.mvc.annotation.Param; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Stream; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangeApplyController + * @Date 2025/9/16 16:03 + * @注释 + */ +@Slf4j +@IocBean +@Ok("json:full") +@ApiModel("会员变更申请") +@At("/platform/member/change/submit") +public class MemberChangeApplyController { + + @Inject + private Dao dao; + @Inject + private BpmService bpmservice; + @Inject + private CommonService commonService; + @Inject + private MemberCommonService memberCommonService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/member/change/submit/index.html") + @SaCheckPermission("member.change.submit") + public void index() { + } + + @At + @ApiOperation("保存申请") + @SaCheckPermission("member.change.submit") + @SLog(tag = "会员变更申请", msg = "保存申请,申请人: ${args[0].username}") + public Result save(@Param("data") MemberChangeRecord memberChangeRecord) { + // 校验是否有变更 + memberCommonService.validateChangeAndSetBasicData(memberChangeRecord); + dao.insertOrUpdate(memberChangeRecord); + bpmservice.startSaveProcessInstance(BpmProcessConstant.MEMBER_SINGLE_APPLY.name(), + "【会员变更申请】" + memberChangeRecord.getUsername(), memberChangeRecord.getId(), null); + return Result.success(); + } + + @At + @ApiOperation("提交申请") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("member.change.submit") + @SLog(tag = "会员变更申请", msg = "提交申请,申请人: ${args[0].username}") + public Result submit(@Param("data") MemberChangeRecord memberChangeRecord){ + // 校验是否有变更 + memberCommonService.validateChangeAndSetBasicData(memberChangeRecord); + dao.insertOrUpdate(memberChangeRecord); + + // 参数配置项 + HashMap variables = new HashMap<>(); + + // 审核人工号集合 + List assignments = new ArrayList<>(); + + // 去查询申请人的单位有没有工会小组 + Sys_union_group group = dao.fetch(Sys_union_group.class, Cnd.where(Sys_union_group::getUnionId, "=", SecurityUtil.getUnionId()) + .and(new Static("JSON_CONTAINS(unitIds, '\"%s\"')".formatted(SecurityUtil.getUnitId())))); + if (Lang.isNotEmpty(group)) { + List query = dao.query(Sys_user.class, Cnd.where("id", "in", group.getLeaders())); + assignments = query.stream().map(Sys_user::getLoginname).toList(); + // 有小组,走工会小组审核 + variables.put("processType", "unionGroup"); + } else { + //设置分工会审核人 + List users = commonService.findUserInfoByRoleCode("unionId", SecurityUtil.getUnionId(), RoleConstant.BRANCH_UNION_CHAIRMAN.name()); + if (ObjectUtil.isEmpty(users)) { + return Result.error("您的分工会没有设置审核人,请联系校工会!"); + } + List operatorUsers = commonService.findUserInfoByRoleCode("unionId", SecurityUtil.getUnionId(), RoleConstant.BRANCH_UNION_OPERATOR.name()); + assignments = Stream.concat(users.stream(), operatorUsers.stream()).distinct().toList().stream().map(Sys_user::getLoginname).toList(); + + // 没有小组,走分工会审核 + variables.put("processType", "branchUnion"); + } + + bpmservice.startSubmitProcessInstance(BpmProcessConstant.MEMBER_CHANGE.name(), + "【会员变更申请】" + memberChangeRecord.getUsername(), memberChangeRecord.getId(), assignments, variables); + return Result.success(); + } + + + @At + @ApiModelProperty("根据id查询变更记录") + @SaCheckPermission("member.change.submit") + public Result findChangeById(String id){ + return Result.success().addData(dao.fetch(MemberChangeRecord.class, id)); + } + + /** + * 不知道有什么用,移过来的 + * @param userId + * @return + */ + @At + @SaCheckPermission(value = {"member.change.unionGroup.audit", "member.change.branchUnion.audit", "member.change.schoolUnion.audit"}, mode = SaMode.OR) + public Result getUserByIdForMemberChange(String userId){ + View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", userId)); + NutMap nutMap = Lang.obj2nutmap(user); + if (StrUtil.isNotBlank(user.getUnionId())) { + Sys_union union = dao.fetch(Sys_union.class, Cnd.where("id", "=", user.getUnionId())); + nutMap.put("union", union); + } + if (StrUtil.isNotBlank(user.getUnitId())) { + Sys_unit unit = dao.fetch(Sys_unit.class, Cnd.where("id", "=", user.getUnitId())); + nutMap.put("unit", unit); + } + return Result.success().addData(nutMap); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeBranchUnionAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeBranchUnionAuditController.java new file mode 100644 index 0000000..0ef6810 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeBranchUnionAuditController.java @@ -0,0 +1,152 @@ +package com.budwk.app.zhgh.staffmanage.member.controller.change; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.result.Result; +import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.web.controllers.open.commons.service.CommonService; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberChangePageForm; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.Static; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberBranchUnionAuditController + * @Date 2024/8/13 8:48 + * @注释 分工会管理,分工会审核 + */ +@Slf4j +@IocBean +@Ok("json") +@At("/platform/member/change/branchUnion/audit") +public class MemberChangeBranchUnionAuditController { + + @Inject + private BpmService bpmService; + @Inject + private CommonService commonService; + @Inject + private MemberCommonService memberCommonService; + + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/member/change/branchunionaudit/index.html") + @SaCheckPermission("member.change.branchUnion.audit") + public void index() { + } + + + @At + @SaCheckPermission("member.change.branchUnion.audit") + public Result pageData(MemberChangePageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.username, + info.loginname, + info.sex, + info.unitName, + info.unionName, + info.userState, + info.preparedBy, + info.personType, + info.changeTypes, + info.applyDateTime, + inst.id processInstanceId, + inst.processInstanceNodeId, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + task.id processInstanceTaskId, + task.taskStatus processInstanceTaskStatus, + COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete + FROM + bpm_process_task task + INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId + INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId + INNER JOIN bpm_process_define define On inst.processDefineId = define.id + INNER JOIN member_change_record info ON info.id = inst.processInstanceBusinessId + LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "info."); + if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ + cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); + } + cnd.and("nd.nodeCode","=",50); + if (pageForm.getAudit() != null) { + if (pageForm.getAudit()) { + cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE); + } else { + cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE); + } + } + cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_CHANGE.name()); + cnd.desc("task.createdOn"); + cnd.groupBy("info.id"); + sql.setCondition(cnd); + Pagination listPageVO = memberCommonService.listPageVO(pageForm, sql, MemberCommonVo.class); + return Result.success(listPageVO); + } + + + @At + @ApiOperation("分工会审核") + @Aop(TransAop.READ_COMMITTED) + @SLog(tag = "会员变更", msg = "分工会审核") + @SaCheckPermission("member.change.branchUnion.audit") + public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) { + approvalParam.getBpmTaskApprovalTypeEnum(); + Map variables = BeanUtil.beanToMap(approvalParam); + + List assignments = new ArrayList<>(); + if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){ + String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_ADMIN); + assignments.add(approvalLoginName); + } + bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments); + return Result.success(); + } + + + @At + @ApiOperation("分工会审核撤回") + @Aop(TransAop.READ_COMMITTED) + @SLog(tag = "会员变更", msg = "分工会审核撤回") + @SaCheckPermission("member.change.branchUnion.audit") + public Result revoke(@Valid String taskId) { + bpmService.revokeTask(taskId); + return Result.success(); + } + +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java index 8c86889..8734f3b 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java @@ -1,61 +1,355 @@ -//package com.budwk.app.zhgh.member.controller.change; -// -//import cn.dev33.satoken.annotation.SaCheckPermission; -//import com.budwk.app.base.annotation.SLog; -//import com.budwk.app.base.page.Pagination; -//import com.budwk.app.base.result.Result; -//import com.budwk.app.zhgh.member.models.MemberApplyRecord; -//import com.budwk.app.zhgh.member.param.MemberManagePageForm; -//import com.budwk.app.zhgh.member.service.MemberManageService; -//import lombok.extern.slf4j.Slf4j; -//import org.nutz.dao.sql.Sql; -//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; -// -//import javax.validation.Valid; -// -///** -// * @version 1.0 -// * @Author zzr -// * @name:MemberChangeManageController -// * @Date 2024/8/6 8:39 -// * @注释 -// */ -//@IocBean -//@Ok("json") -//@At("/platform/member/change/manage") -//@Slf4j -//public class MemberChangeManageController { -// -// @Inject -// private MemberManageService memberService; -// -// @At("") -// @Ok("beetl:/platform/zhgh/staffmanage/member/change/manage/index.html") -// @SaCheckPermission("member.branch.manage") -// public void index() { -// } -// -// -// @At -// @SaCheckPermission("member.branch.manage") -// public Result pageData(MemberManagePageForm pageForm) { -// Sql sql = memberService.getSql(pageForm,null); -// Pagination pagination = memberService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); -// return Result.success(pagination); -// } -// -// -// @At -// @SaCheckPermission("member.branch.manage") -// public Result getNumData(MemberManagePageForm pageForm) { -// NutMap map = memberService.getButtonNum(pageForm); -// return Result.success(map); -// } -// -// -// -//} +package com.budwk.app.zhgh.staffmanage.member.controller.change; + +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.budwk.app.base.annotation.RepeatSubmit; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.exception.BaseException; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.CommonDownloadUtil; +import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; +import com.budwk.app.bpm.models.BpmProcessInstance; +import com.budwk.app.bpm.models.BpmProcessTask; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.sys.models.Sys_config; +import com.budwk.app.sys.models.Sys_union_group; +import com.budwk.app.sys.models.Sys_user; +import com.budwk.app.sys.views.View_user; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.web.controllers.open.commons.service.CommonService; +import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin; +import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType; +import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.Workbook; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.Static; +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; +import org.nutz.mvc.annotation.Param; + +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangeManageController + * @Date 2025/9/16 16:04 + * @注释 + */ +@Slf4j +@IocBean +@Ok("json") +@At("/platform/member/change/manage") +public class MemberChangeManageController { + + @Inject + private Dao dao; + @Inject + private BpmService bpmService; + @Inject + private CommonService commonService; + @Inject + private MemberCommonService memberCommonService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/member/change/manage/index.html") + @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) + public void index() { + } + + + @At + @ApiOperation("页面数据") + @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) + public Result pageData(MemberManagePageForm pageForm) { + Sql sql = memberCommonService.getSql(pageForm); + Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); + } + + + @At + @RepeatSubmit + @Aop(TransAop.READ_COMMITTED) + @SLog(tag = "会员高级管理-会员变更", msg = "分工会/校工会会员管理员提交变更") + @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) + public Result doSubmitChange(@Param("record") MemberChangeRecord record, @Param("approvalRemark") String approvalRemark) { + // 检验是否有变更 + if (Lang.isEmpty(record)) { + return Result.error("未获取到异动数据"); + } + + // 角色判断,还要考虑有没有工会小组 + Sys_union_group group = dao.fetch(Sys_union_group.class, Cnd.where(Sys_union_group::getUnionId, "=", SecurityUtil.getUnionId()) + .and(new Static("JSON_CONTAINS(unitIds, '\"%s\"')".formatted(SecurityUtil.getUnitId())))); + + boolean schoolRoleBool = AuthUtil.hasRoleOr(RoleConstant.SCHOOL_UNION_CHAIRMAN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name(), RoleConstant.SYSADMIN.name()); + boolean branchRoleBool = AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_CHAIRMAN.name(), RoleConstant.BRANCH_UNION_OPERATOR.name()); + boolean branchGroupRoleBool = AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_GROUP_LEADER.name()); + + MemberChangeOrigin changeOrigin = schoolRoleBool ? MemberChangeOrigin.SCHOOL_UNION : + branchRoleBool ? MemberChangeOrigin.BRANCH_UNION : + branchGroupRoleBool ? MemberChangeOrigin.UNION_GROUP : null; + + if (changeOrigin == null) { + throw new BaseException("您无此权限"); + } + + memberCommonService.validateChangeAndSetBasicData(record, changeOrigin); + dao.insertOrUpdate(record); + + // 启动流程 + HashMap processVariables = new HashMap<>(); + processVariables.put("processType", branchGroupRoleBool ? "unionGroup" : "branchUnion"); + + bpmService.startSubmitProcessInstance( + BpmProcessConstant.MEMBER_CHANGE.name(), + "【会员变更】" + record.getUsername(), + record.getId(), + List.of(SecurityUtil.getUserLoginname()), + processVariables + ); + + // 自动审批逻辑:根据角色逐级通过 + BpmProcessInstance instance = getProcessInstanceByBusinessId(record.getId()); + if (instance == null) { + throw new BaseException("流程实例未找到,请检查流程启动是否成功"); + } + +// // 1. 工会小组审核通过(如果是由小组长发起);不能通过角色判断,如果是分工会申请并且这个人有工会小组;那没办法创建工会小组的审核 +// if (branchGroupRoleBool) { +// completeLatestTask(instance, "工会小组审核通过", null, null); +// } + if (Lang.isNotEmpty(group)) { + Map vars = new HashMap<>(); + // 查询系统参数,看是否需要分工会审核 + Sys_config config = dao.fetch(Sys_config.class, Cnd.where(Sys_config::getConfigKey, "=", "UnionGroupIsNeedBranchAudit")); + if ("true".equals(config.getConfigValue())) { + vars.put("groupAuditNext", "branch"); + } else { + vars.put("groupAuditNext", "school"); + } + completeLatestTask(instance, "工会小组审核通过", null, vars); +// processVariables.put("") + } + + + // 2. 分工会审核通过(如果是分工会角色) + if (branchRoleBool || schoolRoleBool) { + completeLatestTask(instance, "分工会审核通过", null, null); + } + + // 3. 校工会审核通过(如果是校工会或超管) + if (schoolRoleBool) { + // completeLatestTask 后 taskId 可能变化,所以重新查一次 + BpmProcessInstance committeeInstance = getProcessInstanceByBusinessId(record.getId()); + completeLatestTask(committeeInstance, "校工会审核通过", + vars -> memberCommonService.compareChangeInfoAndUpdateMember(record.getId()), + null); + } + return Result.success(); + } + + + @At + @ApiOperation("获取该人员所有的变更信息") + @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) + public Result getAllChangeMemberInfo(String userId) { + List mapList = memberCommonService.getAllChangeInfo(userId); + + View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", userId)); + NutMap map = Lang.obj2nutmap(user); + map.put("user", user); + map.put("allChangeInfo", mapList); + return Result.success(map); + } + + + private BpmProcessInstance getProcessInstanceByBusinessId(String businessId) { + return dao.fetch(BpmProcessInstance.class, + Cnd.where("processInstanceBusinessId", "=", businessId)); + } + + private BpmProcessTask getLatestTaskByInstanceId(String instanceId) { + return dao.fetch(BpmProcessTask.class, + Cnd.where(BpmProcessTask::getProcessInstanceId, "=", instanceId) + .desc(BpmProcessTask::getCreatedAt) + ); + } + + /** + * 完成指定流程实例的最新任务 + * + * @param instance 流程实例 + * @param opinion 审批意见 + * @param postAction 成功后执行的动作(如更新会员数据) + */ + private void completeLatestTask(BpmProcessInstance instance, String opinion, + Consumer> postAction, + Map var) { + BpmProcessTask task = getLatestTaskByInstanceId(instance.getId()); + if (task == null) { + throw new BaseException("无法获取待处理任务"); + } + + BpmTaskApprovalParam param = new BpmTaskApprovalParam(); + param.setProcessInstanceId(instance.getId()); + param.setProcessInstanceBusinessId(instance.getProcessInstanceBusinessId()); + param.setProcessInstanceTaskId(task.getId()); + param.setBpmTaskApprovalType(BpmTaskApprovalTypeEnum.PASS.name()); + param.setBpmTaskApprovalTypeEnum(BpmTaskApprovalTypeEnum.PASS); + param.setApprovalOpinion(opinion); + + Map variables = BeanUtil.beanToMap(param); + variables.putAll(var); + + // 执行完成任务 + bpmService.completeTask(task.getId(), BpmTaskApprovalTypeEnum.PASS, variables, List.of(SecurityUtil.getUserLoginname())); + + // 回调后置操作 + if (postAction != null) { + postAction.accept(variables); + } + } + + + @At + @SLog(tag = "分工会管理-会员管理", type = "MemberBranchManageList", msg = "修改会员福利手机号") + @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) + public Result changeWelfareMobile(String id,String welfareMobile){ + memberCommonService.dao().update(Sys_user.class, Chain.make("welfareMobile", welfareMobile),Cnd.where("id", "=", id)); + return Result.success(); + } + + + @At + @Ok("void") + @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) + public void doExport(MemberManagePageForm pageForm, HttpServletResponse response){ + Sql sql = memberCommonService.getSql(pageForm); + List list = memberCommonService.listMap(sql); + + List exportEntities = new ArrayList<>(); + exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); + exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); + exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); + exportEntities.add(new ExcelExportEntity("出生年月", "birthday", 20)); + exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); + exportEntities.add(new ExcelExportEntity("福利号码", "welfareMobile", 20)); + exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); + exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20)); + exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); + exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20)); + exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30)); + + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + + try { + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); + CommonDownloadUtil.download("会员名单.xlsx", workbook, response); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + @At + @Ok("void") + @SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR) + public void doExportNotEqPhone(MemberManagePageForm pageForm, HttpServletResponse response){ + Sql sql = Sqls.create(""" + SELECT + u.id, + u.sex, + u.loginname, + u.username, + u.mobile, + u.welfareMobile, + u.unitId, + u.unitName, + u.unionId, + u.unionName, + DATE_FORMAT(u.birthday, '%Y-%m-%d ') as birthday, + u.manyUnit, + u.member, + u.userState, + u.preparedBy, + u.personType, + u.welfareMember, + u.isModelWorker, + u.wantJoinLoveMutualAidAssociation, + his.id hisId, + his.changeTypes, + his.changeTime + FROM + vw_user u + LEFT JOIN sys_user_history his ON his.loginname = u.loginname + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and(new Static("u.mobile != u.welfareMobile")); + MemberManagePageForm.buildSearch(cnd, pageForm); + cnd.desc("his.changeTime"); + cnd.groupBy("u.id"); + cnd.asc("u.unionId"); + cnd.asc("u.unitId"); + cnd.asc("u.id"); + sql.setCondition(cnd); + List list = memberCommonService.listMap(sql); + + List exportEntities = new ArrayList<>(); + exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); + exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); + exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); + exportEntities.add(new ExcelExportEntity("出生年月", "birthday", 20)); + exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); + exportEntities.add(new ExcelExportEntity("福利号码", "welfareMobile", 20)); + exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); + exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20)); + exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); + exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20)); + exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30)); + + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + + try { + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); + CommonDownloadUtil.download("会员福利号码不一致名单.xlsx", workbook, response); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeMineController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeMineController.java new file mode 100644 index 0000000..42fb10c --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeMineController.java @@ -0,0 +1,161 @@ +package com.budwk.app.zhgh.staffmanage.member.controller.change; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.result.Result; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberChangePageForm; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiOperation; +import org.nutz.aop.interceptor.ioc.TransAop; +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.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; + +import javax.validation.Valid; +import java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangeMineController + * @Date 2025/9/16 16:04 + * @注释 + */ +@IocBean +@Ok("json:full") +@ApiModel("会员变更申请查看") +@At("/platform/member/change/mine") +public class MemberChangeMineController { + + @Inject + private Dao dao; + @Inject + private BpmService bpmService; + @Inject + private MemberCommonService memberCommonService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/member/change/mine/index.html") + @SaCheckPermission("member.change.mine") + public void index() { + } + + + @At + @SaCheckPermission("member.change.mine") + public Result pageData(MemberChangePageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.username, + info.loginname, + info.sex, + info.unitName, + info.unionName, + info.userState, + info.preparedBy, + info.personType, + info.changeTypes, + info.applyDateTime, + inst.id processInstanceId, + inst.processInstanceNodeId, + inst.processInstanceNodeCode, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + task.id processInstanceTaskId, + task.taskStatus processInstanceTaskStatus, + ( + SELECT + count( 1 ) > 0 + FROM + bpm_process_task + WHERE + prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70, 100 ) ORDER BY createdAt DESC LIMIT 1 ) + AND taskStatus = 'COMPELTE' + ) AS nextTaskIsComplete, + ( SELECT name FROM sys_union_group WHERE info.unitId = unitId ) AS groupName + FROM + bpm_process_task task + INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId + INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId + INNER JOIN bpm_process_define define On inst.processDefineId = define.id + INNER JOIN member_change_record info ON info.id = inst.processInstanceBusinessId + LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "info."); + cnd.and("nd.nodeCode", "=", 10); + cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_CHANGE.name()); + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { + if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) { + cnd.andEX("info.unionId","=", SecurityUtil.getUnionId()); + } else { + cnd.and("info.userId", "=", SecurityUtil.getUserId()); + } + } + cnd.desc("info.applyDateTime"); + sql.setCondition(cnd); + Pagination listPageVO = memberCommonService.listPageVO(pageForm, sql, MemberCommonVo.class); + return Result.success(listPageVO); + } + + + @At + @ApiOperation("删除会员申请记录") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("member.change.mine") + @SLog(tag = "会员管理-变更申请-我的申请记录", msg = "删除申请") + public Result onDelete(@Valid String id) { + dao.clear(MemberChangeRecord.class, Cnd.where("id", "=", id)); + bpmService.deleteInstance(id); + return Result.success(); + } + + + @At + @ApiOperation("个人申请撤回") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("member.change.mine") + @SLog(tag = "会员管理-变更申请-个人申请撤回", msg = "个人申请撤回") + public Result revokeApply(@Valid String id) { + bpmService.revokeApply(id); + return Result.success(); + } + + + @At + @ApiOperation("根据id查询变更记录") + @SaCheckPermission(value = {"member.change.mine", "member.change.unionGroup.audit"}, mode = SaMode.OR) + public Result findMemberChangeRecord(@Valid String id){ + MemberChangeRecord record = dao.fetch(MemberChangeRecord.class, id); + NutMap nutMap = Lang.obj2nutmap(record); + + List changeInfos = memberCommonService.getChangeInfos(nutMap.getString("id")); + nutMap.put("changeInfos", changeInfos); + + List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_CHANGE, id); + nutMap.put("nodeTasks", nodeTasks); + return Result.success().addData(nutMap); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeRecordController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeRecordController.java index 23b7cb2..937f6d8 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeRecordController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeRecordController.java @@ -4,7 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; import lombok.extern.slf4j.Slf4j; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -12,20 +12,20 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; /** - * @version 1.0 * @Author zzr - * @name:MemberChangeRecordsController - * @Date 2024/8/8 8:40 - * @注释 + * @name:MemberChangeRecordController + * @Date 2025/9/16 16:04 + * @version 1.0 + * @注释 变更记录 */ +@Slf4j @IocBean @Ok("json") @At("/platform/member/change/record") -@Slf4j public class MemberChangeRecordController { @Inject - private MemberManageService memberService; + private MemberCommonService memberCommonService; @At("") @Ok("beetl:/platform/zhgh/staffmanage/member/change/record/index.html") @@ -33,10 +33,11 @@ public class MemberChangeRecordController { public void index() { } + @At @SaCheckPermission("member.change.record") - public Result pageData(MemberManagePageForm pageForm) { - Pagination pagination = memberService.memberHistoryRecords(pageForm); + public Result pageData(MemberManagePageForm pageForm){ + Pagination pagination = memberCommonService.memberHistoryRecords(pageForm); return Result.success(pagination); } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeSchoolUnionAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeSchoolUnionAuditController.java new file mode 100644 index 0000000..741feb9 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeSchoolUnionAuditController.java @@ -0,0 +1,150 @@ +package com.budwk.app.zhgh.staffmanage.member.controller.change; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.annotation.RepeatSubmit; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.result.Result; +import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberChangePageForm; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.Static; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import javax.validation.Valid; +import java.util.Map; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberSchoolUnionAuditController + * @Date 2024/8/13 8:49 + * @注释 + */ +@Slf4j +@IocBean +@Ok("json") +@At("/platform/member/change/schoolUnion/audit") +public class MemberChangeSchoolUnionAuditController { + + @Inject + private BpmService bpmService; + + @Inject + private MemberCommonService memberCommonService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/member/change/schoolunionaudit/index.html") + @SaCheckPermission("member.change.schoolUnion.audit") + public void index() { + } + + + @At + @SaCheckPermission("member.change.schoolUnion.audit") + public Result pageData(MemberChangePageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.username, + info.loginname, + info.sex, + info.unitName, + info.unionName, + info.userState, + info.preparedBy, + info.personType, + info.changeTypes, + info.applyDateTime, + inst.id processInstanceId, + inst.processInstanceNodeId, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + task.id processInstanceTaskId, + task.taskStatus processInstanceTaskStatus, + COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete + FROM + bpm_process_task task + INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId + INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId + INNER JOIN bpm_process_define define On inst.processDefineId = define.id + INNER JOIN member_change_record info ON info.id = inst.processInstanceBusinessId + LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "info."); + if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ + cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); + } + cnd.and("nd.nodeCode","=",80); + if (pageForm.getAudit() != null) { + if (pageForm.getAudit()) { + cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE); + } else { + cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE); + } + } + cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_CHANGE.name()); + cnd.desc("task.createdOn"); + cnd.groupBy("info.id"); + sql.setCondition(cnd); + Pagination listPageVO = memberCommonService.listPageVO(pageForm, sql, MemberCommonVo.class); + return Result.success(listPageVO); + } + + + @At + @RepeatSubmit + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("member.change.schoolUnion.audit") + @SLog(tag = "会员管理-校工会管理", type = "memberSchoolUnionAudit", msg = "校工会会员审核") + public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) { + Map variables = BeanUtil.beanToMap(approvalParam); + if (approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)) { + MemberChangeRecord record = memberCommonService.dao().fetch(MemberChangeRecord.class, Cnd.where("id", "=", approvalParam.getProcessInstanceBusinessId())); + if (StrUtil.isNotEmpty(approvalParam.getApprovalRemark())) { + memberCommonService.dao().update(MemberChangeRecord.class, Chain.make("remark", approvalParam.getApprovalRemark()), Cnd.where("id", "=", record.getId())); + } + memberCommonService.compareChangeInfoAndUpdateMember(record); + } + bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); + return Result.success(); + } + + + @At + @ApiOperation("校工会审核撤回") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("member.change.schoolUnion.audit") + @SLog(tag = "会员管理-校工会管理", type = "memberSchoolUnionAudit", msg = "校工会审核撤回") + public Result revoke(@Valid String taskId) { + bpmService.revokeTask(taskId); + return Result.success(); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeUnionGroupAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeUnionGroupAuditController.java new file mode 100644 index 0000000..3b9da10 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeUnionGroupAuditController.java @@ -0,0 +1,164 @@ +package com.budwk.app.zhgh.staffmanage.member.controller.change; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.bean.BeanUtil; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.constant.BpmProcessConstant; +import com.budwk.app.base.constant.RoleConstant; +import com.budwk.app.base.page.Pagination; +import com.budwk.app.base.result.Result; +import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum; +import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; +import com.budwk.app.bpm.param.BpmTaskApprovalParam; +import com.budwk.app.bpm.service.BpmService; +import com.budwk.app.sys.models.Sys_config; +import com.budwk.app.web.commons.auth.utils.AuthUtil; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; +import com.budwk.app.web.controllers.open.commons.service.CommonService; +import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberChangePageForm; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; +import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; +import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.Static; +import org.nutz.ioc.aop.Aop; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberUnionGroupAuditController + * @Date 2025/9/18 14:33 + * @注释 工会小组审核 + */ +@Slf4j +@IocBean +@Ok("json") +@At("/platform/member/change/unionGroup/audit") +public class MemberChangeUnionGroupAuditController { + + @Inject + private Dao dao; + @Inject + private BpmService bpmService; + @Inject + private CommonService commonService; + @Inject + private MemberCommonService memberCommonService; + + @At("") + @Ok("beetl:/platform/zhgh/staffmanage/member/change/groupunionaudit/index.html") + @SaCheckPermission("member.change.unionGroup.audit") + public void index() { + } + + + @At + @SaCheckPermission("member.change.unionGroup.audit") + public Result pageData(MemberChangePageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + info.id, + info.username, + info.loginname, + info.sex, + info.unitName, + info.unionName, + info.userState, + info.preparedBy, + info.personType, + info.changeTypes, + info.applyDateTime, + inst.id processInstanceId, + inst.processInstanceNodeId, + inst.processInstanceNodeName, + inst.processInstanceTaskIds, + inst.processInstanceStatus, + task.id processInstanceTaskId, + task.taskStatus processInstanceTaskStatus, + COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete + FROM + bpm_process_task task + INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId + INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId + INNER JOIN bpm_process_define define On inst.processDefineId = define.id + INNER JOIN member_change_record info ON info.id = inst.processInstanceBusinessId + LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE' + $condition + """); + Cnd cnd = Cnd.NEW(); + pageForm.buildSearch(cnd, "info."); + if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){ + cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname()))); + } + cnd.and("nd.nodeCode","=",20); + if (pageForm.getAudit() != null) { + if (pageForm.getAudit()) { + cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE); + } else { + cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE); + } + } + cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_CHANGE.name()); + cnd.desc("task.createdOn"); + cnd.groupBy("info.id"); + sql.setCondition(cnd); + Pagination listPageVO = memberCommonService.listPageVO(pageForm, sql, MemberCommonVo.class); + return Result.success(listPageVO); + } + + + @At + @Aop(TransAop.READ_COMMITTED) + @ApiOperation("会员变更工会小组审核") + @SaCheckPermission("member.change.unionGroup.audit") + @SLog(tag = "会员变更", msg = "工会小组审核") + public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) { + approvalParam.getBpmTaskApprovalTypeEnum(); + Map variables = BeanUtil.beanToMap(approvalParam); + + List assignments = new ArrayList<>(); + if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){ + // 查询系统参数,看是否需要分工会审核 + Sys_config config = dao.fetch(Sys_config.class, Cnd.where(Sys_config::getConfigKey, "=", "UnionGroupIsNeedBranchAudit")); + if ("true".equals(config.getConfigValue())) { + // 工会小组审核后,需要分工会审核 + variables.put("groupAuditNext", "branch"); + String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.BRANCH_UNION_CHAIRMAN); + assignments.add(approvalLoginName); + } else { + // 工会小组审核后,不需要分工会审核,交由校工会审核 + variables.put("groupAuditNext", "school"); + String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_ADMIN); + assignments.add(approvalLoginName); + } + } + bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments); + return Result.success(); + } + + + @At + @ApiOperation("工会小组审核撤回") + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("member.change.unionGroup.audit") + @SLog(tag = "会员变更", msg = "工会小组审核撤回") + public Result revoke(@Valid String taskId) { + bpmService.revokeTask(taskId); + return Result.success(); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/modelworker/MemberModelWorkerController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/modelworker/MemberModelWorkerController.java deleted file mode 100644 index 19188dc..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/modelworker/MemberModelWorkerController.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.modelworker; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.dev33.satoken.annotation.SaMode; -import cn.hutool.core.util.StrUtil; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.result.Result; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberModelWorkerPageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberModelWorkerService; -import lombok.extern.slf4j.Slf4j; -import org.nutz.dao.Chain; -import org.nutz.dao.Cnd; -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.mvc.annotation.At; -import org.nutz.mvc.annotation.Ok; -import org.nutz.mvc.annotation.Param; - -import javax.servlet.http.HttpServletResponse; -import java.util.Arrays; -import java.util.List; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberModelWorkerController - * @Date 2024/9/25 14:24 - * @注释 - */ -@Slf4j -@IocBean -@Ok("json") -@At("/platform/member/modelWorker/manage") -public class MemberModelWorkerController { - - @Inject - private MemberModelWorkerService memberModelWorkerService; - - - @At("") - @Ok("beetl:/platform/zhgh/staffmanage/member/modelworker/manage/index.html") - @SaCheckPermission("member.modelWorker.manage") - public void index() {} - - - @At - @SaCheckPermission("member.modelWorker.manage") - public Result pageData(MemberModelWorkerPageForm pageForm) { - Sql sql = memberModelWorkerService.getSql(pageForm); - Pagination pagination = memberModelWorkerService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); - return Result.success(pagination); - } - - - @At - @SaCheckPermission("member.modelWorker.manage") - public Result setModelWorker(String userId) { - if (StrUtil.isNotBlank(userId)) { - memberModelWorkerService.update(Chain.make("isModelWorker", true), Cnd.where("id", "=", userId)); - return Result.success(); - } else { - return Result.error(); - } - } - - /** - * 取消劳模身份 - * @return - */ - @At - @SaCheckPermission(value = {"member.modelWorker.manage","member.branchUnion.manage.list","member.schoolUnion.manage.list"}, mode = SaMode.OR) - public Result cancelModelWorker(@Param("userIds") String[] userIds) { - List list = Arrays.asList(userIds); - if (Lang.isNotEmpty(list)) { - memberModelWorkerService.update(Chain.make("isModelWorker", false), Cnd.where("id", "in", list)); - return Result.success(); - } else { - return Result.error(); - } - } - - - @At - @Ok("void") - @SaCheckPermission("member.modelWorker.manage") - public void doExport(MemberModelWorkerPageForm pageForm, HttpServletResponse response){ - memberModelWorkerService.doExport(pageForm, response); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/MemberSchoolUnionAuditController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/MemberSchoolUnionAuditController.java deleted file mode 100644 index 908e489..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/MemberSchoolUnionAuditController.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.school; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.dev33.satoken.annotation.SaMode; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import com.budwk.app.base.annotation.RepeatSubmit; -import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.constant.BpmProcessConstant; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.result.Result; -import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; -import com.budwk.app.bpm.param.BpmTaskApprovalParam; -import com.budwk.app.bpm.service.BpmService; -import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; -import com.budwk.app.sys.models.Sys_user_history; -import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import com.budwk.app.zhgh.staffmanage.member.service.MemberSchoolUnionManageService; -import io.swagger.annotations.ApiOperation; -import lombok.extern.slf4j.Slf4j; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Chain; -import org.nutz.dao.Cnd; -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; -import org.nutz.mvc.annotation.Param; - -import javax.validation.Valid; -import java.util.List; -import java.util.Map; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberSchoolUnionAuditController - * @Date 2024/8/13 8:49 - * @注释 - */ -@Slf4j -@IocBean -@Ok("json") -@At("/platform/member/schoolUnion/audit") -public class MemberSchoolUnionAuditController { - - @Inject - private BpmService bpmService; - - @Inject - private MemberManageService memberManageService; - - @Inject - private MemberSchoolUnionManageService memberSchoolUnionManageService; - - @At("") - @Ok("beetl:/platform/zhgh/staffmanage/member/school/audit/index.html") - @SaCheckPermission("member.schoolUnion.audit") - public void index() { - } - - - @At - @SaCheckPermission("member.schoolUnion.audit") - public Result pageData(MemberManagePageForm pageForm) { - Pagination pageData = memberSchoolUnionManageService.getPageData(pageForm); - return Result.success(pageData); - } - - - @At - @RepeatSubmit - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("member.schoolUnion.audit") - @SLog(tag = "会员管理-校工会管理", type = "memberSchoolUnionAudit", msg = "校工会会员审核") - public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) { - Map variables = BeanUtil.beanToMap(approvalParam); - if (approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)) { - MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class, Cnd.where("id", "=", approvalParam.getProcessInstanceBusinessId())); - if (StrUtil.isNotEmpty(approvalParam.getApprovalRemark())) { - memberManageService.dao().update(MemberApplyRecord.class, Chain.make("remark", approvalParam.getApprovalRemark()), Cnd.where("id", "=", record.getId())); - } - memberManageService.compareMemberChangeInfoAndUpdateUser(record); - } - bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null); - return Result.success(); - } - - - @At - @ApiOperation("校工会审核撤回") - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("member.schoolUnion.audit") - @SLog(tag = "会员管理-校工会管理", type = "memberSchoolUnionAudit", msg = "校工会审核撤回") - public Result revoke(@Valid String taskId) { - bpmService.revokeTask(taskId); - return Result.success(); - } - - - /** - * 获取变更信息,审核 - * @param recordId - * @return - */ - @At - @SaCheckPermission(value = {"member.branchUnion.audit", "member.schoolUnion.audit"}, mode = SaMode.OR) - public Result findAuditChangeInfo(String recordId) { - Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", recordId).or("id","=",recordId)); - MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class, recordId); - if (ObjectUtil.isAllEmpty(history, record)) { - return Result.error("获取变更信息失败"); - } - List nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE, recordId); - if (Lang.isNotEmpty(history)) { - List nutMaps = memberManageService.compareMemberChangeInfo(history); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); - } - List nutMaps = memberManageService.compareMemberChangeInfo(record); - return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks)); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/MemberSchoolUnionManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/MemberSchoolUnionManageController.java deleted file mode 100644 index 4528406..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/MemberSchoolUnionManageController.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.school; - -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.ExportParams; -import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; -import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.hutool.core.bean.BeanUtil; -import com.budwk.app.base.annotation.RepeatSubmit; -import com.budwk.app.base.annotation.SLog; -import com.budwk.app.base.constant.BpmProcessConstant; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.result.Result; -import com.budwk.app.base.utils.CommonDownloadUtil; -import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum; -import com.budwk.app.bpm.models.BpmProcessInstance; -import com.budwk.app.bpm.models.BpmProcessTask; -import com.budwk.app.bpm.param.BpmTaskApprovalParam; -import com.budwk.app.bpm.service.BpmService; -import com.budwk.app.web.commons.auth.utils.SecurityUtil; -import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin; -import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import lombok.extern.slf4j.Slf4j; -import org.apache.poi.ss.usermodel.Workbook; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Cnd; -import org.nutz.dao.Dao; -import org.nutz.dao.Sqls; -import org.nutz.dao.sql.Sql; -import org.nutz.dao.util.cri.Static; -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; -import org.nutz.mvc.annotation.Param; - -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberSchoolUnionManageController - * @Date 2024/8/12 14:06 - * @注释 会员校工会管理 - */ -@IocBean -@At("/platform/member/schoolUnion/manage/list") -@Slf4j -@Ok("json") -public class MemberSchoolUnionManageController { - - @Inject - private Dao dao; - @Inject - private BpmService bpmService; - @Inject - private MemberManageService memberManageService; - - @At("") - @Ok("beetl:/platform/zhgh/staffmanage/member/school/manage/index.html") - @SaCheckPermission("member.schoolUnion.manage.list") - public void index() { - } - - - @At - @SaCheckPermission("member.schoolUnion.manage.list") - public Result pageData(MemberManagePageForm pageForm){ - Sql sql = memberManageService.getSql(pageForm, "schoolUnion"); - Pagination pagination = memberManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); - return Result.success(pagination); - } - - - @At - @SaCheckPermission("member.schoolUnion.manage.list") - @SLog(tag = "添加会员", type = "memberBranchManage", msg = "添加会员") - public Result addMember(@Valid MemberApplyRecord record) { - return null; - } - - - @At - @SaCheckPermission("member.schoolUnion.manage.list") - public Result getChangeInfoByUserId(String userId) { - return Result.success(memberManageService.getMemberChangeInfoByUserId(userId)); - } - - - @At - @RepeatSubmit - @Aop(TransAop.READ_COMMITTED) - @SaCheckPermission("member.branchUnion.manage.list") - @SLog(tag = "校工会管理-会员管理", type = "MemberBranchManageList", msg = "校工会普通变更") - public Result generalMemberChange(@Param("record") MemberApplyRecord record, @Param("approvalRemark") String approvalRemark){ - //校工会变更,直接更改 - try { - // 校验是否有变更的字段 - List changeInfoList = memberManageService.compareMemberChangeInfo(record); - - if (Lang.isNotEmpty(changeInfoList)) { - // 存储变更的类型 - List changeTypeList = memberManageService.compareMemberChangeType(changeInfoList, record); - record.setChangeTypes(changeTypeList); - record.setChangeOrigin(MemberChangeOrigin.SCHOOL_UNION.name()); - record.setRemark(approvalRemark); - memberManageService.insert(record); - - // 开启流程,留痕 - bpmService.startSubmitProcessInstance(BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE.name(), - "【会员分工会变更】" +record.getUsername(), record.getId(), - List.of(SecurityUtil.getUserLoginname()), null); - // 然后完成申请流程 - BpmProcessInstance committeeInstance = dao.fetch(BpmProcessInstance.class, Cnd.where("processInstanceBusinessId", "=", record.getId())); - BpmProcessTask committeeTask = dao.fetch(BpmProcessTask.class, Cnd.where(BpmProcessTask::getProcessInstanceId, "=", committeeInstance.getId()) - .desc(BpmProcessTask::getCreatedAt)); - BpmTaskApprovalParam committeeParam = new BpmTaskApprovalParam(); - committeeParam.setProcessInstanceId(committeeInstance.getId()); - committeeParam.setProcessInstanceBusinessId(record.getId()); - committeeParam.setProcessInstanceTaskId(committeeTask.getId()); - committeeParam.setBpmTaskApprovalType(BpmTaskApprovalTypeEnum.PASS.name()); - committeeParam.setBpmTaskApprovalTypeEnum(BpmTaskApprovalTypeEnum.PASS); - committeeParam.setApprovalOpinion("校工会会审核通过"); - bpmService.completeTask(committeeParam.getProcessInstanceTaskId(), committeeParam.getBpmTaskApprovalTypeEnum(), null, null); - - // 更新用户信息 - memberManageService.compareMemberChangeInfoAndUpdateUser(record); - } - return Result.success(); - } catch (Exception e) { - e.printStackTrace(); - return Result.error(e.getMessage()); - } - } - - @At - @Ok("void") - @SaCheckPermission("member.schoolUnion.manage.list") - public void doExport(MemberManagePageForm pageForm, HttpServletResponse response){ - Sql sql = memberManageService.getSql(pageForm, "schoolUnion"); - List list = memberManageService.listMap(sql); - - List exportEntities = new ArrayList<>(); - exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); - exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); - exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); - exportEntities.add(new ExcelExportEntity("出生年月", "birthday", 20)); - exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); - exportEntities.add(new ExcelExportEntity("福利号码", "welfareMobile", 20)); - exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); - exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20)); - exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); - exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20)); - exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30)); - - ExportParams exportParams = new ExportParams(); - exportParams.setType(ExcelType.XSSF); - - try { - Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); - CommonDownloadUtil.download("会员名单.xlsx", workbook, response); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @At - @Ok("void") - @SaCheckPermission("member.schoolUnion.manage.list") - public void doExportNotEqPhone(MemberManagePageForm pageForm, HttpServletResponse response){ - Sql sql = Sqls.create(""" - SELECT - u.id, - u.sex, - u.loginname, - u.username, - u.mobile, - u.welfareMobile, - u.unitId, - u.unitName, - u.unionId, - u.unionName, - DATE_FORMAT(u.birthday, '%Y-%m-%d ') as birthday, - u.manyUnit, - u.member, - u.userState, - u.preparedBy, - u.personType, - u.welfareMember, - u.isModelWorker, - u.wantJoinLoveMutualAidAssociation, - his.id hisId, - his.changeTypes, - his.changeTime - FROM - vw_user u - LEFT JOIN sys_user_history his ON his.loginname = u.loginname - $condition - """); - Cnd cnd = Cnd.NEW(); - cnd.and(new Static("u.mobile != u.welfareMobile")); - MemberManagePageForm.buildSearch(cnd, pageForm); - cnd.desc("his.changeTime"); - cnd.groupBy("u.id"); - cnd.asc("u.unionId"); - cnd.asc("u.unitId"); - cnd.asc("u.id"); - sql.setCondition(cnd); - List list = memberManageService.listMap(sql); - - List exportEntities = new ArrayList<>(); - exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); - exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); - exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); - exportEntities.add(new ExcelExportEntity("出生年月", "birthday", 20)); - exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); - exportEntities.add(new ExcelExportEntity("福利号码", "welfareMobile", 20)); - exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); - exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20)); - exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); - exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20)); - exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30)); - - ExportParams exportParams = new ExportParams(); - exportParams.setType(ExcelType.XSSF); - - try { - Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); - CommonDownloadUtil.download("会员福利号码不一致名单.xlsx", workbook, response); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/MemberSchoolUnionRecordController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/MemberSchoolUnionRecordController.java deleted file mode 100644 index b69be01..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/MemberSchoolUnionRecordController.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.school; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.result.Result; -import com.budwk.app.sys.models.Sys_user_history; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import lombok.extern.slf4j.Slf4j; -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; - -import javax.validation.Valid; -import java.util.List; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberSchoolRecordController - * @Date 2024/8/13 16:27 - * @注释 校工会 会员变更记录 - */ -@Slf4j -@IocBean -@Ok("json") -@At("/platform/member/schoolUnion/record") -public class MemberSchoolUnionRecordController { - - @Inject - private MemberManageService memberManageService; - - @At("") - @Ok("beetl:/platform/zhgh/staffmanage/member/school/record/index.html") - @SaCheckPermission("member.schoolUnion.record") - public void index() { - } - - @At - @SaCheckPermission("member.schoolUnion.record") - public Result pageData(MemberManagePageForm pageForm){ - Pagination pagination = memberManageService.memberHistoryRecords(pageForm); - return Result.success(pagination); - } - - - @At - @SaCheckPermission("member.schoolUnion.record") - public Result findAuditChangeInfo(@Valid String recordId) { - Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, recordId); - List list = memberManageService.compareMemberChangeInfo(history); - return Result.success(list); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/verification/MemberBranchVerificationCheckController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberBranchVerificationCheckController.java similarity index 86% rename from src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/verification/MemberBranchVerificationCheckController.java rename to src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberBranchVerificationCheckController.java index 68392dc..b7dd946 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/branch/verification/MemberBranchVerificationCheckController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberBranchVerificationCheckController.java @@ -1,4 +1,4 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.branch.verification; +package com.budwk.app.zhgh.staffmanage.member.controller.verification; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaMode; @@ -12,20 +12,16 @@ import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.result.Result; import com.budwk.app.sys.models.Sys_user; -import com.budwk.app.sys.models.Sys_user_change_info; import com.budwk.app.sys.models.Sys_user_history; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin; -import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; -import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationProject; -import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationUser; -import com.budwk.app.zhgh.staffmanage.member.models.MemberVerificationBranchUnionFeedback; +import com.budwk.app.zhgh.staffmanage.member.models.*; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberListVerificationPageForm; import com.budwk.app.zhgh.staffmanage.member.param.MemberVerificationBranchUnionFeedbackParam; import com.budwk.app.zhgh.staffmanage.member.param.MemberVerificationGetChangeParam; import com.budwk.app.zhgh.staffmanage.member.service.MemberListVerificationService; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.nutz.aop.interceptor.ioc.TransAop; @@ -65,7 +61,7 @@ public class MemberBranchVerificationCheckController { private MemberListVerificationService memberListVerificationService; @Inject - private MemberManageService memberManageService; + private MemberCommonService memberCommonService; @At("") @Ok("beetl:/platform/zhgh/staffmanage/member/branch/verification/check/index.html") @@ -113,16 +109,15 @@ public class MemberBranchVerificationCheckController { @ApiOperation("分工会 名单核对事项,单个人员变更") @SaCheckPermission("member.branchUnion.verification.check") @SLog(tag = "分工会管理-名单核对事项", type = "branchUnionVerification", msg = "分工会单个人员变更") - public Result doCheckMember(@Param("record") MemberApplyRecord record) { + public Result doCheckMember(@Param("record") MemberChangeRecord record) { if (Objects.isNull(record)) { return Result.error("数据获取失败"); } - Dao dao = memberManageService.dao(); -// memberManageService.compareMemberChangeInfoAndUpdateUser(record); + Dao dao = memberCommonService.dao(); // 校验是否有变更的东西 - memberManageService.compareMemberChangeInfo(record); + memberCommonService.compareChangeInfoAndUpdateMember(record); record.setChangeOrigin(MemberChangeOrigin.BRANCH_UNION_VERIFICATION.name()); - MemberApplyRecord applyRecord = dao.fetch(MemberApplyRecord.class, Cnd.where("userId", "=", record.getUserId()) + MemberChangeRecord applyRecord = dao.fetch(MemberChangeRecord.class, Cnd.where("userId", "=", record.getUserId()) .and("verificationProjectId", "=", record.getVerificationProjectId())); //查出当前核对事项是否有变更记录,有则修改 if (Lang.isNotEmpty(applyRecord)) { @@ -152,7 +147,7 @@ public class MemberBranchVerificationCheckController { @SaCheckPermission("member.branchUnion.verification.check") @SLog(tag = "分工会管理-名单核对事项", type = "branchUnionVerification", msg = "名单核对事项无误提交") public Result correctSubmission(@Param("data") @Valid MemberVerificationBranchUnionFeedbackParam param) { - memberManageService.dao().update(MemberVerificationBranchUnionFeedback.class, + memberCommonService.dao().update(MemberVerificationBranchUnionFeedback.class, Chain.make("isSubmit", true).add("status", "分工会无误提交") .add("welfareJson", param.getWelfareJson()), Cnd.where("verificationProjectId", "=", param.getVerificationProjectId()) @@ -189,7 +184,7 @@ public class MemberBranchVerificationCheckController { @At @SaCheckPermission("member.branchUnion.verification.check") public Result validateSubmitButton(@Valid @Param("verificationProjectId") String verificationProjectId) { - MemberVerificationBranchUnionFeedback feedback = memberManageService.dao().fetch(MemberVerificationBranchUnionFeedback.class, + MemberVerificationBranchUnionFeedback feedback = memberCommonService.dao().fetch(MemberVerificationBranchUnionFeedback.class, Cnd.where("verificationProjectId", "=", verificationProjectId).and("unionId", "=", SecurityUtil.getUnionId())); boolean flag = feedback.getBranchUnionSubmitNum() == 0 || feedback.getBranchUnionSubmit(); @@ -240,15 +235,10 @@ public class MemberBranchVerificationCheckController { @ApiOperation("分工会 名单核对事项,获取变更记录") @SaCheckPermission("member.branchUnion.verification.check") public Result getVerificationChangeInfo(@Valid @Param("data") MemberVerificationGetChangeParam param) { - MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class, + MemberChangeRecord record = memberCommonService.dao().fetch(MemberChangeRecord.class, Cnd.where("userId", "=", param.getUserId()).and("verificationProjectId", "=", param.getVerificationProjectId())); if (Lang.isNotEmpty(record)) { - Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", record.getId()).desc("changeTime")); - if (Lang.isNotEmpty(history)) { - return Result.success(memberManageService.compareMemberChangeInfo(history)); - } else { - return Result.success(memberManageService.compareMemberChangeInfo(record)); - } + return Result.success(memberCommonService.getChangeInfos(record)); } return Result.error(); } @@ -258,9 +248,9 @@ public class MemberBranchVerificationCheckController { @ApiOperation("分工会 名单核对事项,查看反馈结果") @SaCheckPermission(value = {"member.branchUnion.verification.check", "member.schoolUnion.verification.check"}, mode = SaMode.OR) public Result getVerificationFeedback(String verificationProjectId, String unionId) { - MemberVerificationBranchUnionFeedback fetch = memberManageService.dao().fetch(MemberVerificationBranchUnionFeedback.class, + MemberVerificationBranchUnionFeedback fetch = memberCommonService.dao().fetch(MemberVerificationBranchUnionFeedback.class, Cnd.where("verificationProjectId", "=", verificationProjectId).and("unionId", "=", unionId)); - MemberListVerificationProject verificationProject = memberManageService.dao().fetch(MemberListVerificationProject.class, Cnd.where("id", "=", verificationProjectId)); + MemberListVerificationProject verificationProject = memberCommonService.dao().fetch(MemberListVerificationProject.class, Cnd.where("id", "=", verificationProjectId)); NutMap nutMap = Lang.obj2nutmap(verificationProject); nutMap.put("feedbackDate", DateUtil.format(DateUtil.date(fetch.getUpdatedAt()), "yyyy-MM-dd HH:mm:ss")); nutMap.put("unionName", fetch.getUnionName()); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/verification/MemberListVerificationController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberListVerificationController.java similarity index 94% rename from src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/verification/MemberListVerificationController.java rename to src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberListVerificationController.java index 4ce9589..871398e 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/verification/MemberListVerificationController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberListVerificationController.java @@ -1,4 +1,4 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.school.verification; +package com.budwk.app.zhgh.staffmanage.member.controller.verification; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.date.DateUtil; @@ -14,15 +14,11 @@ import com.budwk.app.sys.models.Sys_union; import com.budwk.app.sys.services.SysDictService; import com.budwk.app.zhgh.benefit.mode.BenefitUserTemp; import com.budwk.app.zhgh.staffmanage.member.mode.MemberImportTemp; -import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; -import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationProject; -import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationUser; -import com.budwk.app.zhgh.staffmanage.member.models.MemberVerificationBranchUnionFeedback; +import com.budwk.app.zhgh.staffmanage.member.models.*; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberListVerificationPageForm; import com.budwk.app.zhgh.staffmanage.member.param.MemberListVerificationParam; import com.budwk.app.zhgh.staffmanage.member.param.MemberListVerificationProjectParam; import com.budwk.app.zhgh.staffmanage.member.service.MemberListVerificationService; -import com.budwk.app.zhgh.welfare.mode.WelfareUserTemp; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; @@ -188,7 +184,7 @@ public class MemberListVerificationController { public Result removeVerificationProject(String verificationProjectId) { Dao dao = memberListVerificationService.dao(); dao.clear(MemberListVerificationProject.class, Cnd.where("id", "=", verificationProjectId)); - dao.clear(MemberApplyRecord.class, Cnd.where("verificationProjectId", "=", verificationProjectId)); + dao.clear(MemberChangeRecord.class, Cnd.where("verificationProjectId", "=", verificationProjectId)); dao.clear(MemberListVerificationUser.class, Cnd.where("verificationProjectId", "=", verificationProjectId)); dao.clear(MemberVerificationBranchUnionFeedback.class, Cnd.where("verificationProjectId", "=", verificationProjectId)); return Result.success(); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/verification/MemberSchoolVerificationCheckController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberSchoolVerificationCheckController.java similarity index 85% rename from src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/verification/MemberSchoolVerificationCheckController.java rename to src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberSchoolVerificationCheckController.java index ff17259..f3a5b07 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/school/verification/MemberSchoolVerificationCheckController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/verification/MemberSchoolVerificationCheckController.java @@ -1,4 +1,4 @@ -package com.budwk.app.zhgh.staffmanage.member.controller.school.verification; +package com.budwk.app.zhgh.staffmanage.member.controller.verification; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; @@ -6,7 +6,6 @@ import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.json.JSONObject; import com.budwk.app.base.annotation.RepeatSubmit; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; @@ -16,16 +15,12 @@ import com.budwk.app.sys.models.Sys_user; import com.budwk.app.sys.models.Sys_user_change_info; import com.budwk.app.sys.models.Sys_user_history; import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin; -import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType; -import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; -import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationProject; -import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationUser; -import com.budwk.app.zhgh.staffmanage.member.models.MemberVerificationBranchUnionFeedback; +import com.budwk.app.zhgh.staffmanage.member.models.*; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberListVerificationPageForm; import com.budwk.app.zhgh.staffmanage.member.param.MemberSchoolVerificationSubmitParam; import com.budwk.app.zhgh.staffmanage.member.param.MemberVerificationGetChangeParam; import com.budwk.app.zhgh.staffmanage.member.service.MemberListVerificationService; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Workbook; @@ -33,9 +28,7 @@ import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; -import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; -import org.nutz.dao.util.cri.Static; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -68,7 +61,7 @@ public class MemberSchoolVerificationCheckController { private MemberListVerificationService memberListVerificationService; @Inject - private MemberManageService memberManageService; + private MemberCommonService memberCommonService; @At("") @Ok("beetl:/platform/zhgh/staffmanage/member/school/verification/check/index.html") @@ -96,15 +89,10 @@ public class MemberSchoolVerificationCheckController { @At @SaCheckPermission("member.schoolUnion.verification.check") public Result getVerificationChangeInfo(@Valid @Param("data") MemberVerificationGetChangeParam param) { - MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class, + MemberChangeRecord record = memberCommonService.dao().fetch(MemberChangeRecord.class, Cnd.where("userId", "=", param.getUserId()).and("verificationProjectId", "=", param.getVerificationProjectId())); if (Lang.isNotEmpty(record)) { - Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", record.getId()).desc("changeTime")); - if (Lang.isNotEmpty(history)) { - return Result.success(memberManageService.compareMemberChangeInfo(history)); - } else { - return Result.success(memberManageService.compareMemberChangeInfo(record)); - } + return Result.success(memberCommonService.getChangeInfos(record)); } return Result.success(); } @@ -126,18 +114,18 @@ public class MemberSchoolVerificationCheckController { Chain chain = Chain.make("schoolUnionChecked", true); chain.add("verificationOption", param.getOption()); - MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class, + MemberChangeRecord record = memberCommonService.dao().fetch(MemberChangeRecord.class, Cnd.where("userId", "=", param.getUserId()) .and("verificationProjectId", "=", param.getVerificationProjectId())); if (param.getFlag()) { chain.add("currentState", 2); - memberManageService.compareMemberChangeInfoAndUpdateUser(record); + memberCommonService.compareChangeInfoAndUpdateMember(record); } else { chain.add("currentState", 1); - memberManageService.update(record); + memberCommonService.update(record); } - memberManageService.dao().update(MemberListVerificationUser.class, chain, + memberCommonService.dao().update(MemberListVerificationUser.class, chain, Cnd.where("userId", "=", param.getUserId()).and("verificationProjectId", "=", param.getVerificationProjectId())); return Result.success(); } @@ -148,19 +136,19 @@ public class MemberSchoolVerificationCheckController { @SaCheckPermission("member.schoolUnion.verification.check") @SLog(type = "member", tag = "名单核对事项", msg = "校工会提交") public Result schoolVerificationSubmit(@Valid @Param("data") MemberSchoolVerificationSubmitParam param) { - MemberVerificationBranchUnionFeedback fetch = memberManageService.dao().fetch(MemberVerificationBranchUnionFeedback.class, + MemberVerificationBranchUnionFeedback fetch = memberCommonService.dao().fetch(MemberVerificationBranchUnionFeedback.class, Cnd.where("verificationProjectId", "=", param.getVerificationProjectId()) .and("unionId", "=", param.getUnionId())); fetch.setSchoolUnionSubmit(true); fetch.setSchoolUnionSubmitNum(fetch.getSchoolUnionSubmitNum() + 1); fetch.setStatus("待分工会重新提交"); // 更新反馈表的数据,校工会提交置为true - memberManageService.dao().update(fetch); + memberCommonService.dao().update(fetch); Cnd cnd = Cnd.NEW(); cnd.and("unionId", "=", param.getUnionId()); cnd.and("verificationProjectId", "=", param.getVerificationProjectId()); - memberManageService.dao().update(MemberListVerificationUser.class, + memberCommonService.dao().update(MemberListVerificationUser.class, Chain.make("branchUnionChecked", false).add("schoolUnionChecked", true), cnd); return Result.success(); @@ -179,7 +167,7 @@ public class MemberSchoolVerificationCheckController { @SaCheckPermission("member.schoolUnion.verification.check") public Result getChangeTypeUserPageData(MemberListVerificationPageForm pageForm) { Sql sql = memberListVerificationService.getChangeTypeUserSql(pageForm); - Pagination pagination = memberManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); return Result.success(pagination); } @@ -189,7 +177,7 @@ public class MemberSchoolVerificationCheckController { @SaCheckPermission("member.schoolUnion.verification.check") public void exportChangeTypeUserByUnionIdExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response) { Sql sql = memberListVerificationService.getChangeTypeUserSql(pageForm); - List list = memberManageService.listMap(sql); + List list = memberCommonService.listMap(sql); List excelExportEntities = memberListVerificationService.buildExportEntities(); NutMap nutMap = list.stream().findFirst().orElse(NutMap.NEW()); String labelName = ""; @@ -215,9 +203,9 @@ public class MemberSchoolVerificationCheckController { @Ok("void") @SaCheckPermission("member.schoolUnion.verification.check") public void exportAllChangeTypeUserExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response){ - MemberListVerificationProject project = memberManageService.dao().fetch(MemberListVerificationProject.class, pageForm.getVerificationProjectId()); + MemberListVerificationProject project = memberCommonService.dao().fetch(MemberListVerificationProject.class, pageForm.getVerificationProjectId()); Sql sql = memberListVerificationService.getChangeTypeUserSql(pageForm); - List list = memberManageService.listMap(sql); + List list = memberCommonService.listMap(sql); List excelExportEntities = memberListVerificationService.buildExportEntities(); String labelName = ""; switch (pageForm.getChangeType()) { @@ -244,13 +232,13 @@ public class MemberSchoolVerificationCheckController { @ApiOperation("校工会 名单核对事项,单个人员变更") @SaCheckPermission("member.schoolUnion.verification.check") @SLog(tag = "校工会管理-名单核对事项", type = "schoolUnionVerification", msg = "校工会单个人员变更") - public Result doCheckMember(@Param("record") MemberApplyRecord record){ + public Result doCheckMember(@Param("record") MemberChangeRecord record){ if (Objects.isNull(record)) { return Result.error("数据获取失败"); } - Dao dao = memberManageService.dao(); + Dao dao = memberCommonService.dao(); record.setChangeOrigin(MemberChangeOrigin.SCHOOL_UNION_VERIFICATION.name()); - MemberApplyRecord applyRecord = dao.fetch(MemberApplyRecord.class, Cnd.where("userId", "=", record.getUserId()) + MemberChangeRecord applyRecord = dao.fetch(MemberChangeRecord.class, Cnd.where("userId", "=", record.getUserId()) .and("verificationProjectId", "=", record.getVerificationProjectId())); // 如果之前有变更,删除之前记录 if (Lang.isNotEmpty(applyRecord)) { @@ -271,7 +259,7 @@ public class MemberSchoolVerificationCheckController { .and("verificationProjectId", "=", record.getVerificationProjectId())); dao.clear(Sys_user_history.class, Cnd.where("recordId", "=", record.getId())); - memberManageService.compareMemberChangeInfoAndUpdateUser(record); + memberCommonService.compareChangeInfoAndUpdateMember(record); dao.update(MemberListVerificationUser.class, Chain.make("schoolUnionChecked", true).add("currentState", 2), @@ -289,13 +277,13 @@ public class MemberSchoolVerificationCheckController { @SLog(tag = "校工会管理-名单核对事项", type = "schoolUnionVerification", msg = "退回分工会无误提交") public Result doRollback(@Valid @Param("id") String id, @Valid @Param("rollbackReason") String rollbackReason){ - MemberVerificationBranchUnionFeedback feedback = memberManageService.dao().fetch(MemberVerificationBranchUnionFeedback.class, + MemberVerificationBranchUnionFeedback feedback = memberCommonService.dao().fetch(MemberVerificationBranchUnionFeedback.class, Cnd.where("id", "=", id)); feedback.setIsRollback(true); feedback.setRollbackReason(rollbackReason); feedback.setSchoolUnionSubmitNum(feedback.getSchoolUnionSubmitNum() + 1); feedback.setStatus("校工会退回"); - memberManageService.dao().update(feedback); + memberCommonService.dao().update(feedback); return Result.success(); } @@ -305,7 +293,7 @@ public class MemberSchoolVerificationCheckController { @Ok("void") @SaCheckPermission("member.schoolUnion.verification.check") public void doExportByPageDataForExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response){ - MemberListVerificationProject project = memberManageService.dao().fetch(MemberListVerificationProject.class, pageForm.getVerificationProjectId()); + MemberListVerificationProject project = memberCommonService.dao().fetch(MemberListVerificationProject.class, pageForm.getVerificationProjectId()); List mapList = memberListVerificationService.getSchoolListVerificationUnion(pageForm); mapList.forEach(v-> { v.put("branchUnionSubmit" ,v.getBoolean("branchUnionSubmit") ? "已提交" : "未提交"); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberApplyRecord.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberApplyRecord.java index dd355a5..70f13f5 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberApplyRecord.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberApplyRecord.java @@ -242,6 +242,10 @@ public class MemberApplyRecord extends BaseModel { @ColDefine(type = ColType.TEXT) private String changeInfos; + @Column + @Comment("入会意愿") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isVoluntary; @Column @Comment("详细变更记录") diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberChangeRecord.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberChangeRecord.java new file mode 100644 index 0000000..214f12b --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberChangeRecord.java @@ -0,0 +1,255 @@ +package com.budwk.app.zhgh.staffmanage.member.models; + +import cn.hutool.json.JSONObject; +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.Date; +import java.util.List; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangeRecord + * @Date 2025/9/16 14:12 + * @注释 + */ +@Data +@Accessors(chain = true) +@Table("member_change_record") +@EqualsAndHashCode(callSuper = true) +public class MemberChangeRecord extends BaseModel { + + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @Comment("用户id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @NotBlank(message = "用户不能为空") + @Size(max = 32) + private String userId; + + @Column + @Comment("姓名") + @ColDefine(type = ColType.VARCHAR, width = 100) + @NotBlank(message = "姓名不能为空") + @Size(max = 100) + private String username; + + @Column + @Comment("工号") + @ColDefine(type = ColType.VARCHAR, width = 100) + @NotBlank(message = "工号不能为空") + @Size(max = 100) + private String loginname; + + @Column + @Comment("单位id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @NotBlank(message = "单位id不能为空") + @Size(max = 32) + private String unitId; + + @Column + @Comment("变更单位id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @Size(max = 32) + private String changeUnitId; + + @Column + @Comment("单位名称") + @ColDefine(type = ColType.VARCHAR, width = 200) + @NotBlank(message = "单位名称不能为空") + @Size(max = 200) + private String unitName; + + @Column + @Comment("工会id") + @ColDefine(type = ColType.VARCHAR, width = 32) + @NotBlank(message = "工会id不能为空") + @Size(max = 32) + private String unionId; + + @Column + @Comment("工会名称") + @ColDefine(type = ColType.VARCHAR, width = 50) + @NotBlank(message = "工会名称不能为空") + @Size(max = 50) + private String unionName; + + @Column + @Comment("性别") + @ColDefine(type = ColType.VARCHAR, width = 10) + @NotBlank(message = "性别不能为空") + @Size(max = 10) + private String sex; + + @Column + @Comment("证件号码") + @ColDefine(type = ColType.VARCHAR, width = 30) + @NotBlank(message = "证件号码不能为空") + @Size(max = 30) + private String idCard; + + @Column + @Comment("民族") + @ColDefine(type = ColType.VARCHAR, width = 20) + @NotBlank(message = "民族不能为空") + @Size(max = 20) + private String nation; + + @Column + @Comment("政治面貌") + @ColDefine(type = ColType.VARCHAR, width = 100) + @NotBlank(message = "政治面貌不能为空") + @Size(max = 100) + private String political; + + @Column + @Comment("学历") + @ColDefine(type = ColType.VARCHAR, width = 20) + @NotBlank(message = "学历不能为空") + @Size(max = 20) + private String education; + + @Column + @Comment("党政职务") + @ColDefine(type = ColType.VARCHAR, width = 50) + @NotBlank(message = "党政职务不能为空") + @Size(max = 50) + private String governmentPosition; + + @Column + @Comment("在职状态") + @ColDefine(type = ColType.VARCHAR, width = 50) + @NotBlank(message = "在职状态不能为空") + @Size(max = 50) + private String userState; + + @Column + @Comment("人事编制") + @ColDefine(type = ColType.VARCHAR, width = 50) + @NotBlank(message = "人事编制不能为空") + @Size(max = 50) + private String preparedBy; + + @Column + @Comment("人员类别") + @ColDefine(type = ColType.VARCHAR, width = 50) + @NotBlank(message = "人员类别不能为空") + @Size(max = 50) + private String personType; + + @Column + @Comment("手机号码") + @ColDefine(type = ColType.VARCHAR, width = 32) + @NotBlank(message = "手机号码不能为空") + @Size(max = 32) + private String mobile; + + @Column + @Comment("电子邮箱") + @ColDefine(type = ColType.VARCHAR, width = 255) + @NotBlank(message = "电子邮箱不能为空") + @Size(max = 255) + private String email; + + @Column + @Comment("是否愿意加入大病互助基金会") + @ColDefine(type = ColType.BOOLEAN) + @Default(value = "0") + @NotNull(message = "愿意加入大病互助基金会不能为空") + private Boolean wantJoinLoveMutualAidAssociation; + + @Column + @Comment("会员状态") + @ColDefine(type = ColType.BOOLEAN) + @Default(value = "0") + private Boolean member; + + @Column + @Comment("福利会员状态") + @ColDefine(type = ColType.BOOLEAN) + @Default(value = "0") + private Boolean welfareMember; + + @Column + @Comment("福利联系方式") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String welfareMobile; + + @Column + @Comment("家庭主要成员及其工作单位") + @ColDefine(type = ColType.MYSQL_JSON) + private List families; + + @Column + @Comment("博士后进站时间") + @ColDefine(type = ColType.DATE) + private Date postDoctoralJoinDate; + + @Column + @Comment("个人简况") + @ColDefine(type = ColType.VARCHAR, customType = "text") + @NotBlank(message = "个人简况不能为空") + private String personalData; + + @Column + @Comment("备注") + @ColDefine(type = ColType.VARCHAR, width = 255) + private String notes; + + @Column + @Comment("变更类型") + @ColDefine(type = ColType.VARCHAR, width = 20) + private String changeType; + + @Column + @Comment("变更类型集合") + @ColDefine(type = ColType.MYSQL_JSON) + private List changeTypes; + + @Column + @Comment("变更来源") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String changeOrigin; + + @Column + @Comment("申请时间") + @ColDefine(type = ColType.DATETIME) + @PrevInsert(now = true) + private Date applyDateTime; + + @Column + @Comment("福利享受截止日期") + @ColDefine(type = ColType.VARCHAR, width = 50) + private String welfareStopDate; + + @Column + @Comment("名单事项核对Id") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String verificationProjectId; + + @Column + @Comment("详细变更记录") + @ColDefine(type = ColType.TEXT) + private String changeInfos; + + @Column + @Comment("详细变更记录") + @ColDefine(type = ColType.TEXT) + private String remark; + + private Boolean edit; +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberApplyPageForm.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberApplyPageForm.java index b52455e..6f360fd 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberApplyPageForm.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberApplyPageForm.java @@ -3,6 +3,7 @@ package com.budwk.app.zhgh.staffmanage.member.param.pageform; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.param.PageForm; import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import org.nutz.dao.Cnd; @@ -19,30 +20,42 @@ import org.nutz.dao.util.cri.SqlExpressionGroup; @EqualsAndHashCode(callSuper = true) public class MemberApplyPageForm extends PageForm { + // 工会id + @ApiModelProperty("工会id") private String unionId; + // 单位id + @ApiModelProperty("单位id") private String unitId; + // 在职状态 + @ApiModelProperty("在职状态") private String userState; - private String personType; - + // 在职状态 + @ApiModelProperty("编制类型") private String preparedBy; - public static void buildSearch(Cnd cnd, MemberApplyPageForm pageForm) { + // 人员类型 + @ApiModelProperty("人员类型") + private String personType; + + public void buildSearch(Cnd cnd, String prefix){ if (cnd == null) { cnd = Cnd.NEW(); } - if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + + if (StrUtil.isNotBlank(this.getSearchKeyword())) { SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("vu.loginname", "like", "%" + pageForm.getSearchKeyword() + "%"); - seg.or("vu.username", "like", "%" + pageForm.getSearchKeyword() + "%"); + seg.orLike(prefix + "username", this.getSearchKeyword()); + seg.orLike(prefix + "loginname", this.getSearchKeyword()); cnd.and(seg); } - cnd.andEX("vu.unionId","=",pageForm.getUnionId()); - cnd.andEX("vu.unitId","=",pageForm.getUnitId()); - cnd.andEX("vu.userState","=",pageForm.getUserState()); - cnd.andEX("vu.personType","=",pageForm.getPersonType()); - cnd.andEX("vu.preparedBy","=",pageForm.getPreparedBy()); + + cnd.andEX(prefix + "unionId", "=", this.getUnionId()); + cnd.andEX(prefix + "unitId", "=", this.getUnitId()); + cnd.andEX(prefix + "userState", "=", this.getUserState()); + cnd.andEX(prefix + "preparedBy", "=", this.getPreparedBy()); + cnd.andEX(prefix + "personType", "=", this.getPersonType()); } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberChangePageForm.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberChangePageForm.java new file mode 100644 index 0000000..9c29f81 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberChangePageForm.java @@ -0,0 +1,62 @@ +package com.budwk.app.zhgh.staffmanage.member.param.pageform; + +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.param.PageForm; +import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nutz.dao.Cnd; +import org.nutz.dao.util.cri.SqlExpressionGroup; + +/** + * @version 1.0 + * @Author zzr + * @name:MemberChangePageForm + * @Date 2025/9/16 16:31 + * @注释 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MemberChangePageForm extends PageForm { + + // 工会id + @ApiModelProperty("工会id") + private String unionId; + + // 单位id + @ApiModelProperty("单位id") + private String unitId; + + // 在职状态 + @ApiModelProperty("在职状态") + private String userState; + + // 在职状态 + @ApiModelProperty("编制类型") + private String preparedBy; + + // 人员类型 + @ApiModelProperty("人员类型") + private String personType; + + + public void buildSearch(Cnd cnd, String prefix){ + if (cnd == null) { + cnd = Cnd.NEW(); + } + + if (StrUtil.isNotBlank(this.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.orLike(prefix + "username", this.getSearchKeyword()); + seg.orLike(prefix + "loginname", this.getSearchKeyword()); + cnd.and(seg); + } + + cnd.andEX(prefix + "unionId", "=", this.getUnionId()); + cnd.andEX(prefix + "unitId", "=", this.getUnitId()); + cnd.andEX(prefix + "userState", "=", this.getUserState()); + cnd.andEX(prefix + "preparedBy", "=", this.getPreparedBy()); + cnd.andEX(prefix + "personType", "=", this.getPersonType()); + } +} 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 5f861b5..7f1dd50 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 @@ -64,7 +64,13 @@ public class MemberManagePageForm extends PageForm { cnd = Cnd.NEW(); } if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { - cnd.and("u.unionId", "=", SecurityUtil.getUnionId()); + if (AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_CHAIRMAN.name(), RoleConstant.BRANCH_UNION_OPERATOR.name())) { + cnd.and("u.unionId", "=", SecurityUtil.getUnionId()); + } else if (AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_GROUP_LEADER.name())) { + cnd.and("u.unionGroupId", "=", SecurityUtil.getUnionGroupId()); + } else { + cnd.and("u.id", "=", SecurityUtil.getUserId()); + } } else { cnd.andEX("u.unionId", "=", pageForm.getUnionId()); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberManageService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCommonService.java similarity index 54% rename from src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberManageService.java rename to src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCommonService.java index e11a209..87e89c7 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberManageService.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCommonService.java @@ -4,7 +4,10 @@ import com.budwk.app.base.page.Pagination; import com.budwk.app.base.service.BaseService; import com.budwk.app.sys.models.Sys_user; import com.budwk.app.sys.models.Sys_user_history; +import com.budwk.app.sys.views.View_user; +import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin; import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; +import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord; import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; import org.nutz.dao.sql.Sql; import org.nutz.lang.util.NutMap; @@ -20,14 +23,14 @@ import java.util.Set; * @Date 2024/8/6 10:42 * @注释 */ -public interface MemberManageService extends BaseService { +public interface MemberCommonService extends BaseService { /** * 多条件查询Sql * @param pageForm * @return */ - Sql getSql(MemberManagePageForm pageForm, String queryType); + Sql getSql(MemberManagePageForm pageForm); /** * 获取会员、非会员、变更、未变更的人数 @@ -44,42 +47,45 @@ public interface MemberManageService extends BaseService { Pagination memberHistoryRecords(MemberManagePageForm pageForm); /** - * 根据用户id获取会员变更信息(时间线),所有的变更记录 - * @param userId 用户id - * @return List - */ - List getMemberChangeInfoByUserId(String userId); - - /** - * 会员变更信息对比 - * @param current 当前数据 - * @param previous 上一条数据 + * 获取可变更字段 * @return */ - List compareChange(Sys_user_history current, Sys_user_history previous, Set allowChangeFieldNames, Map dictMap); - - List compareMemberChangeInfo(Sys_user_history history); + NutMap getDictAllowChangeFields(); /** - * 校验是否有变更 - * @param record - */ - List compareMemberChangeInfo(MemberApplyRecord record); - - /** - * 获取变更类型 - * @param changeList 变更记录 + * 获取变更详情 + * @param recordId 变更记录id * @return */ - List compareMemberChangeType(List changeList, MemberApplyRecord record); + List getChangeInfos(String recordId); + List getChangeInfos(MemberChangeRecord record); /** - * 会员变更信息对比 并更新数据 + * 比较有哪些变更类型 + * @param record + * @param user + * @return + */ + List compareChangeType(MemberChangeRecord record, View_user user); + + /** + * 存储比较变更信息并更新会员信息 + * @param recordId + */ + void compareChangeInfoAndUpdateMember(String recordId); + /** + * 存储比较变更信息并更新会员信息 * @param record */ - void compareMemberChangeInfoAndUpdateUser(MemberApplyRecord record); + void compareChangeInfoAndUpdateMember(MemberChangeRecord record); + /** + * 获取会员的变更信息 + * @param userId + * @return + */ + List getAllChangeInfo(String userId); /** * 比较两个对象,并记录变更的字段工具 @@ -91,11 +97,16 @@ public interface MemberManageService extends BaseService { */ void extractChange(NutMap newMap, NutMap sourceMap, String fieldName, Map fieldsMap, List changeList); + /** - * 获取会员变更信息,memberApplyRecord表中名单核对事项人员与sys_user表中人员对比 - * @param userId - * @param verificationProjectId - * @return + * 验证变更信息 + * @param record */ - List getLastTimeMemberChangeInfoByUserId(String userId, String verificationProjectId); + void validateChangeAndSetBasicData(MemberChangeRecord record); + + /** + * 验证变更信息 + * @param record + */ + void validateChangeAndSetBasicData(MemberChangeRecord record, MemberChangeOrigin origin); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberModelWorkerService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberModelWorkerService.java deleted file mode 100644 index 6641dc9..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberModelWorkerService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.service; - -import com.budwk.app.base.service.BaseService; -import com.budwk.app.sys.models.Sys_user; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberModelWorkerPageForm; -import org.nutz.dao.sql.Sql; - -import javax.servlet.http.HttpServletResponse; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberModelWorkerService - * @Date 2024/9/25 17:01 - * @注释 - */ -public interface MemberModelWorkerService extends BaseService { - - Sql getSql(MemberModelWorkerPageForm pageForm); - - void doExport(MemberModelWorkerPageForm pageForm, HttpServletResponse response); -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberBranchUnionManageServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberBranchUnionManageServiceImpl.java index ee6cb0e..e2c87d4 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberBranchUnionManageServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberBranchUnionManageServiceImpl.java @@ -32,21 +32,17 @@ public class MemberBranchUnionManageServiceImpl extends BaseServiceImpl implements MemberCommonService { + + @Inject + private SysUserService sysUserService; + @Inject + private SysRoleService sysRoleService; + @Inject + private SysDictService sysDictService; + + public MemberCommonServiceImpl(Dao dao) { + super(dao); + } + + @Override + public Sql getSql(MemberManagePageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.sex, + u.loginname, + u.username, + u.mobile, + u.unitId, + u.unitName, + u.unionId, + u.unionName, + u.birthday, + u.manyUnit, + u.member, + u.userState, + u.preparedBy, + u.personType, + u.welfareMember, + his.id hisId, + his.changeTypes, + his.changeTime + FROM + vw_user u + LEFT JOIN sys_user_history his ON his.loginname = u.loginname + $condition + """); + Cnd cnd = Cnd.NEW(); + MemberManagePageForm.buildSearch(cnd, pageForm); + cnd.desc("his.changeTime"); + cnd.groupBy("u.id"); + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { + cnd.and("u.unionId", "=", SecurityUtil.getUnionId()); + } + cnd.asc("u.unionId"); + cnd.asc("u.unitId"); + cnd.asc("u.id"); + sql.setCondition(cnd); + return sql; + } + + + @Override + public NutMap getButtonNum(MemberManagePageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + (sum( CASE WHEN his.changeTypes IS NOT NULL THEN 1 ELSE 0 END )) as 'changeNum', + (sum( CASE WHEN his.changeTypes IS NULL THEN 1 ELSE 0 END )) as 'notChangeNum', + count(u.id) as 'userSumNum', + (sum( CASE WHEN u.member = 1 THEN 1 ELSE 0 END )) as 'memberNum', + (sum( CASE WHEN u.member != 1 THEN 1 ELSE 0 END )) as 'notMemberNum' + FROM + vw_user u + LEFT JOIN sys_user_history his ON his.loginname = u.loginname + $condition + """); + Cnd cnd = Cnd.NEW(); + MemberManagePageForm.buildSearch(cnd,pageForm); + sql.setCondition(cnd); + cnd.desc("his.changeTime"); + cnd.groupBy("u.id"); + return (NutMap) Daos.query(dao(), sql.toString(), Sqls.callback.map()); + } + + + @Override + public Pagination memberHistoryRecords(MemberManagePageForm pageForm) { + Sql sql = Sqls.create(""" + SELECT + his.id, + his.changeTime, + his.loginname, + his.username, + his.mobile, + his.birthday, + his.userState, + his.preparedBy, + his.personType, + his.sex, + his.changeTypes, + his.changeOrigin, + his.changeReason, + his.remark, + gh.`name` AS unionName, + unit.`name` AS unitName, + u.id AS userId + FROM + `sys_user_history` his + LEFT JOIN sys_user u ON u.loginname = his.loginname + LEFT JOIN sys_unit unit ON unit.id = u.unitid + LEFT JOIN sys_union gh ON gh.id = unit.unionId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.andEX("gh.id", "=", pageForm.getUnionId()); + cnd.andEX("his.unitId", "=", pageForm.getUnitId()); + cnd.andEX("his.personType", "=", pageForm.getPersonType()); + cnd.andEX("his.userState", "=", pageForm.getUserState()); + if (StrUtil.isNotBlank(pageForm.getChangeType())){ + cnd.and(new Static("JSON_CONTAINS(his.changeTypes, JSON_ARRAY('%s'), '$')".formatted(pageForm.getChangeType()))); + } + + if (Lang.isNotEmpty(pageForm.getChangeTypes())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + for (String type : pageForm.getChangeTypes()) { + seg.or(new Static("JSON_CONTAINS(his.changeTypes, JSON_ARRAY('%s'), '$')".formatted(type))); + } + cnd.and(seg); + } + + if (Lang.isNotEmpty(pageForm.getChangeOrigins())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + for (Integer c : pageForm.getChangeOrigins()) { + seg.orEquals("his.changeOrigin", c); + } + cnd.and(seg); + } + + if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.or("his.loginname", "like", "%" + pageForm.getSearchKeyword() + "%"); + seg.or("his.username", "like", "%" + pageForm.getSearchKeyword() + "%"); + cnd.and(seg); + } + if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.orderBy(pageForm.getPageOrderName(), pageForm.getPageOrderBy()); + } else { + cnd.desc("his.changeTime"); + } + + if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { + cnd.andEX("his.unionId", "=", SecurityUtil.getUnionId()); + } + sql.setCondition(cnd); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + @Override + public NutMap getDictAllowChangeFields() { + //获取可变更字段 + List dictList = sysDictService.getSubListByCode("MEMBER_ALLOW_CHANGES_FIELD"); + Set allowChangeFieldNames = dictList.stream().map(Sys_dict::getCode).collect(Collectors.toSet()); + allowChangeFieldNames.add("member"); + Map dictMap = dictList.stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName)); + dictMap.put("member", "会员状态"); + return NutMap.NEW().addv("allowChangeFieldNames", allowChangeFieldNames).addv("dictMap", dictMap); + } + + @Override + public List getChangeInfos(String recordId) { + Sys_user_history history = dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", recordId)); + if (Lang.isNotEmpty(history)) { + return history.getChangeInfos(); + } else { + MemberChangeRecord record = dao().fetch(MemberChangeRecord.class, recordId); + return getChangeInfos(record); + } + } + + @Override + public List getChangeInfos(MemberChangeRecord record) { + View_user info = dao().fetch(View_user.class, Cnd.where("id", "=", record.getUserId())); + + NutMap map = getDictAllowChangeFields(); + Set allowChangeFieldNames = map.getAs("allowChangeFieldNames", Set.class); + Map dictMap = map.getAs("dictMap", Map.class); + + // 新数据 + NutMap newMap = Lang.obj2nutmap(record); + // 原数据 + NutMap sourceMap = Lang.obj2nutmap(info); + List changeList = new ArrayList<>(); + + for (String fieldName : allowChangeFieldNames) { + extractChange(newMap, sourceMap, fieldName, dictMap, changeList); + } + return changeList; + } + + + @Override + public List compareChangeType(MemberChangeRecord record, View_user user) { + List changeTypes = new ArrayList<>(); + changeTypes.add(MemberChangeType.BASIC_CHANGE.name()); + if (!ObjectUtil.equals(user.getUserState(), record.getUserState())) { + List list = Arrays.stream(MemberChangeType.values()) + .filter(v -> v.getChangeTypeName().equals(record.getUserState())).toList(); + if (Lang.isNotEmpty(list)) { + changeTypes.add(list.get(0).name()); + } + } + if (!ObjectUtil.equals(user.getMember() == 1, record.getMember())){ + if (record.getMember()) { + changeTypes.add(MemberChangeType.RESTORE.name()); + } else { + changeTypes.add(MemberChangeType.WITHDRAWAL.name()); + } + } + if (!ObjectUtil.equals(user.getUnitId(), record.getUnitId())) { + changeTypes.add(MemberChangeType.UNIT_CHANGE.name()); + } + if (!ObjectUtil.equals(user.getUnionId(), record.getUnionId())) { + changeTypes.add(MemberChangeType.UNION_CHANGE.name()); + } + return changeTypes; + } + + + @Override + public void compareChangeInfoAndUpdateMember(String recordId) { + MemberChangeRecord record = dao().fetch(MemberChangeRecord.class, recordId); + compareChangeInfoAndUpdateMember(record); + } + + @Override + public void compareChangeInfoAndUpdateMember(MemberChangeRecord record) { + List changeList = getChangeInfos(record); + + // 如果有工会关系人员,这个user用来存储数据 + View_user user = dao().fetch(View_user.class, Cnd.where("id", "=", record.getUserId())); + // 获取会员信息,用于存储变更记录 + Sys_user info = dao().fetch(Sys_user.class, Cnd.where("id", "=", record.getUserId())); + String userId = info.getId(); + Sys_user_history history = new Sys_user_history(); + if (Lang.isNotEmpty(changeList)) { + BeanUtil.copyProperties(info, history); + } + + if (Lang.isNotEmpty(history)) { + history.setRecordId(record.getId()); + history.setChangeTime(DateUtil.date()); + history.setChangeTypes(record.getChangeTypes()); + history.setChangeOrigin(record.getChangeOrigin()); + + // 获取会员角色,加入或退出会员组别,写了之后用处不大,注释暂且保留,想优化就把下面注释打开 + Sys_role role = sysRoleService.getByCode(RoleConstant.MEMBER); + // 加入会员 + if (record.getMember()) { +// int activityCount = dao().count(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1)); + // 如果没有会员角色,新增 + int memberCount = dao().count(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", role.getId())); +// if (activityCount <= 0) { +// // 取消或加入会员组别 +// if (record.getIsJoinActivityMemberScope() != null && record.getIsJoinActivityMemberScope()) { +// ActivityUserScope scope = new ActivityUserScope(); +// scope.setUserId(userId); +// scope.setGroupId(1); +// scope.setGroupName("工会会员"); +// dao().insert(scope); +// } +// } + if (memberCount <= 0) { + Sys_user_role userRole = new Sys_user_role(); + userRole.setUserId(userId); + userRole.setRoleId(role.getId()); + dao().insert(userRole); + } + // 杭医特有,其他学校请删除 + record.setPreparedBy("会员"); + } else { +// if (record.getIsExitActivityMemberScope() != null && record.getIsExitActivityMemberScope()) { +// dao().clear(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1)); +// } + // 非会员取消会员角色 + dao().clear(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", role.getId())); + // 杭医特有,其他学校请删除 + record.setPreparedBy("教职工"); + } + + // 到此,表明审核通过,需要存储历史数据,并修改用户数据 + BeanUtil.copyProperties(record, info); + info.setId(userId); + + // 如果有单位变更,则需要记录单位关系 + if (record.getChangeTypes().contains(MemberChangeType.UNIT_CHANGE.name())) { + info.setUnitId(record.getUnitId()); + } + + + // 如果有工会关系变更,也需要记录变更了什么工会 + 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); + + sysUserService.deleteCache(info.getId()); + } + } + + @Override + public List getAllChangeInfo(String userId) { + List resultMapList = new ArrayList<>(); + + Sql sql = Sqls.fetchString(Sqls.create("select loginname from sys_user where id = @id").setParam("id", userId).toString()); + dao().execute(sql); + String loginName = sql.getString(); + + MemberChangeRecord record = dao().fetch(MemberChangeRecord.class, Cnd.where("userId", "=", userId).desc("applyDateTime")); + + List historyList = dao().query(Sys_user_history.class, Cnd.where("loginname", "=", loginName) + .and("changeInfos", "is not", null).desc("changeTime")); + + List recordList = historyList.stream().map(Sys_user_history::getRecordId).toList(); + + if (Lang.isNotEmpty(record) && !recordList.contains(record.getId())) { + NutMap map = NutMap.NEW(); + List changeInfos = getChangeInfos(record.getId()); + map.put("changeInfos", changeInfos); + map.put("timestamp", DateUtil.format(record.getApplyDateTime(), "yyyy-MM-dd HH:mm:ss")); + map.put("changeOriginName", MemberChangeOrigin.valueOf(MemberChangeOrigin.class, record.getChangeOrigin()).changeOriginName); + resultMapList.add(map); + } + for (Sys_user_history history : historyList) { + NutMap map = NutMap.NEW(); + List changeInfos = history.getChangeInfos(); + map.put("changeInfos", changeInfos); + map.put("timestamp", DateUtil.format(history.getChangeTime(), "yyyy-MM-dd HH:mm:ss")); + map.put("changeOriginName", MemberChangeOrigin.valueOf(MemberChangeOrigin.class, history.getChangeOrigin()).changeOriginName); + resultMapList.add(map); + } + return resultMapList; + } + + /** + * 比较两个对象,并记录变更的字段工具 + * + * @param newMap 新数据 + * @param sourceMap 原数据 + * @param fieldsMap 变更字段 + * @param changeList 变更集合 + */ + @Override + public void extractChange(NutMap newMap, NutMap sourceMap, String fieldName, Map fieldsMap, List changeList) { + try { + Object currentValue = this.booleanVerification(newMap.get(fieldName)); + Object previousValue = this.booleanVerification(sourceMap.get(fieldName)); + + if ("unitId".equals(fieldName)) { + currentValue = (newMap.get(fieldName) == null ? this.booleanVerification(newMap.get("unitId")) : currentValue); + previousValue = (sourceMap.get(fieldName) == null ? this.booleanVerification(sourceMap.get("unitId")) : previousValue); + } + + if (!ObjectUtil.equals(currentValue, previousValue)) { + String name = fieldsMap.getOrDefault(fieldName, fieldName); + if ("unitId".equals(fieldName) || "unitid".equals(fieldName)) { + List unitList = dao().query(Sys_unit.class, + Cnd.where("id", "in", List.of(previousValue, currentValue))); + Object finalPreviousValue = previousValue; + previousValue = unitList.stream().filter(v -> v.getId().equals(String.valueOf(finalPreviousValue))) + .findFirst().orElse(new Sys_unit()).getName(); + Object finalCurrentValue = currentValue; + currentValue = unitList.stream().filter(v -> v.getId().equals(String.valueOf(finalCurrentValue))) + .findFirst().orElse(new Sys_unit()).getName(); + } else if ("families".equals(fieldName)) { + return; + } + changeList.add(NutMap.NEW() + .setv("field", fieldName) + .setv("fieldName", name) + .setv("sourceValue", previousValue) + .setv("newValue", currentValue)); + } + + } catch (Exception e) { + log.error("Error while extracting and comparing changes for field: {}", fieldName, e); + } + } + + + @Override + public void validateChangeAndSetBasicData(MemberChangeRecord record) { + // 不传递 MemberChangeOrigin 默认个人变更 + validateChangeAndSetBasicData(record, MemberChangeOrigin.PERSONAL); + } + + + @Override + public void validateChangeAndSetBasicData(MemberChangeRecord record, MemberChangeOrigin origin) { + // 校验有没有发生变更 + List changeInfos = getChangeInfos(record); + if (Lang.isEmpty(changeInfos)) { + throw new BaseException("未获取到异动数据"); + } + + View_user user = dao().fetch(View_user.class, Cnd.where("id", "=", record.getUserId())); + // 比较有哪些变更类型 + List changeTypes = compareChangeType(record, user); + + record.setChangeTypes(changeTypes); + record.setUserId(user.getId()); + // 变更来源 + record.setChangeOrigin(origin != null ? origin.name() : MemberChangeOrigin.PERSONAL.name()); + record.setApplyDateTime(DateUtil.date()); + } + + private String booleanVerification(Object value) { + // 检查是否为null或空字符串 + if (ObjectUtil.isAllEmpty(value, "")) { + return "无数据"; + } + // 处理布尔值 + if (value instanceof Boolean) { + return ((Boolean) value) ? "是" : "否"; + } + // 处理数值类型 + if (value instanceof Number && List.of(0, 1).contains((Integer) value)) { + return ((Number) value).intValue() != 0 ? "是" : "否"; + } + // 其他对象,返回其字符串表示 + if (value instanceof Date) { + return DateUtil.format((Date) value, "yyyy-MM-dd"); + } + return value.toString(); + } +} 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 deleted file mode 100644 index 5ab8aba..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java +++ /dev/null @@ -1,534 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HtmlUtil; -import cn.hutool.json.JSONUtil; -import com.budwk.app.base.constant.RoleConstant; -import com.budwk.app.base.exception.BaseException; -import com.budwk.app.base.page.Pagination; -import com.budwk.app.base.service.impl.BaseServiceImpl; -import com.budwk.app.sys.models.*; -import com.budwk.app.sys.services.SysDictService; -import com.budwk.app.sys.views.View_user; -import com.budwk.app.web.commons.auth.utils.AuthUtil; -import com.budwk.app.web.commons.auth.utils.SecurityUtil; -import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin; -import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType; -import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; -import lombok.extern.slf4j.Slf4j; -import org.json.JSONArray; -import org.json.JSONObject; -import org.nutz.aop.interceptor.ioc.TransAop; -import org.nutz.dao.Chain; -import org.nutz.dao.Cnd; -import org.nutz.dao.Dao; -import org.nutz.dao.Sqls; -import org.nutz.dao.sql.Sql; -import org.nutz.dao.util.Daos; -import org.nutz.dao.util.cri.SqlExpressionGroup; -import org.nutz.dao.util.cri.Static; -import org.nutz.ioc.aop.Aop; -import org.nutz.ioc.loader.annotation.Inject; -import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.json.Json; -import org.nutz.lang.Lang; -import org.nutz.lang.util.NutMap; - -import java.util.*; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.stream.Collectors; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberServiceImpl - * @Date 2024/8/6 10:43 - * @注释 - */ -@IocBean(args = {"refer:dao"}) -@Slf4j -public class MemberManageServiceImpl extends BaseServiceImpl implements MemberManageService { - - @Inject - private SysDictService sysDictService; - - public MemberManageServiceImpl(Dao dao) { - super(dao); - } - - @Override - public Sql getSql(MemberManagePageForm pageForm, String queryType) { - Sql sql = Sqls.create(""" - SELECT - u.id, - u.sex, - u.loginname, - u.username, - u.mobile, - u.welfareMobile, - u.unitId, - u.unitName, - u.unionId, - u.unionName, - DATE_FORMAT(u.birthday, '%Y-%m-%d ') as birthday, - u.manyUnit, - u.member, - u.userState, - u.preparedBy, - u.personType, - u.welfareMember, - u.isModelWorker, - u.wantJoinLoveMutualAidAssociation, - his.id hisId, - his.changeTypes, - his.changeTime - FROM - vw_user u - LEFT JOIN sys_user_history his ON his.loginname = u.loginname - $condition - """); - Cnd cnd = Cnd.NEW(); - MemberManagePageForm.buildSearch(cnd, pageForm); - cnd.desc("his.changeTime"); - cnd.groupBy("u.id"); - if ("branchUnion".equals(queryType)) { - cnd.and("u.unionId", "=", SecurityUtil.getUnionId()); - } - cnd.asc("u.unionId"); - cnd.asc("u.unitId"); - cnd.asc("u.id"); - sql.setCondition(cnd); - return sql; - } - - - @Override - public NutMap getButtonNum(MemberManagePageForm pageForm) { - Sql sql = Sqls.create(""" - SELECT - (sum( CASE WHEN his.changeTypes IS NOT NULL THEN 1 ELSE 0 END )) as 'changeNum', - (sum( CASE WHEN his.changeTypes IS NULL THEN 1 ELSE 0 END )) as 'notChangeNum', - count(u.id) as 'userSumNum', - (sum( CASE WHEN u.member = 1 THEN 1 ELSE 0 END )) as 'memberNum', - (sum( CASE WHEN u.member != 1 THEN 1 ELSE 0 END )) as 'notMemberNum' - FROM - vw_user u - LEFT JOIN sys_user_history his ON his.loginname = u.loginname - $condition - """); - Cnd cnd = Cnd.NEW(); - MemberManagePageForm.buildSearch(cnd,pageForm); - sql.setCondition(cnd); - cnd.desc("his.changeTime"); - cnd.groupBy("u.id"); - return (NutMap) Daos.query(dao(), sql.toString(), Sqls.callback.map()); - } - - - @Override - public Pagination memberHistoryRecords(MemberManagePageForm pageForm) { - Sql sql = Sqls.create(""" - SELECT - his.id, - his.changeTime, - his.loginname, - his.username, - his.mobile, - his.birthday, - his.userState, - his.preparedBy, - his.personType, - his.sex, - his.changeTypes, - his.changeOrigin, - his.changeReason, - his.remark, - gh.`name` AS unionName, - unit.`name` AS unitName, - u.id AS userId - FROM - `sys_user_history` his - LEFT JOIN sys_user u ON u.loginname = his.loginname - LEFT JOIN sys_unit unit ON unit.id = u.unitid - LEFT JOIN sys_union gh ON gh.id = unit.unionId - $condition - """); - Cnd cnd = Cnd.NEW(); - cnd.andEX("gh.id", "=", pageForm.getUnionId()); - cnd.andEX("his.unitId", "=", pageForm.getUnitId()); - cnd.andEX("his.personType", "=", pageForm.getPersonType()); - cnd.andEX("his.userState", "=", pageForm.getUserState()); - if (StrUtil.isNotBlank(pageForm.getChangeType())){ - cnd.and(new Static("JSON_CONTAINS(his.changeTypes, JSON_ARRAY('%s'), '$')".formatted(pageForm.getChangeType()))); - } - - if (Lang.isNotEmpty(pageForm.getChangeTypes())) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (String type : pageForm.getChangeTypes()) { - seg.or(new Static("JSON_CONTAINS(his.changeTypes, JSON_ARRAY('%s'), '$')".formatted(type))); - } - cnd.and(seg); - } - - if (Lang.isNotEmpty(pageForm.getChangeOrigins())) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - for (Integer c : pageForm.getChangeOrigins()) { - seg.orEquals("his.changeOrigin", c); - } - cnd.and(seg); - } - - if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.or("his.loginname", "like", "%" + pageForm.getSearchKeyword() + "%"); - seg.or("his.username", "like", "%" + pageForm.getSearchKeyword() + "%"); - cnd.and(seg); - } - if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { - cnd.orderBy(pageForm.getPageOrderName(), pageForm.getPageOrderBy()); - } else { - cnd.desc("his.changeTime"); - } - - if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) { - cnd.andEX("his.unionId", "=", SecurityUtil.getUnionId()); - } - sql.setCondition(cnd); - return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); - } - - /** - * 根据用户id获取用户变更信息 - * - * @param userId 用户id - * @return - */ - @Override - public List getMemberChangeInfoByUserId(String userId) { - Sys_user user = dao().fetch(Sys_user.class, userId); - Sys_user_history history = new Sys_user_history(); - //获取当前用户信息 - BeanUtil.copyProperties(user, history); - history.setChangeTime(new Date()); - //获取用户变更信息 - List userHistories = dao().query(Sys_user_history.class, Cnd.where("loginname", "=", user.getLoginname())); - userHistories.add(history); - //按时间排序 - CollectionUtil.sort(userHistories, Comparator.comparing(Sys_user_history::getChangeTime).reversed()); - - //获取允许变更的字段 - List dictList = sysDictService.getSubListByCode("MEMBER_ALLOW_CHANGES_FIELD"); - Set allowChangeFieldNames = dictList.stream().map(Sys_dict::getCode).collect(Collectors.toSet()); - Map dictMap = dictList.stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName)); - - List resultList = new ArrayList<>(); - for (int i = 1; i < userHistories.size(); i++) { - Sys_user_history current = userHistories.get(i); - Sys_user_history previous = userHistories.get(i - 1); - NutMap nutMap = compareAndRecordChange(current, previous, allowChangeFieldNames, dictMap); - resultList.add(nutMap); - } - return resultList; - } - - - /** - * 比较两个对象,并记录变更的字段 - * - * @param current 当前数据 - * @param previous 上一次的数据 - * @param allowChangeFieldNames 允许变更的字段名 - * @param dictMap 字典数据 - * @return NutMap - */ - public NutMap compareAndRecordChange(Sys_user_history current, Sys_user_history previous, Set allowChangeFieldNames, Map dictMap) { - NutMap nutMap = NutMap.NEW(); - if (StrUtil.isNotBlank(current.getChangeOrigin())) { - String title = MemberChangeOrigin.valueOf(MemberChangeOrigin.class , current.getChangeOrigin()).changeOriginName; - nutMap.put("title", title + "(" + DateUtil.format(current.getChangeTime(), "yyyy-MM-dd HH:mm:ss") + ")"); - } else { - nutMap.put("title", DateUtil.format(current.getChangeTime(), "yyyy-MM-dd HH:mm:ss")); - } - nutMap.put("remark", current.getRemark()); - - nutMap.put("changeTime", DateUtil.format(current.getChangeTime(), "yyyy-MM-dd HH:mm:ss")); - List changeList = new ArrayList<>(); - - NutMap currentMap = Lang.obj2nutmap(current); - NutMap previousMap = Lang.obj2nutmap(previous); - - for (String fieldName : allowChangeFieldNames) { - extractChange(currentMap, previousMap, fieldName, dictMap, changeList); - } - nutMap.put("changeList", changeList); - return nutMap; - } - - - /** - * 比较两个对象,并记录变更的字段 - * - * @param current 当前数据 - * @param previous 上一次的数据 - * @param allowChangeFieldNames 允许变更的字段名 - * @param dictMap 字典数据 - * @return NutMap - */ - @Override - public List compareChange(Sys_user_history current, Sys_user_history previous, Set allowChangeFieldNames, Map dictMap) { - List changeList = new ArrayList<>(); - NutMap currentMap = Lang.obj2nutmap(current); - NutMap previousMap = Lang.obj2nutmap(previous); - - for (String fieldName : allowChangeFieldNames) { - extractChange(currentMap, previousMap, fieldName, dictMap, changeList); - } - return changeList; - } - - - /** - * 校验是否有变更 - * @param - */ - @Override - public List compareMemberChangeInfo(Sys_user_history history) { - List infos = history.getChangeInfos(); - if (ObjectUtil.isEmpty(infos)) { - throw new BaseException("获取变更记录失败"); - } - return infos; - } - - /** - * 校验是否有变更 - * @param record - */ - @Override - public List compareMemberChangeInfo(MemberApplyRecord record) { - if (ObjectUtil.isEmpty(record) || ObjectUtil.isEmpty(record.getLoginname())) { - throw new BaseException("未获取到变更记录"); - } - - NutMap previousMap = NutMap.NEW(); - - View_user user = dao().fetch(View_user.class, Cnd.where("loginname", "=", record.getLoginname())); - previousMap = Lang.obj2nutmap(user); - - //获取允许变更的字段 - List dictList = sysDictService.getSubListByCode("MEMBER_ALLOW_CHANGES_FIELD"); - Set allowChangeFieldNames = dictList.stream().map(Sys_dict::getCode).collect(Collectors.toSet()); - Map dictMap = dictList.stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName)); - - List changeList = new ArrayList<>(); - - NutMap currentMap = Lang.obj2nutmap(record); - - for (String fieldName : allowChangeFieldNames) { - extractChange(currentMap, previousMap, fieldName, dictMap, changeList); - } - if (Lang.isEmpty(changeList)) { - throw new BaseException("未获取到变更数据,请核对是否修改了数据"); - } - return changeList; - } - - - @Override - public List compareMemberChangeType(List changeList, MemberApplyRecord record) { - if (Lang.isEmpty(changeList)) { - return null; - } - List changeTypes = new ArrayList<>(); - // 有单位发生变化的记录数据 - long unitChangeCount = changeList.stream().filter(item -> item != null && "unitId".equals(item.get("fieldName"))).count(); - if (unitChangeCount > 0) { - // 有单位的变化,表明是单位变更 - changeTypes.add(MemberChangeType.UNIT_CHANGE.name()); - // 如果有非单位变更,表明是基本信息变更 - long nonUnitChangeCount = changeList.size() - unitChangeCount; - if (nonUnitChangeCount > 0) { - changeTypes.add(MemberChangeType.BASIC_CHANGE.name()); - } - } else { - // 没有单位的变化,表明是基本信息变更 - changeTypes.add(MemberChangeType.BASIC_CHANGE.name()); - } - - // record中是否存在前端传递过来的变更状态,(入会/退会) - String changeType = record.getChangeType(); - if (StrUtil.isNotBlank(changeType)) { - changeTypes.add(changeType); - } - - return changeTypes; - } - - /** - * 比较会员信息变更记录,并保存历史数据 - * - * @param record 传递的记录 - * @return - */ - @Aop(TransAop.READ_COMMITTED) - @Override - public void compareMemberChangeInfoAndUpdateUser(MemberApplyRecord record) { - List changeList = compareMemberChangeInfo(record); - - View_user user = dao().fetch(View_user.class, Cnd.where("loginname", "=", record.getLoginname())); - Sys_user_history history = new Sys_user_history(); - // 存储变更记录 - if (ObjectUtil.isNotEmpty(changeList)) { - // 将当前的用户数据(user)记录成历史数据 - BeanUtil.copyProperties(user, history); - - if (Lang.isNotEmpty(record.getChangeTypes())) { - history.setChangeTypes(record.getChangeTypes()); - } else { - List changeTypes = this.compareMemberChangeType(changeList, record); - history.setChangeTypes(changeTypes); - } - } - - if (ObjectUtil.isNotEmpty(history) && ObjectUtil.isNotEmpty(history.getLoginname())) { - Date nowDate = new Date(); - history.setRecordId(record.getId()); - history.setChangeTime(nowDate); - history.setUnionId(user.getUnionId()); - history.setUnionName(user.getUnionName()); - history.setChangeOrigin(StrUtil.isNotBlank(record.getChangeOrigin()) ? record.getChangeOrigin() : MemberChangeOrigin.SCHOOL_UNION.name()); - history.setChangeReason(record.getNotes()); - history.setRemark(record.getRemark()); - // 到此,表明审核通过,需要存储历史数据,并修改用户数据 - Chain chain = Chain.make("unitPath", null); - - changeList.forEach(v -> { - if ("unitId".equals(v.getString("fieldName"))) { - chain.add(v.getString("fieldName"), record.getUnitId()); - } else { - chain.add(v.getString("fieldName"), v.getString("newValue")); - } - }); - chain.add("member", record.getMember()); - chain.add("welfareMember", record.getWelfareMember()); - - Sys_role memberRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", "MEMBER")); - dao().clear(Sys_user_role.class, Cnd.where("userId", "=", user.getId()).and("roleId","=", memberRole.getId())); - if (record.getMember()) { - Sys_user_role userRole = new Sys_user_role(); - userRole.setRoleId(memberRole.getId()); - userRole.setUserId(user.getId()); - dao().insert(userRole); - } - - AtomicBoolean isRetire = new AtomicBoolean(false); - String changeInfos = changeList.stream().map(v -> { - if ("userState".equals(v.getString("fieldName")) && "退休".equals(v.getString("newValue"))) { - isRetire.set(true); - chain.add("retireDate", DateUtil.date()); - } - return "(变更字段:" + v.getString("name") + ",变更前:" + HtmlUtil.cleanHtmlTag(v.getString("value","")) + ",变更后:" + HtmlUtil.cleanHtmlTag(v.getString("newValue","")) + ")"; - }).collect(Collectors.joining(";")); - record.setChangeInfos(changeInfos); - - history.setChangeInfos(changeList); - history.setChangeInfosStr(changeInfos); - dao().insert(history); - - dao().update(Sys_user.class, chain, Cnd.where("loginname", "=", record.getLoginname())); - } else { - throw new BaseException("未获取到变更数据,请核对是否修改了数据"); - } - } - - - @Override - public List getLastTimeMemberChangeInfoByUserId(String userId, String verificationProjectId) { - MemberApplyRecord record = dao().fetch(MemberApplyRecord.class, Cnd.where("userId", "=", userId) - .and("verificationProjectId","=",verificationProjectId)); - if (ObjectUtil.isEmpty(record) || ObjectUtil.isEmpty(record.getLoginname())) { - throw new NullPointerException("数据获取失败"); - } - View_user user = dao().fetch(View_user.class, Cnd.where("loginname", "=", record.getLoginname())); - - //获取允许变更的字段 - List dictList = sysDictService.getSubListByCode("MEMBER_ALLOW_CHANGES_FIELD"); - Set allowChangeFieldNames = dictList.stream().map(Sys_dict::getCode).collect(Collectors.toSet()); - Map dictMap = dictList.stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName)); - - List changeList = new ArrayList<>(); - - NutMap currentMap = Lang.obj2nutmap(record); - NutMap previousMap = Lang.obj2nutmap(user); - - for (String fieldName : allowChangeFieldNames) { - extractChange(currentMap, previousMap, fieldName, dictMap, changeList); - } - return changeList; - } - - - - /** - * 比较两个对象,并记录变更的字段工具 - * - * @param current 当前数据 - * @param previous 上一次的数据 - * @param dictMap 字典数据 - * @param changeList 变更集合 - */ - @Override - public void extractChange(NutMap current, NutMap previous, String fieldName, Map dictMap, List changeList) { - try { - Object currentValue = this.booleanVerification(current.get(fieldName)); - Object previousValue = this.booleanVerification(previous.get(fieldName)); - - if (!ObjectUtil.equals(currentValue, previousValue)) { - String name = dictMap.getOrDefault(fieldName, fieldName); - if ("unitId".equals(fieldName)) { - List unitList = dao().query(Sys_unit.class, Cnd.where("id", "in", List.of(previousValue, currentValue))); - Object finalPreviousValue = previousValue; - previousValue = unitList.stream().filter(v->v.getId().equals(String.valueOf(finalPreviousValue))).findFirst().orElse(new Sys_unit()).getName(); - Object finalCurrentValue = currentValue; - currentValue = unitList.stream().filter(v->v.getId().equals(String.valueOf(finalCurrentValue))).findFirst().orElse(new Sys_unit()).getName(); - } else if ("families".equals(fieldName)) { - return; - } - changeList.add(NutMap.NEW() - .setv("fieldName", fieldName) - .setv("name", name) - .setv("value", previousValue) - .setv("newValue", currentValue)); - } - } catch (Exception e) { - log.error("Error while extracting and comparing changes for field: {}", fieldName, e); - } - } - - - private String booleanVerification(Object value) { - // 检查是否为null或空字符串 - if (ObjectUtil.isAllEmpty(value, "")) { - return "无数据"; - } - // 处理布尔值 - if (value instanceof Boolean) { - return ((Boolean) value) ? "是" : "否"; - } - // 处理数值类型 - if (value instanceof Number && List.of(0, 1).contains((Integer) value)) { - return ((Number) value).intValue() != 0 ? "是" : "否"; - } - // 其他对象,返回其字符串表示 - if (value instanceof Date) { - return DateUtil.format((Date) value, "yyyy-MM-dd"); - } - return value.toString(); - } -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberModelWorkerServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberModelWorkerServiceImpl.java deleted file mode 100644 index c7cfe21..0000000 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberModelWorkerServiceImpl.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.budwk.app.zhgh.staffmanage.member.service.impl; - -import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.entity.ExportParams; -import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; -import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; -import cn.hutool.core.util.StrUtil; -import com.budwk.app.base.service.impl.BaseServiceImpl; -import com.budwk.app.sys.models.Sys_user; -import com.budwk.app.web.commons.auth.utils.AuthUtil; -import com.budwk.app.web.commons.auth.utils.SecurityUtil; -import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberModelWorkerPageForm; -import com.budwk.app.zhgh.staffmanage.member.service.MemberModelWorkerService; -import lombok.extern.slf4j.Slf4j; -import org.apache.poi.ss.usermodel.*; -import org.nutz.dao.Cnd; -import org.nutz.dao.Dao; -import org.nutz.dao.Sqls; -import org.nutz.dao.sql.Sql; -import org.nutz.dao.util.cri.SqlExpressionGroup; -import org.nutz.ioc.loader.annotation.IocBean; -import org.nutz.lang.util.NutMap; - -import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; - -/** - * @version 1.0 - * @Author zzr - * @name:MemberModelWorkerServiceImpl - * @Date 2024/9/25 17:29 - * @注释 - */ -@Slf4j -@IocBean(args = {"refer:dao"}) -public class MemberModelWorkerServiceImpl extends BaseServiceImpl implements MemberModelWorkerService { - - public MemberModelWorkerServiceImpl(Dao dao) { - super(dao); - } - - @Override - public Sql getSql(MemberModelWorkerPageForm pageForm) { - Sql sql = Sqls.create(""" - SELECT - id, - loginname, - username, - sex, - member, - welfareMember, - personType, - userState, - unionCode, - unionName, - unionId, - unitName, - unitCode, - unitId, - mobile, - birthday, - isModelWorker, - modelWorkerFiles - from - `vw_user` - $condition - """); - Cnd cnd = Cnd.NEW(); - cnd.and("isModelWorker","=",true); - if (!AuthUtil.hasRoleOr("SYSADMIN", "SCHOOL_UNION_ADMIN")) { - cnd.and("unionId", "=", SecurityUtil.getUnionId()); - } else { - cnd.andEX("unionId", "=", pageForm.getUnionId()); - } - - cnd.andEX("unitId", "=", pageForm.getUnitId()); - if (StrUtil.isAllNotBlank(pageForm.getSearchKeyword())) { - SqlExpressionGroup seg = new SqlExpressionGroup(); - seg.orLike("username", pageForm.getSearchKeyword()); - seg.orLike("loginname", pageForm.getSearchKeyword()); - cnd.and(seg); - } - cnd.andEX("userState", "=", pageForm.getUserState()); - cnd.andEX("personType", "=", pageForm.getPersonType()); - if (StrUtil.isNotBlank(pageForm.getMemberState())) { - cnd.andEX("member", "=", "true".equals(pageForm.getMemberState())); - } - if (StrUtil.isNotBlank(pageForm.getWelfareMemberState())) { - cnd.andEX("welfareMember", "=", "true".equals(pageForm.getWelfareMemberState())); - } - sql.setCondition(cnd); - return sql; - } - - - @Override - public void doExport(MemberModelWorkerPageForm pageForm, HttpServletResponse response) { - Sql sql = getSql(pageForm); - List list = listMap(sql); - int size = list.size(); - - List exportEntities = new ArrayList<>(); - exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); - exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); - exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); - exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); - exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30)); - exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); - exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); - exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20)); - exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30)); - exportEntities.add(new ExcelExportEntity("是否为正式会员", "member", 10)); - exportEntities.add(new ExcelExportEntity("是否为福利会员", "welfareMember", 10)); - exportEntities.add(new ExcelExportEntity("劳模材料", "modelWorkerFiles", 20)); - - ExportParams exportParams = new ExportParams(); - exportParams.setType(ExcelType.XSSF); - - Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); - Sheet sheet = workbook.getSheetAt(0); - - int linkColumnIndex = exportEntities.size(); - CreationHelper helper = workbook.getCreationHelper(); - ClientAnchor anchor = helper.createClientAnchor(); - - for (int rowIndex = 1; rowIndex <= size; rowIndex++) { - - - - - Row row = sheet.getRow(rowIndex); - Cell cell = row.createCell(linkColumnIndex); - - - } - - -// CommonDownloadUtil - } - - - -} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/vo/MemberApplyVo.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/vo/MemberCommonVo.java similarity index 93% rename from src/main/java/com/budwk/app/zhgh/staffmanage/member/vo/MemberApplyVo.java rename to src/main/java/com/budwk/app/zhgh/staffmanage/member/vo/MemberCommonVo.java index f7e241b..ec8275e 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/vo/MemberApplyVo.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/vo/MemberCommonVo.java @@ -16,7 +16,7 @@ import java.util.List; */ @Data @EqualsAndHashCode(callSuper = true) -public class MemberApplyVo extends BpmTaskApprovalVo { +public class MemberCommonVo extends BpmTaskApprovalVo { private String id; private String userId; @@ -28,6 +28,7 @@ public class MemberApplyVo extends BpmTaskApprovalVo { private String unionId; private String changeUnionId; private String unionName; + private String groupName; private String sex; private String idCard; private String nation; diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java index dac9a17..1fbafa4 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/sourcechange/controller/SourceChangeManageController.java @@ -10,7 +10,7 @@ import com.budwk.app.bpm.service.BpmService; import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo; import com.budwk.app.sys.models.Sys_user_history; import com.budwk.app.sys.services.SysUserService; -import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService; +import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService; import com.budwk.app.zhgh.staffmanage.sourcechange.param.SourceChangePageForm; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -21,7 +21,6 @@ import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.dao.util.cri.Static; 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; @@ -48,7 +47,7 @@ public class SourceChangeManageController { @Inject private SysUserService sysUserService; @Inject - private MemberManageService memberManageService; + private MemberCommonService memberManageService; @At("") @Ok("beetl:/platform/zhgh/staffmanage/sourcechange/manage/index.html") @@ -118,7 +117,7 @@ public class SourceChangeManageController { @ApiOperation("人员管理,人员全部变更信息查看") @SaCheckPermission("staff.sourcechange.manage") public Result getChangeInfoByUserId(String userId) { - return Result.success(memberManageService.getMemberChangeInfoByUserId(userId)); + return Result.success(memberManageService.getAllChangeInfo(userId)); } @At @@ -133,7 +132,7 @@ public class SourceChangeManageController { log.error("FIND_AUDIT_CHANGE_INFO BY BpmTaskApprovalRecordVo error:{}", e.getMessage()); } - List list = memberManageService.compareMemberChangeInfo(history); + List list = memberManageService.getChangeInfos(recordId); return Result.success(NutMap.NEW().addv("changeList", list).addv("nodeTasks", nodeTasks).addv("remark", history.getRemark())); } } diff --git a/src/main/resources/static/assets/platform/js/tool/businessTool.js b/src/main/resources/static/assets/platform/js/tool/businessTool.js index 84fab62..d949c33 100644 --- a/src/main/resources/static/assets/platform/js/tool/businessTool.js +++ b/src/main/resources/static/assets/platform/js/tool/businessTool.js @@ -81,5 +81,17 @@ const businessTool = { return "" } }) + }, + getEnumOptions(name = null) { + return commonUtil + .axiosService() + .post("/open/common/dictEnumOptions", {name}) + .then((resp) => { + if (resp.code === 0) { + return resp.data + } else { + return [] + } + }) } } diff --git a/src/main/resources/views/platform/sys/union/branchUnionGroupManage.js b/src/main/resources/views/platform/sys/union/branchUnionGroupManage.js index a95c6ec..f438680 100644 --- a/src/main/resources/views/platform/sys/union/branchUnionGroupManage.js +++ b/src/main/resources/views/platform/sys/union/branchUnionGroupManage.js @@ -21,10 +21,10 @@ const branchUnionGroupManage = { - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html index b4b7d36..5c7dbc6 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html @@ -5,105 +5,91 @@ layout("/layouts/platform.html"){ - - + + + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/schoolunionaudit/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/change/schoolunionaudit/index.html new file mode 100644 index 0000000..6f91fe6 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/schoolunionaudit/index.html @@ -0,0 +1,180 @@ + + +
+ + + + + + + + + 已审核 + 未审核 + + + + + + + + + + + + + + + + + +
+ + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/submit/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/change/submit/index.html new file mode 100644 index 0000000..fa2536a --- /dev/null +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/submit/index.html @@ -0,0 +1,421 @@ + +
+ +

会员变更申请

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 会员 + 非会员 + + + + + + + + 福利会员 + 非福利会员 + + + + + + + + + + + + 保存 + 提交 + +
+
+ + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/apply/memberApply.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/apply/memberApply.js index fe4def2..17df732 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/apply/memberApply.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/common/apply/memberApply.js @@ -1,151 +1,150 @@ const MEMBER_APPLY = { - template: ` - - -

入会申请

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- `, + template: /*language=HTML*/ ` + +

入会申请

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ `, props: { adminOperate: { type: Boolean, default: false }, id: { type: String }, diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/audit/memberAuditChangeInfo.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/audit/memberAuditChangeInfo.js deleted file mode 100644 index 3827433..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/audit/memberAuditChangeInfo.js +++ /dev/null @@ -1,163 +0,0 @@ -const MEMBER_AUDIT_CHANGE_INFO = { - template: - /*language=HTML*/ - ` - - - - -
-
- 当前信息 -
- - {{ viewData.username }} - {{ viewData.sex }} - {{ viewData.nation }} - {{ viewData.userState }} - - - {{ viewData.education }} - {{ viewData.political }} - {{ viewData.marriage || '' }} - {{ viewData.idCard }} - {{ viewData.mobile }} - {{ viewData.email }} - {{ viewData.member ? '是' : '否' }} - {{ viewData.welfareMember ? '是' : '否' }} - - - - -
- {{ viewData.unionName + '-' + viewData.unitName + ( viewData.governmentPosition ? ( '(' - + viewData.governmentPosition + ')' ) : '' ) }} -
-
-
-
- -
-
- {{ '变更记录' + (remark ? ('(变更/审核说明:' + remark + ')') : '') }} -
- - - - - - - - - - -
- -
- - -
-
-
- {{nodeTask.nodeName}} -
- - - {{ task.actualOwnerLoginName + '-' + task.actualOwnerUserName}} - - {{ task.endOn}} - -
- 同意 - - 退回 - - 拒绝 - -
-
- - {{ task.extVariable.approvalOpinion }} - - - - - -
-
-
-
-
-
- `, - props: { - is_default_url: { - type: Boolean, - default: false - } - }, - data() { - return { - activeName: "basicInfo", - changeList: [], - nodeTasks: [], - viewData: {}, - remark: "" - } - }, - methods: { - findAuditChangeInfo(recordId) { - if (!recordId) { - return - } - let url = loc() + "/findAuditChangeInfo" - if (this.is_default_url) { - url = "/platform/sourcechange/manage/findAuditChangeInfo" - } - this.$axios.post(url, { recordId: recordId }).then((res) => { - if (res.code === 0) { - this.changeList = res.data.changeList - this.nodeTasks = res.data.nodeTasks - this.remark = res.data.remark - } - }) - }, - findUserInfo(userId) { - if (!userId) { - return - } - this.$axios.post("/platform/member/apply/common/findOne", { id: userId }).then((res) => { - if (res.code === 0) { - this.viewData = res.data - } - }) - }, - onOpen(data) { - console.log(data) - this.findAuditChangeInfo(data.recordId) - this.$nextTick(() => { - this.findUserInfo(data.userId) - }) - } - } -} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/audit/memberAuditRecord.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/audit/memberAuditRecord.js deleted file mode 100644 index 0591596..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/audit/memberAuditRecord.js +++ /dev/null @@ -1,71 +0,0 @@ -const MEMBER_AUDIT_RECORD = { - template: ` -
- - -
- `, - dicts: ["PROCESS_TASK_SUBMIT_TYPE"], - props: { - id: { - type: String, - required: true - } - }, - watch: { - id: { - handler: function (val) { - if (val) { - this.findOne() - } - }, - immediate: true - } - }, - data() { - return { - approvalRecord: [] - } - }, - methods: { - findOne() { - if (!this.id) { - return - } - this.$axios.post("/platform/wf/processCommon/approvalRecord", { businessNo: this.id }).then((res) => { - if (res.code === 0) { - this.approvalRecord = res.data - } - }) - } - } -} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/audit/memberAuditTable.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/audit/memberAuditTable.js deleted file mode 100644 index 5113b2b..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/audit/memberAuditTable.js +++ /dev/null @@ -1,202 +0,0 @@ -const MEMBER_AUDIT_TABLE = { - template: ` -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 已审核 - 未审核 - - - - - - - - - - - - - - - - - - - -
- `, - mixins: [initTableMixins], - data() { - return { - pageForm: { - audit: false - }, - tableColumns: [ - { prop: "loginname", label: "工号", sortable: true }, - { prop: "username", label: "姓名", sortable: true }, - { prop: "userState", label: "在职状态", sortable: true }, - { prop: "preparedBy", label: "聘用方式", sortable: true }, - { prop: "personType", label: "人员类型", sortable: true }, - { prop: "unionName", label: "所属工会", sortable: true }, - { prop: "unitName", label: "所属单位", sortable: true }, - { prop: "processInstanceNodeName", label: "当前节点", sortable: true } - ], - unions: [], - units: [], - changeTypeData: [], - auditChangeVisible: false, - userId: "", - recordId: "" - } - }, - methods: { - // 审核 - openApproval(row) { - this.$emit("open-approval", row) - }, - // 退回 - openRevoke(taskId) { - this.$confirm("您确定要撤回吗?", "提示", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }).then(() => { - this.$axios.post(loc() + "/revoke", { taskId }).then((resp) => { - this.$message.success(resp.msg) - this.doSearch() - }) - }) - }, - openEdit(row) { - this.$emit("open-edit", row) - }, - openUserChangeInfo(row) { - this.$emit("open-change-view", row) - }, - getChangeTypes(changeTypes) { - if (changeTypes) { - if (!changeTypes || changeTypes.length === 0 || !this.changeTypeData || this.changeTypeData.length === 0) return null - return changeTypes - .map((v) => { - return this.changeTypeData.find((item) => item.code === v).name - }) - .join(",") - } - return null - }, - openView(userId) { - this.$emit("open-view", userId) - }, - openChangeView(row) { - this.$emit("open-change-view", row) - }, - pageData() { - this.$axios.post(loc() + "/pageData", this.pageForm).then((res) => { - if (res.code === 0) { - this.tableData = res.data.list - this.pageForm.totalCount = res.data.totalCount - } - }) - }, - initData() { - if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) { - this.$businessTool.listUnion(this.pageForm.unionId).then((data) => { - this.unions = data - }) - } else { - this.$businessTool.listUnion(this.$store.state.user.union.id).then((data) => { - this.unions = data - }) - } - this.doSearch() - }, - flushUnits() { - this.$set(this.pageForm, "unitId", null) - this.units = [] - if (this.pageForm.unionId) { - this.$businessTool.listUnit(this.pageForm.unionId).then((data) => { - this.units = data - }) - } - } - }, - async created() { - this.initData() - this.changeTypeData = await this.$businessTool.getAllDictOptions("MEMBER_CHANGE_TYPE") - } -} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/change/memberChange.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/change/memberChange.js deleted file mode 100644 index 4835e51..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/change/memberChange.js +++ /dev/null @@ -1,368 +0,0 @@ -const MEMBER_CHANGE = { - template: /*language=HTML*/ ` - -

信息变更

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{item.name}} - - - - - - - - - - - - - - - - - - 关 闭 - 提 交 - -
- `, - props: { - id: { type: String, required: true }, - url: { type: String, required: true }, - edit: { type: Boolean, default: false }, - showClose: { type: Boolean, default: false } - }, - store, - data() { - return { - formDisabled: false, - formData: { - families: [], - changeMember: null, - changeWelfareMember: null, - changeWantJoinLoveMutualAidAssociation: null, - verificationProjectId: "" - }, - formRules: { - username: [{ required: false, message: "必填", trigger: "change" }], - sex: [{ required: false, message: "必填", trigger: "change" }], - idCard: [ - { required: false, message: "身份证号不能为空", trigger: "blur" }, - { - pattern: /(^\d{6}(18|19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9xX])$)/, - message: "身份证号格式不正确", - trigger: "blur" - } - ], - nation: [{ required: false, message: "必填", trigger: "change" }], - political: [{ required: false, message: "必填", trigger: "change" }], - education: [{ required: false, message: "必填", trigger: "change" }], - unitName: [{ required: false, message: "必填", trigger: "change" }], - governmentPosition: [{ required: false, message: "必填", trigger: "change" }], - mobile: [ - { required: true, message: "手机号不能为空", trigger: "blur" }, - { pattern: /^1[3-9]\d{9}$/, message: "手机号格式不正确", trigger: "blur" } - ], - email: [{ required: false, message: "必填", trigger: "change" }], - changeWantJoinLoveMutualAidAssociation: [{ required: false, message: "必填", trigger: "change" }], - personalData: [{ required: false, message: "必填", trigger: "change" }] - }, - allowChangeFields: [], - units: [], - changeTypeOptions: [] - } - }, - methods: { - clickDataType(e) { - e === this.formData.changeType ? (this.formData.changeType = "") : (this.formData.changeType = e) - this.doSetMemberStatus(e) - }, - doSetMemberStatus(name) { - this.$set(this.formData, "changeMember", name ? name === "RESTORE" : "") - this.$set(this.formData, "changeWelfareMember", name ? name === "RESTORE" : "") - this.$set(this.formData, "changeWantJoinLoveMutualAidAssociation", name ? name === "RESTORE" : "") - }, - init() { - if (this.id) { - this.findOne(this.id, this.edit) - } - if (!this.allowChangeFields || this.allowChangeFields.length === 0) { - this.$businessTool.getDictOptions("MEMBER_ALLOW_CHANGES_FIELD").then((data) => { - this.allowChangeFields = data.map((v) => v.code) - }) - } - if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) { - this.$businessTool.listUnit().then((data) => { - this.units = data - }) - } else { - this.$businessTool.listUnit(this.$store.state.user.union.id).then((data) => { - this.units = data - }) - } - this.$businessTool.getDictOptions("MEMBER_CHANGE_TYPE").then((data) => { - this.changeTypeOptions = data - }) - }, - assignmentFormData(data) { - const source = data - // 特定字段的默认值映射 - const defaultValues = { - families: [] - } - - const setField = (key) => { - // 检查字段是否在 defaultValues 映射中,如果在,则使用其默认值,否则从 source 获取值 - const value = defaultValues.hasOwnProperty(key) ? defaultValues[key] : source[key] - this.$set(this.formData, key, value) - } - // 遍历表单项并设置值 - this.$refs.formRef.fields.forEach((formItem) => { - setField(formItem.prop) - }) - this.$set(this.formData, "loginname", data.loginname) - this.$set(this.formData, "userId", data.id) - }, - findOne(id, isEdit) { - this.$axios.post("/platform/member/apply/submit/findOne", { id: id, isEdit: isEdit }).then((res) => { - if (res.code === 0) { - this.assignmentFormData(res.data) - } - }) - }, - allowFields(prop) { - return !this.allowChangeFields.includes(prop) - }, - getUnionName(unitId) { - const data = this.units.find((v) => v.id === unitId) - this.$set(this.formData, "unionName", data.unionName) - }, - doSubmit() { - //是否确认提交? - this.$confirm("是否确认提交?提交后将进入审核流程,请仔细核对变更数据是否准确!", "提示", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }).then(() => { - this.setSubmitUserMemberStatus() - if (this.edit) { - this.formData.edit = this.edit - this.formData.id = this.id - } - this.$axios - .post(this.url, { - record: JSON.stringify(this.formData), - approvalRemark: this.formData.approvalRemark - }) - .then((res) => { - if (res.code === 0) { - this.$message.success(res.msg) - this.$emit("submit-ready", null) - } - }) - }) - }, - setSubmitUserMemberStatus() { - if (this.formData.changeType) { - this.formData.member = this.formData.changeMember - this.formData.welfareMember = this.formData.changeWelfareMember - } - }, - verificationInit(data) { - this.allowChangeFields = data.renewFields - this.$set(this.formData, "changeOrigin", data.changeOrigin) - this.$set(this.formData, "verificationProjectId", data.verificationProjectId) - this.init() - } - }, - created() {} -} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/change/memberChangeInfo.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/change/memberChangeInfo.js deleted file mode 100644 index c41af3a..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/change/memberChangeInfo.js +++ /dev/null @@ -1,112 +0,0 @@ -const MEMBER_CHANGE_INFO = { - template: /*language=html*/ ` - -
-
- 当前信息 -
- - {{ viewData.username }} - {{ viewData.sex }} - {{ viewData.nation }} - {{ viewData.userState }} - - - {{ viewData.education }} - {{ viewData.political }} - {{ viewData.marriage || '' }} - {{ viewData.idCard }} - {{ viewData.mobile }} - {{ viewData.email }} - {{ viewData.member ? '是' : '否' }} - {{ viewData.welfareMember ? '是' : '否' }} - - - -
- {{ viewData.unionName + '-' + viewData.unitName + ( viewData.governmentPosition ? ( '(' + viewData.governmentPosition + ')' ) : '' ) }} -
-
-
-
- -
-
- 变更信息 -
- - - - - - -
-
-
变更/审核说明:
-
-
- {{ item.remark }} -
-
- - - - - - - - - - - - -
-
-
-
- `, - data() { - return { - viewList: [], - activeName: "", - viewData: {} - } - }, - methods: { - formattedTitle(title) { - const datePattern = /\(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\)/ - return title.replace(datePattern, '$&') - }, - onOpen(id, changeTime) { - if (!id) { - return - } - this.$axios.post(loc() + "/getChangeInfoByUserId", { userId: id }).then((res) => { - if (res.code === 0) { - this.viewList = res.data.sort((a, b) => new Date(b.title) - new Date(a.title)) - this.activeName = changeTime || (this.viewList && this.viewList.length > 0 ? this.viewList[0].changeTime : "") - this.findUserInfo(id) - } - }) - }, - findUserInfo(id) { - this.$axios.post("/platform/member/apply/common/findOne", { id }).then((res) => { - if (res.code === 0) { - this.viewData = res.data - } - }) - } - } -} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/info/memberInfo.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/info/memberInfo.js index 7c7f013..f2ff8ca 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/info/memberInfo.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/common/info/memberInfo.js @@ -17,9 +17,9 @@ {{ viewData.joinPartyDate ? $moment(viewData.joinPartyDate).format('YYYY-MM-DD') : null }} {{ viewData.arrivalAtSchoolDate ? $moment(viewData.arrivalAtSchoolDate).format('YYYY-MM-DD') : null}} {{ viewData.identityType }} + {{ viewData.userState }} {{ viewData.preparedBy }} {{ viewData.personType }} - {{ viewData.userState }} {{ viewData.retireDate ? $moment(viewData.retireDate).format('YYYY-MM-DD') : null }} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageQuery.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageQuery.js deleted file mode 100644 index c568a97..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageQuery.js +++ /dev/null @@ -1,136 +0,0 @@ -const MEMBER_MANAGE_QUERY = { - template: ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - `, - mixins: [initTableMixins], - data() { - return { - pickerOptions: { - shortcuts: [ - { - text: "最近一周", - onClick(picker) { - const end = new Date() - const start = new Date() - start.setTime(start.getTime() - 3600 * 1000 * 24 * 7) - picker.$emit("pick", [start, end]) - } - }, - { - text: "最近一个月", - onClick(picker) { - const end = new Date() - const start = new Date() - start.setTime(start.getTime() - 3600 * 1000 * 24 * 30) - picker.$emit("pick", [start, end]) - } - }, - { - text: "最近三个月", - onClick(picker) { - const end = new Date() - const start = new Date() - start.setTime(start.getTime() - 3600 * 1000 * 24 * 90) - picker.$emit("pick", [start, end]) - } - } - ] - }, - pageForm: { - unionId: null, - unitId: null, - sex: null, - searchKeyword: null, - changed: 2, - isMember: 1, - isWelfareMember: null, - changeTypes: [] - }, - unions: [], - units: [] - } - }, - methods: { - changeDateRangeChange(val) { - if (val && val.length > 0) { - this.pageForm.changeDateBefore = val[0] - this.pageForm.changeDateEnd = val[1] - } else { - this.pageForm.changeDateBefore = null - this.pageForm.changeDateEnd = null - } - this.doSearch() - }, - async initData() { - if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) { - this.unions = await this.$businessTool.listUnion(this.pageForm.unionId) - this.units = await this.$businessTool.listUnit() - } else { - this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id) - this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id) - } - // this.$businessTool.getDictOptions("MEMBER_CHANGE_TYPE").then((data) => { - // this.changeTypes = data - // }) - this.doSearch() - }, - async flushUnits() { - this.$set(this.pageForm, "unitId", null) - this.units = [] - if (this.pageForm.unionId) { - this.$businessTool.listUnit(this.pageForm.unionId).then((data) => { - this.units = data - }) - } - }, - doSearch() { - this.$emit("query-ready", this.pageForm) - } - }, - created() { - this.initData() - } -} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageTable.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageTable.js deleted file mode 100644 index 425ec17..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageTable.js +++ /dev/null @@ -1,339 +0,0 @@ - -const MEMBER_MANAGE_TABLE = { - template: /*language=HTML*/ ` -
- - - 会员: - - 全部 - 会员 - 非会员 - - - - - - - - - - 人员异动: - - 全部 - 异动 - 未异动 - - - - - - - 导出会员名单 - - - 导出会员福利号码不一致名单 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- `, - mixins: [initTableMixins], - components: { - "member-change-info": MEMBER_CHANGE_INFO - }, - data() { - return { - changeTypeData: [], - tableColumns: [ - { prop: "loginname", label: "工号", sortable: true }, - { prop: "username", label: "姓名", sortable: true }, - { prop: "sex", label: "性别", sortable: true, width: "100px" }, - { prop: "birthday", label: "出生年月", sortable: true }, - { prop: "userState", label: "在职状态", sortable: true }, - { prop: "preparedBy", label: "聘用方式", sortable: true }, - { prop: "postDoctoralJoinDate", label: "进站时间", sortable: true }, - { prop: "personType", label: "人员类型", sortable: true }, - { prop: "unionName", label: "所属工会", sortable: true }, - { prop: "unitName", label: "所属单位", sortable: true } - ], - changeInfoVisible: false, - userId: "", - pageForm: { - isMember: 1, - changed: 2 - }, - changeWelfareMobileVisible: false, - welfareFormData: {} - } - }, - methods: { - dropdownCommand(command) { - const { type, data } = command - if (type === "view") { - this.openView(data.id) - } else if (type === "change") { - this.openChange(data) - } else if (type === "setModelWorker") { - this.setModelWorker(data.id) - } else if (type === "cancelModelWorker") { - this.cancelModelWorker(data.id) - } else if (type === "changeWelfareMobile") { - this.welfareFormData = { - id: data.id, - username: data.username, - loginname: data.loginname, - mobile: data.mobile, - welfareMobile: data.welfareMobile - } - this.changeWelfareMobileVisible = true - } - }, - - changeWelfareMobile() { - this.$confirm("确定要将" + this.welfareFormData.username + "的福利号码修改为:" + this.welfareFormData.welfareMobile + "吗?", "提示", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }) - .then(() => { - this.$axios.post("/platform/member/branchUnion/manage/list/changeWelfareMobile", this.welfareFormData).then((res) => { - if (res.code === 0) { - this.$message.success(res.msg) - this.$emit("refresh-table") - this.changeWelfareMobileVisible = false - } - }) - }) - }, - - setModelWorker(userId) { - this.$confirm("确定要将此教工设置为劳模吗?", "提示", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }) - .then(() => { - this.$axios.post("/platform/member/modelWorker/manage/setModelWorker", { userId: userId }).then((res) => { - if (res.code === 0) { - this.$message.success(res.msg) - this.$emit("refresh-table") - } else { - this.$message.error(res.msg) - } - }) - }) - }, - cancelModelWorker(userId) { - this.$confirm("确定要取消此教工的劳模身份码?", "提示", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" - }) - .then(() => { - this.$axios.post("/platform/member/modelWorker/manage/cancelModelWorker", { userIds: JSON.stringify([userId]) }) - .then((res) => { - if (res.code === 0) { - this.$message.success(res.msg) - this.$emit("refresh-table") - } else { - this.$message.error(res.msg) - } - }) - }) - }, - openChange(data) { - this.$emit("change-member", { id: data.id, username: data.username }) - }, - openView(id) { - this.$emit("view-member", id) - }, - addMember() { - this.$emit("add-member") - }, - openUserChangeInfo(row) { - this.changeInfoVisible = true - this.$nextTick(() => { - this.$refs.memberChangeInfoRef.onOpen(row.id, null) - }) - }, - getChangeTypes(changeTypes) { - if (changeTypes) { - const c = JSON.parse(changeTypes) - return c - .map((v) => { - return this.changeTypeData.find((item) => item.code === v).name - }) - .join(",") - } - return null - }, - pageData() { - this.$axios.post(loc() + "/pageData", this.pageForm).then((res) => { - if (res.code === 0) { - this.tableData = res.data.list - this.pageForm.totalCount = res.data.totalCount - this.$emit("refresh", this.pageForm) - } - }) - }, - exportExcel() { - const pageForm = clone(this.pageForm) - this.$downLoad(loc() + "/doExport", pageForm) - }, - exportNotEqPhoneExcel(){ - const pageForm = clone(this.pageForm) - this.$downLoad(loc() + "/doExportNotEqPhone", pageForm) - } - }, - created() { - this.$businessTool.getAllDictOptions("MEMBER_CHANGE_TYPE").then((res) => { - this.changeTypeData = res - }) - } -} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/record/memberRecord.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/record/memberRecord.js deleted file mode 100644 index 35f4498..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/record/memberRecord.js +++ /dev/null @@ -1,143 +0,0 @@ -const MEMBER_RECORD = { - template: ` -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- `, - mixins: [initTableMixins], - data() { - return { - userId: "", - recordId: "", - tableColumns: [ - { prop: "loginname", label: "工号" }, - { prop: "username", label: "姓名" }, - { prop: "sex", label: "性别", sortable: true, width: "100px" }, - { prop: "birthday", label: "出生年月", sortable: true }, - { prop: "personType", label: "人员类型", sortable: true }, - { prop: "userState", label: "在职状态", sortable: true }, - { prop: "unionName", label: "所属工会", sortable: true }, - { prop: "unitName", label: "所属单位", sortable: true }, - { prop: "remark", label: "变更说明", sortable: true } - ], - unions: [], - units: [], - changeTypeData: [], - changeInfoVisible: false, - changeTime: "" - } - }, - methods: { - openUserChangeInfo(row) { - this.$emit("open-change-info", row) - }, - getChangeTypes(changeTypes) { - if (changeTypes) { - const c = JSON.parse(changeTypes) - if (!c || c.length === 0 || !this.changeTypeData || this.changeTypeData.length === 0) return null - return c - .map((v) => { - return this.changeTypeData.find((item) => item.code === v).name - }) - .join(",") - } - return null - }, - openView(userId) { - this.$emit("open-view", userId) - }, - async initData() { - if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) { - this.unions = await this.$businessTool.listUnion(this.pageForm.unionId) - this.units = await this.$businessTool.listUnit() - } else { - this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id) - this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id) - } - this.pageData() - }, - async flushUnits() { - this.$set(this.pageForm, "unitId", null) - this.units = [] - if (this.pageForm.unionId) { - this.$businessTool.listUnit(this.pageForm.unionId).then((data) => { - this.units = data - }) - } - } - }, - created() { - this.pageData() - this.$businessTool.getAllDictOptions("MEMBER_CHANGE_TYPE").then((res) => { - this.changeTypeData = res - }) - } -} diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/modelworker/manage/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/modelworker/manage/index.html deleted file mode 100644 index b0a0929..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/modelworker/manage/index.html +++ /dev/null @@ -1,236 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 批量取消劳模 - - - - 导出 - - - - - - - - - - - - - - - - - - - - - -
- - diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/audit/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/school/audit/index.html deleted file mode 100644 index 945f7ae..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/school/audit/index.html +++ /dev/null @@ -1,104 +0,0 @@ - - -
- - - - - - - -
- - - diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/manage/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/school/manage/index.html deleted file mode 100644 index 0dce717..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/school/manage/index.html +++ /dev/null @@ -1,93 +0,0 @@ - -
- - - - - - - - - - - -
- - - diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/record/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/school/record/index.html deleted file mode 100644 index f1a09f2..0000000 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/school/record/index.html +++ /dev/null @@ -1,51 +0,0 @@ - -
- - - - - - - -
- - diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/queryForm.js b/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/queryForm.js index ca47a57..e452a5b 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/queryForm.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/queryForm.js @@ -1,7 +1,240 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = { template: /*language=HTML*/ ` - + + 年  度: + + + + + + 本年 + + + + 姓名/工号: + + + + + + + + + + + + 所属工会: + + + + + + 所属单位: + + + + + + + + + + 性别: + + + {{ item.name }} + + + + + + 人员类型: + + + + + 人事编制: + + + + + 在职状态: + + + + + 出生日期: + + + + + + + + + + 入会日期: + + + + + + + + + + 离会日期: + + + + + + + + + + 年龄范围: + + + + + + + + 当前范围:{{ pageForm.age }} + + + + + + + 模糊查询: + + + + + + + + 重置 + + 搜索 + + + + @@ -187,7 +420,6 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = { personTypeOptions: [], preparedByOptions: [], userStateOptions: [], - memberStatusOptions: [], unions: [], units: [], sexTypeOptions: [ @@ -224,6 +456,15 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = { } this.pageForm.endDate = this.pageForm.endDate.toLocaleDateString().replaceAll("/", "-") }, + determineStartDate() { + if (this.pageForm.endDate) { + if (Date.parse(this.pageForm.startDate) > Date.parse(this.pageForm.endDate)) { + this.pageForm.startDate = "" + this.$notify.warning("开始时间不能大于结束时间") + } + } + this.pageForm.startDate = this.pageForm.startDate.toLocaleDateString().replaceAll("/", "-") + }, tagClick(key, val) { let idx = this.pageForm[key].indexOf(val) if (idx !== -1) { @@ -308,18 +549,15 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = { this.unions = await this.$businessTool.listUnion(this.$store.state.user.union.id) this.units = await this.$businessTool.listUnit(this.$store.state.user.union.id) } - this.$businessTool.getDictOptions("USER_STAFF_TYPE").then((data) => { + this.$businessTool.getDictOptions("USER_PERSON_TYPE").then((data) => { this.personTypeOptions = data }) - this.$businessTool.getDictOptions("USER_EMPLOYMENT_TYPE").then((data) => { + this.$businessTool.getDictOptions("USER_PREPARED_BY_TYPE").then((data) => { this.preparedByOptions = data }) this.$businessTool.getDictOptions("USER_STATE").then((data) => { this.userStateOptions = data }) - this.$businessTool.getAllDictOptions("MEMBER_CHANGE_TYPE").then((data) => { - this.memberStatusOptions = data - }) }, flushUnits() { this.$set(this.pageForm, "unitId", null) @@ -342,5 +580,54 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = { created() { this.initData() this.doSearch() - } + }, + style: /*language=CSS*/ ` + .reverseCheckBox { + margin: 0 10px 0 0 !important; + } + + .query-row { + min-height: 60px; + display: flex; + justify-content: center; + align-items: center; + box-sizing: border-box; + } + + .query-row:not(:last-child) { + border-bottom: 1px dashed rgb(230, 230, 230); + } + + .query-row-title { + width: 120px; + } + + .query-row > .query-title { + width: 100px; + max-width: 100px; + min-width: 100px; + overflow: hidden; + } + + .query-row > .query-content { + min-width: 200px; + overflow: hidden; + } + + .query-row > .query-content > .el-tag { + margin-bottom: 5px; + margin-top: 5px; + } + + .query-row-tag { + padding: 10px 0; + } + + .query-row-content-tag { + display: flex; + flex-wrap: wrap; /* 标签自动换行 */ + align-items: center; + gap: 4px 6px; /* 横纵向间距 */ + } + ` } diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/branch/verification/check/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/verification/branchunioncheck/index.html similarity index 100% rename from src/main/resources/views/platform/zhgh/staffmanage/member/branch/verification/check/index.html rename to src/main/resources/views/platform/zhgh/staffmanage/member/verification/branchunioncheck/index.html diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/index.html similarity index 100% rename from src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/index.html rename to src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/index.html diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationProjectAdd.js b/src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/verificationProjectAdd.js similarity index 100% rename from src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationProjectAdd.js rename to src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/verificationProjectAdd.js diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationQuery.js b/src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/verificationQuery.js similarity index 100% rename from src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationQuery.js rename to src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/verificationQuery.js diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationSetUserList.js b/src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/verificationSetUserList.js similarity index 100% rename from src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationSetUserList.js rename to src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/verificationSetUserList.js diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationShowSelectionUsers.js b/src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/verificationShowSelectionUsers.js similarity index 100% rename from src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationShowSelectionUsers.js rename to src/main/resources/views/platform/zhgh/staffmanage/member/verification/manage/verificationShowSelectionUsers.js diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/verification/schoolunioncheck/index.html similarity index 100% rename from src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/index.html rename to src/main/resources/views/platform/zhgh/staffmanage/member/verification/schoolunioncheck/index.html diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/schoolViewAndHandle.js b/src/main/resources/views/platform/zhgh/staffmanage/member/verification/schoolunioncheck/schoolViewAndHandle.js similarity index 100% rename from src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/schoolViewAndHandle.js rename to src/main/resources/views/platform/zhgh/staffmanage/member/verification/schoolunioncheck/schoolViewAndHandle.js diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/viewChangeTypeUser.js b/src/main/resources/views/platform/zhgh/staffmanage/member/verification/schoolunioncheck/viewChangeTypeUser.js similarity index 100% rename from src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/viewChangeTypeUser.js rename to src/main/resources/views/platform/zhgh/staffmanage/member/verification/schoolunioncheck/viewChangeTypeUser.js