1、立项原因(旨在解决什么产品问题)
当前大量中小企业的 HR 管理仍停留在"Excel 表格 + 纸质单据 + 即时通讯传签"阶段:员工档案分散在各部门电脑里,无法统一检索与共享;考勤打卡、请假加班依赖线下审批,流程节点不透明、周期长;薪酬核算靠人工汇总,易出错且缺乏留痕;身份证号、薪资等敏感信息明文流转,泄露风险高。本项目立项旨在打造一套一体化、权限精细化、流程可配置的企业级 HRMS,将"人事档案—组织架构—考勤薪酬—审批流程"整合为数字化闭环,重点解决数据孤岛、审批低效、敏感数据不安全、统计口径不一致四大产品痛点。
2、行业场景(业务背景)
面向 200~2000 人规模的中型企业人力资源数字化场景,覆盖员工全生命周期(入职、转正、调动、离职、交接)与 HR 核心职能(组织、考勤、薪酬)。系统按"管理员—HR—部门主管—员工"多角色协同设计,配套严格的 RBAC 权限与字段级数据脱敏,适配人事、财务、行政等多部门共用一套数据底座的真实业务形态。
1、具体功能模块
系统管理:JWT 双 Token 登录、用户/角色/权限(RBAC)、字段级权限、数据权限、操作/登录日志、密码策略;
组织管理:部门树(闭包表)、岗位管理、部门人数统计、组织变更审计;
员工管理:员工档案(个人信息/工作信息/薪资信息)、工号自动生成、敏感字段加密存储、变更审计;
审批中心:流程配置、审批实例与任务、同意/驳回/转交/委托/撤销、超时提醒、Outbox 事件;
考勤管理:考勤组与工作日配置、打卡、请假(年假/调休余额联动)、加班、补卡、月度统计;
人事流程:入职、转正(到期自动提醒)、离职(含交接)、调动(含历史追溯);
薪酬管理:薪资配置、月度批次、薪资明细、个税累计、结算进度、调薪记录、审核、工资单导出、成本快照;
数据看板:人事/考勤/薪酬核心指标统计;个人自助:个人档案、我的考勤、我的薪资、账号安全。
2、主要功能描述
系统以统一权限中台为底座:Spring Security + JWT 认证控制接口访问,RBAC 控制菜单与操作权限;独创字段级数据权限,薪资、证件号等敏感字段按角色自动进行"原值/掩码/隐藏"三级输出;审批引擎支持流程可配置、可委托转交,审批结果通过 RocketMQ 异步通知考勤、薪酬等模块联动生效;考勤与薪酬模块通过内部 API 与消息队列解耦,支持月度自动统计核算、Excel/PDF 导出,全链路操作留痕、可审计、可追溯。
1、"我"负责的具体任务
我负责员工管理和部门管理两个模块的完整设计与开发,具体包括:
员工管理:员工档案全流程(新增、编辑、查询、状态变更),个人信息/工作信息/薪资信息分表存储;员工工号按年份前缀自动生成;薪资、证件号等敏感字段 AES-256 加密入库;员工创建、状态变更、字段变更通过 RocketMQ 广播给考勤、薪酬等下游模块联动;基于 AOP 切面的员工变更审计留痕;
部门管理:部门树形结构管理(闭包表存储,支持无限层级)、岗位管理与岗位编号生成、部门与员工归属绑定、部门人数实时统计与多级缓存、部门及岗位变更审计日志、按部门的数据范围控制。
2、技术栈、架构与实现亮点难点
技术栈:Spring Boot 2.7.6 + Java 8、MyBatis + PageHelper、MySQL、Redis + Redisson、RocketMQ、Spring Security + JWT、Caffeine、AOP、Lombok;
架构:沿用系统统一的"controller/service/mapper"分层与按业务域模块化设计;员工与部门模块之间、以及与考勤、薪酬等下游模块之间,通过内部 API Client 与 RocketMQ 消息解耦;
亮点难点:① 敏感字段加密与脱敏——薪资、证件号 AES-256 加密入库,结合字段级权限按角色输出"原值/掩码/隐藏";② 组织树高性能存储——闭包表方案,任意层级查询、子树移动仅更新关联表,避免递归查询性能瓶颈;③ 变更可追溯——AOP 切面自动生成员工/部门/岗位变更日志;④ 数据范围控制——注解 + MyBatis 拦截器自动拼接部门范围 SQL,HR 只能看本部门及下级员工;⑤ 数据一致性——Outbox 模式本地事务落库后投递 RocketMQ,消息不丢失不重复;⑥ 性能优化——部门人数热点数据 Caffeine
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论