项目地址:https://gitee.com/eric-ni/openhrms

前言

在企业数字化转型的大潮中,一套高效、灵活的人力资源管理系统(HRMS)对于企业管理至关重要。今天为大家分享一款基于 Spring Boot + Vue 的前后端分离架构的开源 HRMS 系统,希望能帮助到有需要的团队和企业。

项目亮点

🏗️ 技术架构先进

系统采用当前主流的前后端分离架构:

后端技术栈:

  • Spring Boot 2.5.8 作为核心框架
  • Spring Security + JWT 实现安全认证
  • MyBatis-Plus 3.5.3.1 作为 ORM 框架
  • Redis 缓存提升系统性能
  • Druid 数据库连接池监控
  • Knife4j API 文档支持
  • WebSocket 实时通信
  • Hutool Java 工具库
  • RapidOCR OCR 识别
  • EasyExcel Excel 处理

前端技术栈:

  • Vue 2.6.14 + Vuex 状态管理
  • Vue Router 路由管理
  • Ant Design Vue 1.7.8 UI 组件库
  • Axios HTTP 客户端
  • ECharts 5.4.0 数据可视化
  • VXE Table 专业表格组件
  • Univer 在线表格
  • Mock.js 模拟数据

🔐 完善的权限管理体系

系统采用 RBAC(Role-Based Access Control) 权限模型,提供:

  • 功能权限:细粒度到菜单、按钮级别的访问控制
  • 数据权限:支持全部、自定义、本级、仅本人等多种数据范围
  • 角色管理:灵活的角色配置,支持多角色分配
  • JWT Token 认证:安全的身份验证机制
  • 图形验证码:防止暴力破解
  • 密码加密存储:保障用户信息安全

📊 核心功能模块

1️⃣ 系统管理
  • 用户管理:用户增删改查、重置密码、导入导出
  • 角色管理:角色权限配置、数据权限设置
  • 菜单管理:动态路由配置、按钮权限控制
  • 部门管理:组织架构树形管理
  • 岗位管理:岗位信息维护
2️⃣ 员工全生命周期管理
  • 员工档案:员工信息管理、入职转正
  • 合同管理:劳动合同签订、续签、解除
  • 档案管理:员工学历、证书、培训记录
  • 异动管理:调岗、晋升、离职管理
  • 考勤统计:员工考勤汇总、异常统计
3️⃣ 智能考勤管理
  • 打卡管理:打卡记录查询、补卡申请
  • 请假管理:请假申请、审批、统计
  • 加班管理:加班申请、审核
  • 公出管理:外出登记管理
  • 班次管理:班次设置、排班管理
  • 假期管理:法定节假日配置
  • 考勤分析:日报、月报统计分析
4️⃣ 薪资管理
  • 薪资套账:薪资结构设计
  • 薪资计算:自动计算员工薪资
  • 薪资发放:工资条生成与发放
  • 个税计算:个人所得税计算
  • 社保公积金:五险一金管理
5️⃣ 组织架构
  • 机构管理:单位、部门多级管理
  • 编制管理:部门编制设置
  • 职级体系:职位级别管理
6️⃣ 运维监控
  • 服务监控:系统资源监控(CPU、内存、磁盘)
  • 部署管理:应用部署、启停服务
  • 日志管理:系统日志、操作日志查询
  • SQL 监控:SQL 执行分析

🎨 用户体验友好

  • 响应式布局,适配多种屏幕尺寸
  • 丰富的数据图表展示(ECharts)
  • 支持 Excel、PDF 等多种格式导出
  • OCR 证件识别集成
  • 操作日志完整记录
  • 专业的表格组件(VXE Table)
  • 在线表格编辑(Univer)

项目结构

hrms-open/
├── hrms/                          # 后端项目
│   ├── common/                    # 公共模块
│   │   └── src/main/java/com/rizeen/
│   │       ├── annotation/        # 自定义注解
│   │       ├── aspect/            # AOP 切面
│   │       ├── base/              # 基础类
│   │       ├── config/            # 配置类
│   │       ├── exception/         # 异常处理
│   │       └── utils/             # 工具类
│   ├── logging/                   # 日志模块
│   │   └── src/main/java/com/rizeen/
│   │       ├── domain/            # 日志实体
│   │       ├── mapper/            # 数据访问层
│   │       ├── service/           # 业务逻辑层
│   │       └── rest/              # 控制器
│   ├── system/                    # 核心业务模块
│   │   └── src/main/java/com/rizeen/
│   │       ├── modules/
│   │       │   ├── system/        # 系统管理 (用户、角色、部门、菜单)
│   │       │   ├── security/      # 安全认证 (JWT)
│   │       │   ├── mnt/           # 运维管理 (部署、服务监控)
│   │       │   └── attend/        # 考勤管理
│   │       └── HrtApplication.java # 启动类
│   └── pom.xml                    # Maven 配置
└── hrms-ui/                       # 前端项目
    ├── src/
    │   ├── api/                   # API 接口
    │   ├── components/            # 组件库
    │   ├── config/                # 配置
    │   ├── core/                  # 核心功能
    │   ├── layouts/               # 布局
    │   ├── store/                 # Vuex 状态管理
    │   ├── utils/                 # 工具函数
    │   └── views/                 # 页面视图
    ├── package.json               # 依赖配置
    └── vue.config.js              # Vue 配置

快速开始

环境要求

  • JDK = 1.8
  • MySQL >= 5.7
  • Node.js >= 14.x
  • Maven >= 3.5
  • Redis

后端部署

1. 克隆项目
git clone https://github.com/your-repo/hrms-open.git
cd hrms-open/hrms
2. 配置数据库

编辑 application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/hrms?useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: your_password
  redis:
    host: localhost
    port: 6379
    password: 
3. 导入数据库脚本

执行 sql/hrms.sql 创建数据库和表结构

4. Maven 构建并启动

运行 HrtApplication.java 启动类

前端部署

1. 进入前端目录
cd hrms-ui
2. 安装依赖
npm install --registry=https://registry.npm.taobao.org
3. 启动开发服务器
npm run dev

浏览器访问:http://localhost:9000

默认账号

  • 用户名:admin
  • 密码:123456

⚠️ 首次使用后请及时修改密码!

系统界面展示

系统提供了美观实用的用户界面:

  • 登录页面:带图形验证码的安全登录
    在这里插入图片描述

  • 数据可视化首页:关键指标一目了然
    在这里插入图片描述

  • 员工管理列表:完整的员工信息管理

img_2

  • 考勤统计分析:多维度考勤数据分析

img_7

  • 薪资核算界面:自动化薪资计算

img_6

  • 用户权限管理:灵活的 RBAC 权限配置

img_9

系统特色

权限管理

采用 RBAC(Role-Based Access Control)权限模型:

  • 功能权限: 控制菜单、按钮级别的访问权限
  • 数据权限: 支持全部、自定义、本级、仅本人等数据范围
  • 角色管理: 灵活的角色配置,支持多角色

模块化设计

  • common 模块:提供通用工具类、注解、切面、异常处理等
  • logging 模块:独立的日志管理模块
  • system 模块:核心业务逻辑,包含多个子模块

技术亮点

  • AOP 切面编程:统一处理日志、权限等横切关注点
  • MyBatis-Plus:强大的 ORM 框架,简化数据库操作
  • Druid 连接池:高性能数据库连接池,自带监控
  • Knife4j:美观的 API 文档界面
  • WebSocket:实时消息推送

开发扩展指南

新增模块流程

后端开发流程
  1. 创建数据库表
  2. system/modules 下创建对应模块目录
  3. 生成或编写 Entity、Mapper、Service、Controller
  4. 配置菜单和权限
前端开发流程
  1. src/views 下创建页面组件
  2. src/api 下创建 API 接口文件
  3. 配置路由(可在数据库菜单表中配置)

常见问题解决

Q1: 启动时报数据库连接失败?

解决方案:检查 MySQL 服务是否启动,确认数据库配置信息是否正确。

Q2: 前端出现跨域问题?

解决方案:开发环境已配置代理,生产环境需在后台配置 CORS。

Q3: Redis 连接失败?

解决方案:确保 Redis 服务已启动,检查配置文件中 Redis 连接信息。

未来规划

  • 优化移动端适配
  • 增加更多数据分析报表
  • 集成工作流引擎
  • 支持微服务架构升级
  • 完善单元测试覆盖
  • 增加更多行业最佳实践模板

开源协议

本项目采用 Apache License 2.0 开源协议,允许商业使用、修改和分发。

贡献方式

欢迎社区开发者参与贡献!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

致谢

感谢以下优秀开源项目的支持:


开发团队

  • 作者:yousowe
  • 邮箱:yousowe@163.com

联系方式

如有问题或建议,请添加微信联系:
Rizeen99


🌟 如果这个项目对你有帮助,请给一个 Star 支持!

欢迎各位开发者体验使用,提出宝贵意见和建议!让我们一起打造更好用的开源 HRMS 系统!

项目地址:https://gitee.com/eric-ni/openhrms

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐