项目说明

日志
  1. 解决了第一次点击导航栏,页面出现空白的问题
  2. 取消使用自定义的封装组件CommonForm、CommonTable
  3. 优化了一些对话框布局
  4. 增加修改头像功能,员工未设置头像时,显示默认头像
  5. 删除了att_leave_type、sal_deduct_type、att_work_time、att_overtime_type等数据库表,具体原因见项目文档的总结部分
  6. token过期直接退出登录
  7. 实现了当访问不存在的路由时,出现404页面的功能
  8. 解决了一些关于路由warning的问题 2023/2/3
  9. 优化了界面,增强了搜索功能 2023/2/15
  10. 解决了添加子部门时,出现异常的问题 2023/2/17
  11. 解决了不能修改密码的问题 2023/3/10
  12. 解决了不能添加参保城市的问题 2023/4/6
  13. 完成了项目的加班模块 2024/3/23
  14. 解决了当数据表格的列fixed时,行未对齐的问题 2024/3/26
其他
  1. 目前只修改了代码,但项目文档并未更新
  2. 老项目请切换v1.1-240323分支
  3. 后续会持续改进项目

项目介绍

项目概述

本项目是一款基于Spring Boot+Vue+ElementUI的人力资源管理系统,有权限管理、财务管理、系统管理、考勤管理等功能模块。

项目地址

https:///fellow-me/hrm

技术栈
  1. 前端
    Vue、Axios、ElementUI、Vue-Router、Vuex、ECharts
  2. 后端
    Spring Boot、JWT、MyBatis-Plus、MySQL、Hutool

系统设计

功能模块

springboot 企微demo springboot企业用的多吗_elementui

本系统主要分四个模块,分别是权限管理、财务管理、系统管理、考勤管理。

系统展示

首页

springboot 企微demo springboot企业用的多吗_vue_02

首页主要展示了员工以及系统的一些基本信息。

请假

springboot 企微demo springboot企业用的多吗_springboot 企微demo_03

在请假面板中,员工可以进行请假。在右侧的请假记录中可以查看以往的请假申请,或对当前未被审核的申请进行撤销。

springboot 企微demo springboot企业用的多吗_java_04

管理员可以对员工的请假进行审批,比如通过或驳回。员工申请请假之后,等待管理员进行审批。如果管理员审批通过,则将员工休假时间段的考勤状态设置为休假(但当请假类型是调休时,考勤状态要设为调休)。

五险一金

springboot 企微demo springboot企业用的多吗_elementui_05

springboot 企微demo springboot企业用的多吗_elementui_06

实现了对员工的五险一金进行管理,以及员工五险一金报表的导出。

薪资管理

springboot 企微demo springboot企业用的多吗_elementui_07

springboot 企微demo springboot企业用的多吗_开发语言_08

实现了对员工的薪资进行管理,以及员工月薪资报表的导出。

考勤表现

springboot 企微demo springboot企业用的多吗_elementui_09

实现了考勤数据的导入,以及月考勤报表的导出,员工考勤状态的查看与修改。

springboot 企微demo springboot企业用的多吗_java_10

通过导入员工的考勤记录表,系统就会将员工的上下班时间与员工所在部门规定的上班时间进行比对,判断员工是否迟到、早退、旷工。
(这是数据导入的模板,需要按照此格式填写数据。系统只会读取上下班时间的时间部分,并以考勤日期作为打卡日期)

另外,介绍一下考勤规则:

  • 若考勤日期对应的是周末,则不判读员工考勤状态,默认为休假。
  • 若考勤日期对应的是员工请假的日期,则员工考勤状态设为休假。
  • 若考勤日期对应的是员工调休的日期,则员工考勤状态设为调休。
  • 若员工的四个打卡时间,只要有一个为空,则员工考勤状态设为旷工。
  • 若员工既迟到又早退,则员工考勤状态设为旷工。
  • 若员工迟到,则员工考勤状态设为迟到。
  • 若员工早退,则员工考勤状态设为早退。
  • 若不是以上任何情况,则员工考勤状态设为正常。
    考勤数据导入模板
加班详情

springboot 企微demo springboot企业用的多吗_开发语言_11

实现了加班数据的导入,以及月加班报表的导出,员工加班状态的查看与加班信息的修改。

springboot 企微demo springboot企业用的多吗_springboot 企微demo_12

通过导入员工的加班记录表(导入数据时,数据项有缺失的加班记录会被直接丢弃),系统会首先计算员工当天的加班总时长,然后再根据员工所在部门的加班规则等信息,对员工的加班状态进行判断。

加班类型:

  • 节假日加班:根据国家的节假日安排来判断当天是否是节假日。
  • 休息日加班:将周末视为休息日;如果是休息日加班,部门可以选择不调休或者调休;当选择调休时,只有当员工当天的总加班时长不少于8个小时时,才可以获得一天的调休,否则没有调休。
  • 工作日加班:工作日就是周一到周五。

加班费计算方式:

  • 以小时为单位:员工当天的总加班时长不能少于2小时,否则没有加班费;加班费 = 时薪 x 时长 x 倍数 + 奖金
  • 以日为单位:员工当天的总加班时长不能少于8个小时,否则没有加班费;加班费 = 日薪 x 倍数 + 奖金

加班状态:

  • 若当天是休息日加班,部门选择了调休,并且员工当天的加班总时长不少于8个小时,则员工获得一天的调休,当天的加班状态设置为调休。
  • 其他情况下,若员工当天的加班时长大于0,当天的加班状态设置为加班。
  • 若不是以上任何情况,则员工加班状态设置为正常。

项目搭建

项目配置
  1. 前端
    .env文件中
# 修改端口号,此端口号与在application.yml中配置的端口号相同
VUE_APP_PORT = 8888
  1. 后端
    application.yml中进行相关的配置
# 这是后端项目的运行端口,可自行修改
server:
  port: 8888

# 修改数据源,若MySql数据库版本较低,此处应该是com.mysql.jdbc.Driver
driver-class-name: com.mysql.cj.jdbc.Driver

# 因为此项目涉及到了文件上传与下载,此路径用来存储上传的文件。
file:
  upload:
    path: E:/project/idea/hrm/file/ # 修改为自己的路径

# 因为每年的法定节假日是不确定的,这里我只列举了2024年的节假日,其他年份的可根据个人需要添加即可
holidays:
  - 2024-01-01
  - 2024-02-10
  - 2024-02-11
  - 2024-02-12
  - 2024-02-13
  - 2024-02-14
  - 2024-02-15
  - 2024-02-16
  - 2024-02-17
  - 2024-04-04
  - 2024-04-05
  - 2024-04-06
  - 2024-05-01
  - 2024-05-02
  - 2024-05-03
  - 2024-05-04
  - 2024-05-05
  - 2024-06-08
  - 2024-06-09
  - 2024-06-10
  - 2024-09-15
  - 2024-09-16
  - 2024-09-17
  - 2024-10-01
  - 2024-10-02
  - 2024-10-03
  - 2024-10-04
  - 2024-10-05
  - 2024-10-06
  - 2024-10-07
项目启动
  1. 新建数据库,将数据库文件执行
  2. 克隆代码到本地,在vue-elementui-hrm目录下
# 下载依赖
npm install 

# 启动
npm run serve
  1. 启动后端项目