vhr

vhr

基于SpringBoot和Vue的人力资源管理系统

vhr是一个基于SpringBoot和Vue的前后端分离人力资源管理系统。该项目集成Redis、RabbitMQ等技术,实现权限管理、员工管理、薪资管理等功能。系统架构清晰,代码规范,具有详细文档,适合学习SpringBoot和Vue开发。

微人事SpringBootVue人力资源管理前后端分离Github开源项目

vhr 是一个脚手架,如果需要完整的业务项目,请访问 ->TienChin

本项目已使用 SpringBoot3+Vue3 重构,地址:https://github.com/lenve/vhr2.0

扫码添加微信(微信ID:a_java_boy3),备注微人事,加入群组讨论。

微信ID:a_java_boy3

项目介绍

微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发,融合了常见企业级应用涉及的技术点,如 Redis、RabbitMQ 等。

项目技术栈

后端技术栈

  1. Spring Boot
  2. Spring Security
  3. MyBatis
  4. MySQL
  5. Redis
  6. RabbitMQ
  7. Spring Cache
  8. WebSocket
  9. ...

前端技术栈

  1. Vue
  2. ElementUI
  3. axios
  4. vue-router
  5. Vuex
  6. WebSocket
  7. vue-cli4
  8. ...

项目效果图

首先,不同用户登录成功后,根据角色不同,会看到不同的系统菜单,完整菜单如下:

p278

不同用户登录后可能看到的界面会有差异,如下:

p279

每个用户的角色由系统管理员分配,系统管理员分配用户角色的页面如下:

p280

系统管理员也可以管理不同角色可操作的资源,页面如下:

p281

快速部署

  1. 将项目克隆到本地 git@github.com:lenve/vhr.git
  2. 数据库脚本使用 Flyway 管理,无需手动导入数据库脚本,只需在本地 MySQL 中创建一个名为 vhr 的空数据库,并修改项目中的数据库配置(resources 目录下的 application.properties 文件)即可
  3. 提前准备好 Redis,修改项目 application.properties 文件中的 Redis 配置为您自己的配置
  4. 提前准备好 RabbitMQ,修改项目 application.properties 文件中的 RabbitMQ 配置为您自己的配置(注意,需要分别修改 mailserver 和 vhrserver 的配置文件
  5. 在 IntelliJ IDEA 中打开 vhr 项目,启动 mailserver 模块
  6. 运行 vhrserver 中的 vhr-web 模块

至此,服务端已成功启动。现在可以直接在浏览器地址栏输入 http://localhost:8081/index.html 访问项目。如需进行二次开发,请继续执行第七、八步。

  1. 进入 vuehr 目录,在命令行依次输入以下命令:
# 安装依赖
npm install

# 在 localhost:8080 启动项目
npm run serve

由于我在 vuehr 项目中已配置端口转发,将数据转发到 Spring Boot 上,因此项目启动后,在浏览器中输入 http://localhost:8080 即可访问前端项目,所有请求通过端口转发传递到 Spring Boot 中(注意此时不要关闭 Spring Boot 项目)。

  1. 最后可以用 WebStorm 等工具打开 vuehr 项目继续开发。开发完成后,当项目需要上线时,再次进入 vuehr 目录,执行以下命令:
npm run build

该命令执行成功后,vuehr 目录下会生成一个 dist 文件夹,将该文件夹中的 static 和 index.html 两个文件复制到 Spring Boot 项目的 resources/static/ 目录下,然后就可以像第 6 步那样直接访问了(关于前后端分离部署,也可以参考这篇文章:使用 Nginx 部署前后端分离项目,解决跨域问题)。

第 7 步需要您对 NodeJS、NPM 等有一定的使用经验,不熟悉的朋友可以先自行搜索学习,推荐 Vue 官方教程

文档

文档详细记录了项目开发过程中遇到的一些问题,主要目的是帮助没有基础的朋友快速理解这个项目。

  1. 权限数据库设计
  2. 服务端环境搭建
  3. 动态处理角色和资源的关系
  4. 密码加密并加盐
  5. 服务端异常的统一处理
  6. axios 请求封装,请求异常统一处理
  7. 将请求方法挂到Vue上
  8. 登录状态的保存
  9. 登录成功后动态加载组件
  10. 角色资源关系管理
  11. 用户角色关系管理

更新记录

2018.1.10 更新

本次更新版本:v20180110

本次更新完成了部门管理功能,页面在 [系统管理->基础信息设置->部门管理]

本次更新也更新了数据库脚本,小伙伴们需要重新下载数据库脚本执行。

相关文档:

  1. 部门数据库设计与存储过程编写
  2. 递归查询与存储过程调用
  3. Tree 树形控件使用要点

2018.1.12 更新

本次更新版本:v20180112

本次更新完成了职称管理和职位管理,页面在 [系统管理->基础信息设置->职位管理][系统管理->基础信息设置->职称管理]

本次更新也更新了数据库脚本,小伙伴们需要重新下载数据库脚本执行。

相关文档:

  1. 职位管理和职称管理功能介绍
  2. 组件复用
  3. [题外话]利用 git 标签回退至任意版本

2018.1.15 更新

本次更新版本:v20180115

本次更新完成了员工基本信息管理,页面在 [员工资料->基本资料]

本次更新也更新了数据库脚本,小伙伴们需要重新下载数据库脚本执行。

相关文档:

  1. 员工基本信息管理功能介绍
  2. Spring Boot 中自定义参数绑定

2018.1.16 更新

本次更新版本:v20180116

本次更新完成了员工的高级搜索功能,页面在 [员工资料->基本资料]

相关文档:

  1. 高级搜索功能介绍

2018.1.17 更新

本次更新版本:v20180117

本次更新完成了员工数据的导入导出功能,即可将员工数据导出为Excel,也可以将外部Excel导入到员工数据表中,页面在 [员工资料->基本资料]

相关文档:

  1. Excel导入导出效果图
  2. SpringMVC文件下载的两种方式
  3. 使用POI生成Excel
  4. 使用axios下载文件
  5. 使用POI实现Excel导入

2018.1.19 更新

本次更新版本:v20180119

本次更新主要实现了当管理员添加一个用户时,添加成功后,会根据该用户的邮箱自动向用户发送一封欢迎入职邮件,页面在 [员工资料->基本资料->添加员工] 详情可以参考下面的文档。 注意:邮件发送需要小伙伴自己配置授权码,配置方式参考下面的文档,配置文件在src/main/java/org/sang/common/EmailRunnable.java

相关文档:

  1. Spring Boot中使用Freemarker邮件模板生成邮件
  2. Java中邮件的发送
  3. Spring Boot中使用新线程发送邮件

2018.1.25 更新

本次更新版本:v20180125

本次更新主要完成了工资账套管理功能,页面在 [薪资管理->工资账套管理]

本次更新也更新了数据库脚本,小伙伴们需要重新下载数据库脚本执行。

相关文档:

  1. 工资账套管理功能介绍

2018.1.26 更新

本次更新版本:v20180126

本次更新主要完成了员工账套设置功能,页面在 [薪资管理->员工账套设置]

本次更新也更新了数据库脚本,小伙伴们需要重新下载数据库脚本执行。

相关文档:

  1. 员工账套设置功能介绍

2018.2.2 更新

本次更新版本:v20180202

本次更新完成了HR在线聊天功能,页面在 [Home页->右上角铃铛->好友聊天]

相关文档:

  1. 在线聊天功能介绍
  2. 在线聊天功能实现

2018.2.5 更新

本次更新版本:v20180205

本次更新完成了管理员发送系统通知功能,页面在 [Home页->右上角铃铛->系统通知]

本次更新也更新了数据库脚本,小伙伴们需要重新下载数据库脚本执行。

相关文档:

  1. 系统通知功能实现

2019.12.22 更新

本次更新版本:v20191222

本次更新是一次规模较大的更新,整个项目的版本得到升级,同时引入了多模块、RabbitMQ等技术栈。

相关文档

  1. 两年了,微人事项目迎来了一次重大更新

其他资料

关注公众号江南一点雨,专注于Spring Boot+微服务,定期视频教程分享,关注后回复2TB,领取松哥为你精心准备的超2TB免费Java学习资源。

公众号二维码

50+项目需求文档

Java书单推荐

参考

许可证

Copyright 2018 王松

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

下拉加载更多