1 系统概述
1.1 系统说明
该系统用于海宁市医院的员工请假的专用请假系统,将员工请假的申请、审批、查询流程规范化,并进行必要的记录,为后面奖金的发放和人事升迁做参考。
同时该系统还支持管理员对用户信息进行修改以及添加或删除用户。
1.2 系统任务
该系统最终的目的是使得海宁市医院员工的请假过程规范化,并对请假的过程进行记录。在登录时,根据用户登录时的用户名确认用户的权限,对用户所能进行的操作进行不同的划分。
对于普通用户,他只能通过该系统查询自己的历史请假信息和个人信息或者申请假期,在这里能看到自己以前的请假记录以及他们的进度,比如已提交、已通过、未通过等进度信息。在个人信息里,他可以查看自己的相关信息或者修改自己的登录密码。
对于有审批权限的用户还可以对所管辖的员工请假申请进行批复,即批准或拒绝。
对于管理员权限的用户,还可以进行用户管理功能,其中包括增加删除用户,修改用户信息以及重置用户密码等操作。
该系统不仅对用户的请假流程行为进行规范,提供流程推进平台,还对请假的信息进行了详细的记录,为后面的奖金安排和认识调度提供科学可靠地参考。
2 需求规格
2.1 功能需求
用户管理模块
用户登录
添加用户
删除用户
用户列表查看
用户信息查看
用户信息修改
用户密码修改
请假管理模块
查看历史请假信息
查看请假的进度
流程推进模块
查看待审批的请假申请
请假的审批流程
根据不同的假期进行不同的流程处理
多层审批
单层审批
拒绝请假申请
3 总体设计
3.1 基本概念设计
3.1.1 设计技术与开发平台
该系统采用BS架构,数据库使用MySQL,后台开发语言使用java,后台开发框架使用SpringMVC + myBatis,web服务器使用Apache Tomcat,运行操作系统选用Windows 10/Ubuntu 16.04。
DAO层框架是spring + myBatis,使得整个系统的DAO的实现转化为单纯的参数设置 + SQL语句编写
Service层使用spring进行管理,采用注解的方式集成到spring中
Web层采用spring MVC,通过返回View的URL的方式进行页面跳转,通过返回JSON数据的方式编写供前端使用的API。并且结合springMVC,使用了jsp中的EL表达式方便数据的传递与修改
前端界面使用bootstrap框架和一些JQurey的前段控件完成,并且结合jsp的jstl标签完成与后台数据的结合
3.1.2 系统模型
本系统一共分为三个模块,用户管理模块、请假查询模块以及请假流程推进模块。
其中用户管理模块包括用户登录、添加用户、删除用户、用户列表查看、用户信息查看、用户信息修改、用户密码修改等功能
请假查询模块包括查看历史请假信息和查看请假的进度
请假流程控制模块包括请假层级批准和拒绝
3.1.3 系统处理流程
其中请假的审批层级流程规则如下:
如果请假者不是三个顶层分部门的职工
某科室员工请假 -> 选择假期为公假,请假天数小于5天 -> 员工所在科室主任审批 -> 员工所在分部门人员(负责人和领导皆可)审批 -> 通过
某科室员工请假 -> 选择假期为公假,请假天数大于等于5天 -> 员工所在科室主任审批 -> 员工所在分部门领导审批 -> 通过
某科室员工请假 -> 选择假期为年假 -> 员工所在科室主任审批 -> 通过
某科室员工请假 -> 选择假期为病假、事假,请假天数小于15天 -> 员工所在科室主任审批 -> 通过
某科室员工请假 -> 选择假期为病假、事假,请假天数大于等于15天 -> 员工所在科室主任审批 -> 员工所在分部门人员(负责人和领导皆可)审批 -> 通过
某科室员工请假 -> 选择假期为婚假,填写年龄不符合晚婚,最多选3天 -> 员工所在科室主任审批 -> 员工所在分部门人员(负责人和领导皆可)审批 -> 通过
某科室员工请假 -> 选择假期为婚假,填写年龄符合晚婚,最多选13天 -> 员工所在科室主任审批 -> 员工所在分部门人员(负责人和领导皆可)审批 -> 通过
某科室员工请假 -> 选择假期为产假(陪产假),男性只能选陪产假,女性只能选产假。产假最多选98天,陪产假最多选15天 -> 员工所在科室主任审批 -> 员工所在分部门人员(负责人和领导皆可)审批 -> 通过
某科室员工请假 -> 选择假期为工伤假,最多选365天,附件中添加相关材料 -> 员工所在科室主任审批 -> 员工所在分部门人员(负责人和领导皆可)审批 -> 通过
如果请假者是三个顶层分部门的职工
请假 -> 员工所在部门的领导审批 -> 通过
4 数据库设计
4.1 users表
存放系统中所有的用户。
字段名称
字段描述
字段类型
备注
User_id
用户id
int
Primary key
User_username
用户账户
Varchar(20)
Not null
User_password
用户密码
Char(32)
Not null
User_name
用户姓名
Vharchar(20)
Not null
User_sex
性别
Char(10)
Not null
User_age
年龄(涉及晚婚假之类必须)
int
Not null
User_department
所属部门id
int
Not null
User_leader
是否是所属部门的领导
int
Not null
User_time_left
今年剩余年假时间
Int
Not null
Is_admin
是否是系统管理员
int
Not null
4.2 foms表
存放各个审核阶段的请假申请,所有申请中、申请成功以及申请失败的请假都能够在这张表里面找到。
后期写API接口的时候,展示扣工资的请假的API就是筛出所有已经完成的且类型为扣工资的请假的记录;人事部的备案等同理。
字段名称
字段描述
字段类型
备注
Form_id
申请id
int
Primary key
User_id
申请者id
int
Not null
Form_state
申请状态
Int
Not null
Form_type
请假类型
int
Not null
Form_length
请假时长(天)
int
Not null
Form_start_time
请假开始时间
timestamp
Not null
Form_end_time
请假结束时间
timestamp
Not null
4.3 departments表
所有部门类型对应的具体部门。
字段名称
字段描述
字段类型
备注
Department_id
部门id
int
Primary key
Department_name
部门名称
Varchar(100)
Not null
Department_parent
上级部门id
int