Skip to content

xuzhili835/hrms-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

HRMS - 人力资源管理系统

License Java Vue Spring Boot

一个基于 Spring Boot + Vue 3 的现代化人力资源管理系统,提供员工管理、考勤管理、薪资管理、公告管理等功能。

进入Github文件中可以看到以下文件

hrms-back //前端项目文件

hrms-frontend //后端项目文件

.gitignore

hrms-database-init

LICENSE

README 40663045800e32a28f95291ac13b53d0

🚀 快速开始

环境要求

  • 后端

    • Java 17+
    • MySQL 8.0+
    • Maven 3.6+
  • 前端

    • Node.js 18+
    • npm 或 yarn

安装步骤

1. 数据库初始化

创建数据库:

📌 重要说明:项目提供两个数据库脚本

  • hrms-database-basic.sql - 推荐使用,包含基础表结构和少量测试数据
  • hrms-database-init.sql - 完整版本,包含大量测试数据(不建议新用户使用)

方式一:使用 MySQL 命令行

# 登录 MySQL
mysql -u root -p

# 创建数据库
CREATE DATABASE hrms_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 使用数据库
USE hrms_db;

# 导入数据库结构和基础数据(推荐)
SOURCE /path/to/hrms-database-basic.sql;

方式二:使用 Navicat 等图形化工具

  1. 打开 Navicat,连接到 MySQL 数据库
  2. 右键点击连接 → 新建数据库 → 数据库名:hrms_db,字符集:utf8mb4
  3. 双击进入 hrms_db 数据库
  4. 点击"查询" → "新建查询"
  5. 打开项目根目录下的 hrms-database-basic.sql 文件,复制内容到查询窗口
  6. 点击"运行"执行 SQL 脚本

方式三:使用其他 MySQL 客户端

  • MySQL Workbench: File → Open SQL Script → 选择 hrms-database-basic.sql → 执行
  • phpMyAdmin: 导入 → 选择文件 → 执行
  • DBeaver: 连接数据库 → 新建数据库 → 执行 SQL 脚本

2. 后端配置

cd hrms-back

# 修改数据库配置
# 编辑 src/main/resources/application.yml
# 更新以下配置:
# - spring.datasource.username (数据库用户名)
# - spring.datasource.password (数据库密码)
# - jwt.secret (建议使用256位随机字符串)

# 启动后端服务
./mvnw spring-boot:run

3. 前端配置

cd hrms-frontend

# 安装依赖
npm install

# 修改API地址
# 编辑 src/utils/request.js
# 更新 baseURL 为你的后端服务地址

# 启动开发服务器
npm run dev

🔑 默认测试账号

管理员账号:

  • 用户名:admin
  • 密码:123456
  • 权限:系统管理员,可访问所有功能

员工测试账号:

  • 用户名:E001 (工号),密码:123456,姓名:张三,技术部 Java开发工程师
  • 用户名:E002 (工号),密码:123456,姓名:李四,人事部 人事专员

重要提醒:以上是预设的测试账号,生产环境中请务必修改默认密码

📋 功能特性

管理员功能

  • 📊 仪表板 - 系统概览和统计数据
  • 👥 员工管理 - 员工信息的增删改查
  • 💰 薪资管理 - 薪资标准设置、薪资发放管理
  • 📝 请假审批 - 员工请假申请的审批流程
  • 📢 公告管理 - 系统公告的发布和管理
  • 📈 报表分析 - 各类数据报表和统计分析

员工功能

  • 📊 个人面板 - 个人信息和工作概览
  • 👤 个人资料 - 查看和修改个人信息
  • 📝 请假申请 - 提交和查看请假申请状态
  • 💰 薪资查询 - 查看个人薪资记录
  • 📢 公告查看 - 浏览系统公告

💡 重要业务逻辑说明

员工管理

  • 删除限制: 只有状态为"离职"的员工才能被删除,在职员工无法直接删除
  • 状态管理: 员工状态包括:在职、试用期、离职,需要先修改状态为"离职"才能执行删除操作
  • 工号唯一性: 员工工号(emp_id)在系统中必须唯一,不能重复
  • 密码策略: 员工初始密码为 123456,建议首次登录后立即修改

薪资管理

  • 状态流转: 薪资记录状态:草稿 → 已确认 → 已发放,状态只能单向流转
  • 月份唯一性: 每个员工每月只能有一条薪资记录,不允许重复
  • 计算逻辑: 总工资 = 基本工资 + 津贴 + 奖金 - 扣款
  • 删除限制: 已发放的薪资记录不能删除,只能查看

请假管理

  • 审批流程: 员工提交 → 待审批 → 已批准/已拒绝,已审批的申请不能修改
  • 日期验证: 请假开始日期不能早于当前日期,结束日期不能早于开始日期
  • 天数计算: 系统自动计算请假天数,包含开始和结束日期
  • 状态限制: 只有"待审批"状态的申请可以撤销或修改

公告管理

  • 状态控制: 公告状态包括"草稿"和"已发布",只有已发布的公告员工才能看到
  • 权限限制: 只有管理员可以创建、编辑和删除公告
  • 发布日期: 公告发布日期不能早于当前日期

权限控制

  • 角色分离: 管理员(ADMIN)和员工(EMPLOYEE)角色严格分离,功能权限不同
  • 登录验证: 使用JWT进行身份验证,token有效期24小时
  • 操作限制: 员工只能查看和修改自己的信息,不能访问其他员工数据

数据安全

  • 密码加密: 所有密码使用BCrypt加密存储,不可逆
  • 软删除: 某些关键数据采用软删除策略,不会真正从数据库中删除
  • 外键约束: 数据库设置了外键约束,确保数据完整性

⚠️ 已知问题

以下问题欢迎社区贡献者协助修复:

前端问题

  • 薪资管理模块: 管理员薪资管理页面中,员工姓名列可能显示为空或无法正确关联员工信息

🤝 贡献指南

我们欢迎并感谢所有形式的贡献!

贡献类型

  • 🐛 Bug 修复 - 修复上述已知问题或其他发现的问题
  • 新功能 - 添加新的功能模块
  • 📝 文档改进 - 完善文档和注释
  • 🎨 UI/UX 优化 - 改进用户界面和体验
  • 性能优化 - 提升系统性能
  • 🧹 代码重构 - 优化代码结构和质量

开发规范

  • 保持代码风格一致
  • 添加适当的注释和文档
  • 确保新功能有相应的测试
  • 遵循现有的项目结构

📁 项目结构

hrms/
├── hrms-back/                 # 后端 Spring Boot 项目
│   ├── src/main/java/com/a0615/
│   │   ├── controller/        # 控制器层
│   │   ├── service/          # 服务层
│   │   ├── entity/           # 实体类
│   │   ├── mapper/           # MyBatis 映射器
│   │   └── util/             # 工具类
│   └── src/main/resources/
│       └── application.yml    # 配置文件
├── hrms-frontend/            # 前端 Vue 3 项目
│   ├── src/
│   │   ├── views/            # 页面组件
│   │   ├── components/       # 公共组件
│   │   ├── api/              # API 接口
│   │   └── utils/            # 工具函数
│   └── package.json
└── hrms-database-init.sql    # 数据库初始化脚本

🛠️ 技术栈

后端

  • Spring Boot 3.x - 主框架
  • Spring Security - 安全认证
  • MyBatis-Plus - ORM 框架
  • MySQL - 数据库
  • JWT - 身份验证
  • Maven - 依赖管理

前端

  • Vue 3 - 前端框架
  • Element Plus - UI 组件库
  • Vue Router - 路由管理
  • Pinia - 状态管理
  • Axios - HTTP 客户端
  • ECharts - 图表库
  • Vite - 构建工具

📄 许可证

本项目采用 MIT 许可证。

⚠️ 特别提醒

数据库初始化选择

  • 新用户推荐: 使用 hrms-database-basic.sql,包含基础功能演示数据
  • 开发测试: 如需大量测试数据,可自行生成

敏感信息处理

在部署前,请务必检查并修改以下配置: 数据库连接信息(用户名、密码)

  • JWT 密钥配置
  • 前端 API 地址配置
  • 所有默认账号密码

后端配置文件 hrms-back/src/main/resources/application.yml:

spring:
  datasource:
    username: your_database_username  # 修改数据库用户名
    password: your_database_password  # 修改数据库密码

jwt:
  secret: your_jwt_secret_key_must_be_at_least_256_bits_long  # 修改JWT密钥

前端配置文件 hrms-frontend/src/utils/request.js:

const request = axios.create({
  baseURL: 'http://your-server:8080/api',  // 修改为实际的后端地址
  timeout: 30000,
  // ...
});

默认账号密码(生产环境必须修改):

  • 管理员:admin / 123456
  • 员工:E001, E002, E003 / 123456

生产部署建议

  1. 使用环境变量管理敏感配置
  2. 启用 HTTPS 协议
  3. 配置防火墙和访问控制
  4. 定期备份数据库
  5. 监控系统运行状态

注意: 本项目不一定再进行定期更新。我们鼓励社区成员积极自己改进和维护!

About

web课程设计-这是一个基于 Spring Boot + Vue 3 的现代化人力资源管理系统,提供员工管理、考勤管理、薪资管理、公告管理等功能。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors