人力资源管理系统项目介绍文档
一、项目概述
人事系统是一个基于Spring Boot和Vue.js开发的前后端分离人力资源管理系统。项目旨在通过现代化的Web开发技术实现企业级人力资源管理的核心功能,涵盖员工管理、薪资计算、权限控制、在线协作等模块。项目设计充分考虑了企业级应用的需求,集成了Redis缓存、RabbitMQ消息队列、WebSocket实时通信等技术,确保系统的高性能、可扩展性和安全性。
二、技术栈选型
后端技术栈
-
Spring Boot
- 作为核心框架,提供快速开发和自动配置功能,简化企业级应用开发流程。
- 使用Spring Boot Actuator监控系统运行状态。
- 支持多模块拆分(如
mailserver
和vhrserver
),提高代码可维护性。
-
Spring Security
- 实现基于角色的访问控制(RBAC),支持动态权限加载。
- 集成JWT(JSON Web Token)进行用户认证和会话管理。
- 提供密码加密(BCrypt算法)和盐值处理,保障用户数据安全。
-
MyBatis + MyBatis-Plus
- 作为ORM框架,简化数据库操作。
- 使用MyBatis-Plus的代码生成器快速创建CRUD接口。
- 通过XML映射文件实现复杂查询逻辑。
-
MySQL
- 存储系统核心数据(员工信息、薪资数据、权限配置等)。
- 配合Flyway进行数据库版本控制,实现自动化迁移。
-
Redis
- 缓存用户会话信息,实现多端登录自动踢下线功能。
- 存储高频访问数据(如部门、职位信息),提升查询效率。
- 使用Redis的发布/订阅机制实现系统通知的实时推送。
-
RabbitMQ
- 异步处理邮件发送、薪资计算等耗时任务,降低系统响应延迟。
- 实现消息队列削峰填谷,保障系统稳定性。
-
WebSocket
- 支持HR在线聊天功能,实现实时消息推送。
- 结合Vue.js的WebSocket库,优化用户交互体验。
-
Spring Cache
- 缓存常用业务数据(如角色权限列表),减少数据库查询压力。
前端技术栈
-
Vue.js
- 构建响应式用户界面,支持组件化开发。
- 使用Vue Router实现前端路由管理。
- 通过Vuex进行全局状态管理(如用户登录状态、菜单权限)。
-
Element UI
- 提供丰富的UI组件(表格、表单、弹窗等),加速开发流程。
- 基于Element UI实现数据可视化和复杂业务交互。
-
Axios
- 封装HTTP请求,支持请求拦截、响应处理和错误捕获。
- 配置请求重试机制,提升系统容错能力。
-
WebSocket
- 与后端WebSocket服务实时通信,实现聊天消息和系统通知的即时更新。
-
Vue CLI 4
- 管理项目构建、打包和部署,支持生产环境优化。
-
Less
- 扩展CSS预处理器,实现样式模块化和主题动态切换。
三、核心功能模块
1. 用户权限管理
- 动态角色分配
系统管理员可通过可视化界面为用户分配角色(如部门经理、人事专员),支持批量操作和模糊搜索。 - 资源粒度控制
基于RBAC模型,实现菜单、按钮级别的权限控制。角色可访问的资源包括:- 员工资料管理(增删改查)
- 薪资账套设置
- 系统日志查看
- 数据库备份/恢复
- 多端登录防护
使用Redis存储用户会话,检测到重复登录时自动踢除旧会话。
2. 员工全生命周期管理
- 基础信息管理
- 支持员工基本资料(姓名、联系方式、部门、职位等)的录入、编辑和删除。
- 提供高级搜索功能,支持按部门、入职时间、薪资范围等条件过滤数据。
- 数据导入/导出
- 通过Excel模板批量导入员工数据,支持数据格式校验和错误提示。
- 导出员工列表为Excel文件,方便离线分析。
- 电子合同管理
(预留扩展接口,可集成第三方电子签约服务)
3. 薪资管理系统
- 工资账套配置
定义薪资计算规则(如基本工资、绩效系数、社保扣除比例),支持多账套并行。 - 员工账套关联
根据员工职位自动匹配薪资账套,支持手动调整。