# openhrms
**Repository Path**: ningnannping/openhrms
## Basic Information
- **Project Name**: openhrms
- **Description**: 企业级人力资源管理系统 - 基于 Spring Boot + Vue, 简称:人力资源管理系统、人力资源系统、人才管理系统、人力资本系统、人才系统、人事系统、人事软件、hrms、ehr、hcm、hrsoft、erp
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 4
- **Created**: 2026-05-16
- **Last Updated**: 2026-05-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# HRMS 开源版 - 企业级人力资源管理系统
---
## 📖 项目简介
HRMS 是一款开源的企业级人力资源管理系统,采用前后端分离架构,提供完整的 HR 管理解决方案。系统包含组织架构、考勤管理、薪资管理、系统监控等核心功能模块,支持灵活的权限管理和数据权限控制。
### ✨ 主要特性
- **前后端分离**: 后端 Spring Boot + 前端 Vue.js
- **权限管理**: 基于 RBAC 的权限控制模型,支持数据权限
- **多模块架构**: 模块化设计,包含 common、logging、system 等核心模块
- **考勤管理**: 支持打卡、请假、加班、公出等多种考勤场景
- **组织架构**: 多层级组织架构管理,支持树形结构展示
- **系统监控**: 实时监控系统运行状态和服务部署
- **日志管理**: 完整的操作日志和系统日志记录
- **OCR 识别**: 集成 OCR 技术,支持证件识别等功能
- **报表导出**: 支持 Excel、PDF 等多种格式导出
---
## 🛠️ 技术栈
### 后端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| Spring Boot | 2.5.8 | 核心框架 |
| Spring Security | - | 安全认证 |
| MyBatis-Plus | 3.5.3.1 | ORM 框架 |
| Redis | - | 缓存 |
| MySQL | - | 数据库 |
| Druid | 1.2.8 | 数据库连接池 |
| Knife4j | 3.0.3 | API 文档 |
| JWT | 0.11.5 | Token 认证 |
| Hutool | 5.7.16 | Java 工具库 |
| RapidOCR | 0.0.7 | OCR 识别 |
| EasyExcel | 3.1.1 | Excel 处理 |
| WebSocket | - | 实时通信 |
### 前端技术
| 技术 | 版本 | 说明 |
|------|------|------|
| Vue | 2.6.14 | 渐进式 JavaScript 框架 |
| Vue Router | 3.5.3 | 路由管理 |
| Vuex | 3.6.2 | 状态管理 |
| Ant Design Vue | 1.7.8 | UI 组件库 |
| Axios | 0.26.1 | HTTP 客户端 |
| ECharts | 5.4.0 | 图表库 |
| VXE Table | 3.6.13 | 表格组件 |
| Univer | 0.15.3 | 在线表格 |
| Mock.js | 1.0.8 | 模拟数据 |
---
## 📦 项目结构
```
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
### 后端部署
#### 1. 克隆项目
```bash
git clone https://github.com/your-repo/hrms-open.git
cd hrms-open/hrms
```
#### 2. 修改数据库配置
编辑 `application.yml` 配置文件:
```yaml
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 构建
#### 5. 启动应用
运行hrms/system/目录下的 `HrtApplication.java` 主类。
### 前端部署
#### 1. 进入前端目录
```bash
cd hrms-ui
```
#### 2. 安装依赖
```bash
npm install
# 或使用淘宝镜像
npm install --registry=https://registry.npm.taobao.org
```
#### 3. 启动开发服务器
```bash
npm run dev
```
浏览器访问:http://localhost:9000
## 🔐 默认账号
- 用户名:`admin`
- 密码:`123456`
**⚠️ 首次使用后请及时修改密码!**
---
## 📋 核心功能模块
### 1. 系统管理
- 用户管理:用户增删改查、重置密码、导入导出
- 角色管理:角色权限配置、数据权限设置
- 菜单管理:动态路由配置、按钮权限控制
- 部门管理:组织架构树形管理
- 岗位管理:岗位信息维护
### 2. 员工管理
- 员工档案:员工信息管理、入职转正
- 合同管理:劳动合同签订、续签、解除
- 档案管理:员工学历、证书、培训记录
- 异动管理:调岗、晋升、离职管理
- 考勤统计:员工考勤汇总、异常统计
### 3. 考勤管理
- 打卡管理:打卡记录查询、补卡申请
- 请假管理:请假申请、审批、统计
- 加班管理:加班申请、审核
- 公出管理:外出登记管理
- 班次管理:班次设置、排班管理
- 假期管理:法定节假日配置
- 考勤分析:日报、月报统计分析
### 4. 薪资管理
- 薪资套账:薪资结构设计
- 薪资计算:自动计算员工薪资
- 薪资发放:工资条生成与发放
- 个税计算:个人所得税计算
- 社保公积金:五险一金管理
### 4. 组织架构
- 机构管理:单位、部门多级管理
- 编制管理:部门编制设置
- 职级体系:职位级别管理
### 5. 运维监控
- 服务监控:系统资源监控(CPU、内存、磁盘)
- 部署管理:应用部署、启停服务
- 日志管理:系统日志、操作日志查询
- SQL 监控:SQL 执行分析
### 6. 安全认证
- JWT Token 认证
- 图形验证码
- 密码加密存储
- 登录日志
- 数据权限隔离
---
## 🎯 系统特色
### 权限管理
采用 RBAC(Role-Based Access Control)权限模型:
- **功能权限**: 控制菜单、按钮级别的访问权限
- **数据权限**: 支持全部、自定义、本级、仅本人等数据范围
- **角色管理**: 灵活的角色配置,支持多角色
---
## 📸 系统截图展示
> 用户登录

> 首页

> 员工管理

> 图形分析

> 员工历史时点

> 考勤分析

> 工资核算

> 用户管理

---
## 🔧 开发指南
### 新增模块
#### 后端开发流程
1. 创建数据库表
2. 在 `system/modules` 下创建对应模块目录
3. 生成或编写 Entity、Mapper、Service、Controller
4. 配置菜单和权限
#### 前端开发流程
1. 在 `src/views` 下创建页面组件
2. 在 `src/api` 下创建 API 接口文件
3. 配置路由(可在数据库菜单表中配置)
## ❓ 常见问题
### 1. 启动时报数据库连接失败
检查 MySQL 是否启动,确认数据库配置是否正确。
### 2. 前端跨域问题
开发环境已配置代理,生产环境需在后台配置 CORS。
### 3. Redis 连接失败
确保 Redis 服务已启动,检查配置文件中 Redis 连接信息。
---
## 📄 开源协议
Apache License 2.0
---
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
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
---
## 📞 联系方式
如有问题或建议,请添加微信联系:

---
## 🙏 致谢
感谢以下开源项目:
- [Spring Boot](https://spring.io/projects/spring-boot)
- [Vue.js](https://vuejs.org/)
- [Ant Design Vue](https://antdv.com/)
- [MyBatis-Plus](https://baomidou.com/)
- [RapidOCR](https://github.com/RapidAI/RapidOCR)
---
如果这个项目对你有帮助,请给一个 ⭐️ Star 支持!