[开源]人力资源管理系统,整合了Activiti,实现工作流的请假审批

科技一飞开源 2024-06-14 06:34:47

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

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

二、开源协议

使用GPL-3.0开源协议

三、界面展示系统展示首页

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

请假

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

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

五险一金

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

薪资管理

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

考勤表现

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

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

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

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

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

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

加班类型:

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

加班费计算方式:

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

加班状态:

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

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

五、技术选型技术栈前端Vue、Axios、ElementUI、Vue-Router、Vuex、ECharts后端Spring Boot、Jwt、MyBatis-Plus、MySQL、Hutool、Spring Security、Redis、Activiti项目搭建项目配置前端

在.env文件中

# 修改端口号,此端口号与在application.yml中配置的端口号相同 VUE_APP_PORT = 8888后端

在application.yml中进行相关的配置

# 这是后端项目的运行端口,可自行修改server: port: 8888# 配置多数据源,hrm是主数据库,保存系统业务信息;hrm_activiti是从数据库,保存工作流信息datasource: master: jdbc-url: jdbc:mysql://127.0.0.1:3306/hrm?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8 username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver type: com.zaxxer.hikari.HikariDataSource activiti: jdbc-url: jdbc:mysql://127.0.0.1:3306/hrm_activiti?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8 username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver type: com.zaxxer.hikari.HikariDataSource# redis配置redis: host: localhost port: 6379 password: 123456 database: 0 lettuce: pool: max-idle: 16 max-active: 32 min-idle: 8# 因为此项目涉及到了文件上传与下载,此路径用来存储上传的文件。file-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项目启动新建数据库,执行数据库文件,启动mysql配置redis,启动redis在/hrm/vue-elementui-hrm目录下# 下载依赖npm install # 启动npm run serve启动后端项目项目启动成功之后,访问http://localhost:8080/login

账号:admin 密码:123 (其他账号的密码也为123)

六、源码地址

访问一飞开源:https://code.exmay.com/

0 阅读:0