基于ssm的员工工资管理系统论文
分类: Java ssm MySQL 专栏: java ssm Mysql 标签: 基于ssm的员工工资管理系统论文
2023-01-26 19:31:02 889浏览
基于SSM的员工工资管理系统
ssmによる従業員の給与管理システム
诚 信 声 明
本人郑重声明:所呈交论文,是在导师指导下独立进行研究所取得的研究成果。论文除文中已经注明引用的内容外,不包含任何其他集体或个人已经发表或在网上发表的内容。
特此声明。
声明人:
年 月 日
指导教师意见
指导教师姓名: | 职称: | ||||
指 导 参 考 项 目 | |||||
论 文 选 题 | 1 | 符合专业培养目标 | |||
2 | 具有学术价值 | ||||
3 | 具有新颖性 | ||||
4 | 难易程度适中 | ||||
文 献 资 料 | 5 | 文献收集系统完备 | |||
6 | 文献理解准确得当 | ||||
7 | 文献征引合乎规范 | ||||
8 | 外文翻译准确通顺 | ||||
9 | 观点归纳完整清晰 | ||||
论 文 写 作 | 10 | 文题相符,立论正确 | |||
11 | 数据准确,逻辑严谨 | ||||
12 | 条理清晰,论证充分 | ||||
13 | 行文流畅,格式规范 | ||||
14 | 篇幅适中,按期完成 | ||||
论 文 成 果 | 15 | 文献综述完整,研究基础厚实 | |||
16 | 具有理论意义或实际价值 | ||||
17 | 作者见解独到新颖 | ||||
18 | 具有拓展、延伸性 | ||||
写作态度 | 19 | 积极同指导教师沟通 | |||
指导成绩 | |||||
是否同意答辩(“□”内划“√”) | 是□ 否□ | ||||
指 导 老 师 意 见 | 指导教师签字: 年 月 日 |
评阅人意见与成绩评定
评阅人姓名: | 职称: | |||
评 价 项 目 | ||||
论 文 选 题 (10分) | 1 | 符合专业培养目标 | ||
2 | 具有学术价值 | |||
3 | 具有新颖性 | |||
4 | 难易程度适中 | |||
文 献 资 料 (25分) | 5 | 文献收集系统完备 | ||
6 | 文献理解准确得当 | |||
7 | 文献征引合乎规范 | |||
8 | 外文翻译准确通顺 | |||
9 | 观点归纳完整清晰 | |||
论 文 写 作 (40分) | 10 | 文题相符,立论正确 | ||
11 | 数据准确,逻辑严谨 | |||
12 | 条理清晰,论证充分 | |||
13 | 行文流畅,格式规范 | |||
14 | 篇幅适中,按期完成 | |||
论 文 成 果 (25分) | 15 | 文献综述完整,研究基础厚实 | ||
16 | 具有理论意义或实际价值 | |||
17 | 作者见解独到新颖 | |||
18 | 具有拓展、延伸性 | |||
评阅人最终给分 | ||||
评 阅 人 评 语 |
评阅人签字: 年 月 日 |
答辩(评审)委员会意见
成绩
鉴定意见:
主任(签章)
年 月 日
基于SSM架构的员工工资管理系统
摘要
开发员工工资管理系统的初衷是将企业单位的工资管理和计算机管理有效的结合起来。以便在员工工资发放阶段,管理员能使用员工工资管理系统更大化企业的收入,解决以往人工管理效率低下的问题。更加科学,更加有效的管理员工的工资数据,使查询统计员工工资数据更加快捷,该系统还会以直观的表格形式展示统计来的数据,并给企业未来的业务拓展提供更大的可能性。
关键词:管理;统计;工资管理
ssmによる従業員の給与管理システム
摘要
従業員賃金管理システムは、企業単位の賃金管理とコンピュータ管理を効果的に組み合わせることを目的として開発された。従業員の給与支給段階で、管理者は従業員給与管理システムを使って企業の収入をより大きくすることができ、これまでの人手による管理の非効率性を解決することができます。従業員の給与データをより科学的かつ効率的に管理できるようになり、従業員の給与データをより迅速に照会できるようになりました。また、このシステムは、統計データを表形式で表示し、企業の将来の事業展開の可能性を高めます。
キーワード:マネジメント統計;給与管理
引 言
当今不断提升的社会经济水平,基于数据信息的后经济时代对企业信息管理的要求更加严苛,除了传统的员工利用excel管理工资信息外,对员工的其他各项信息统一管理越来越必要[1]。
主要内容及需求有:
(1)本系统的主要工作及现状。
(2)本系统的具体需求分析。
(3)通过具体需求、总体描述、需求模型。
(4)本系统的概要设计。
(5)通过物模、包图、软件结构、概模等展示。
(6)本系统的软件详细设计。
(7)本系统的软件实现。
(8)通过软件功能的实现来展示。
(9)测试。
1 绪 论
1.1问题的提出
某企业人员众多,数据管理压力大。因此企业专门设置了员工工资管理系统。公司的人事事务随着公司的发展变得复杂,不过主要事务包括:员工信息管理、考勤信息管理等。单个管理系统就包含很多数据。这些庞杂的数据人工较难管理,会造成人力、物力资源的浪费,复杂的数据量也会让统计和分析阶段举步维艰。公司越来越难以依赖传统的人工,本着节约公司的人力资源和提高办公效率的目的,特别需要新型的工资管理系统[2]。
1.2本课题的研究意义
各种管理软件遍布现代市场,但是简单的工资发放系统,对数据库没有太高要求。开发一个便于操作、简单明了的工资管理系统就是我们的目标[4]。
1.3可行性分析
可行性分析就是在短时间内判断提出的问题是否可行。我们要将可能想到的解法加以权衡、分析利弊,从而判断根据系统的规模能否给公司带来更多利益。所以,可行性分析也就是微缩的系统分析设计的过程[5]。
1.4本文的主要工作
该论文的目的在于描述系统的实现过程。
2 软件需求分析
2.1软件需求分析
该阶段的目的是分析出软件的具体功能,是软件生成周期中不可缺少的环节,根据用户的体验,进行分析整理,论述清晰规范是软件需求文档的重点[3]。
2.2 系统范围
每个模块有更细致的划分[7]。主要分为管理员管理和员工管理两个主要模块。
2.3定义、缩写词
SSM Spring+SpringMVC+MyBaits
MVC Model View Controller
UC UseCase
2.4 总体描述
本文有对员工工资管理系统的概述及功能描述和约束条件。
2.4.1产品概述
操作系统 windows
开发工具 eclipse
服务器 Tomcat 8.0
数据库 MySql 8.0
使用环境 IE、Chrome等浏览器
2.4.2 产品功能
功能包括用户(管理员)管理、部门管理、考勤管理、员工管理、请假管理。下表介绍具体功能:
表2-1 模块划分
模块类别 | 功能 |
用户(管理员)管理 部门管理 工资管理 员工管理
考勤管理 请假管理 | 用户登录 用户添加 用户修改 用户删除 用户查询 部门添加 部门修改 部门删除 部门查询 工资信息添加 工资信息修改 工资信息查询 员工信息添加 员工信息修改 员工信息删除 员工信息查询
考勤信息添加 考勤信息修改 考勤信息删除 考勤信息查询 请假信息查询 请假信息删除 请假信息审核 |
2.4.3 约束条件
运行后通过选择角色进入界面,登录时的密码输入不可见更好的保护了用户的隐私。
2.5具体需求
该段将界面、功能、约束及硬件要求以表格图片的形式展现出来。
2.5.1用户界面
※登录界面
(1)窗口标题:登录|员工工资管理系统。
(2)目的:用户输入必要数据进入系统。
(3)数据来源:数据由用户(管理员)输入。
(4)界面布局:见图2-1。
图2-1 登录
(5)反馈信息:输入数据并点击登录。成功则进入系统界面;失败提示“请检查你输入的数据”。
(6)命令执行方式:点击“登录”。
(7)描述:见表2-2。
表2-2 登录数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 | 用户名 密码 | String String | 否 否 | 3-7 1-6 | I I | Admin 123456 | 字母、数字 字母、数字 |
※修改用户信息界面
(1)窗口标题:修改用户(user)信息。
(2)目的:用户修改个人信息。
(3)数据来源:数据库的用户表(staff)。
(4)界面布局:见图2-2。
图2-2 修改用户信息
(5)反馈信息:用户名和密码符合规则,提示“修改成功”。
(6)命令执行方式:选定信息,再点击修改。
(7)描述:见表2-3。
表2-3 修改用户信息数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 | 用户名 密码 | String String | 否 否 | 3-7 1-6 | I I | Admin 123456 | 字母、数字、下 划线 字母、数字、下 划线 |
※用户管理界面
(1)窗口标题:用户(管理员)管理。
(2)目的:显示用户(管理员)信息。
(3)数据来源:数据库的用户表(user)。
(4)界面布局:见图2-3。
图2-3用户管理
(5)反馈信息:显示数据库的用户(user)表。
(6)命令执行方式:点击导航菜单中的用户管理。
(7)描述:见表2-4。
表2-4用户(管理员)管理数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 | 用户名 密码 | String String | 否 否 | 3-7 1-6 | I I | Admin 123456 | 字母、数字、下 划线 字母、数字、下 划线 |
※添加用户界面
(1) 窗口标题:添加用户(user)。
(2) 目的:添加新用户。
(3) 数据来源:由管理员输入。
(4) 界面布局:见图2-4。
图2-4添加用户
(5)反馈信息:点击“添加”,若符合系统要求,提示“添加成功”。若不符合系统要求,提示“请检查你输入的数据”。
(6)命令执行方式:点击用户管理界面的“添加”。
(7)描述:见表2-5。
表2-5添加用户数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 | 用户名 密码 | String String | 否 否 | 3-7 1-6 | I I | Admin 123456 | 字母、数字、下 划线 字母、数字、下 划线 |
※修改用户界面
(1)窗口标题:修改用户(user)信息。
(2)目的:修改数据库的用户表(user)。
(3)数据来源:由管理员输入。
(4)界面布局:见图2-5。
图2-5修改用户
(5)反馈信息:点击提交按钮,若符合系统要求,提示“修改成功”。若不符合系统要求,提示“请检查你输入的数据”。
(6)命令执行方式:点击用户管理界面的“修改”。
(7)描述:见表2-6。
表2-6修改用户数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 | 用户名 密码 | String String | 否 否 | 3-7 1-6 | I I | Admin 123456 | 字母、数字、下 划线 字母、数字、下 划线 |
※部门信息管理界面
(1)标题:部门信息管理。
(2)目的:显示部门表(department)信息。
(3)数据来源:数据库的部门信息表。
(4)界面布局:见图2-6。
图2-6部门信息管理
(5)反馈信息:显示数据库的部门信息表(department)。
(6)命令执行方式:点击部门信息管理。
(7)描述:见表2-7。
表2-7部门信息管理数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 | 部门名 备注 | String String | 否 可 | 1-5 无 | I I | 设计部 设计 | 汉字 除特殊字符 |
※添加部门信息界面
(1)标题:添加部门。
(2)目的:往数据库中添加一条部门(department)信息。
(3)数据来源:输入。
(4)界面布局:见图2-7。
图2-7添加部门
(5)反馈信息:符合系统格式要求,提示“添加成功”,若不符合系统格式要求,提示“请检查你输入的数据”。
(6)命令执行方式:点击部门信息管理界面的“添加”。
(7)描述:见表2-8。
表2-8添加部门信息数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 | 部门名 备注 | String String | 否 可 | 1-5 无 | I I | 设计部 设计 | 汉字 除特殊字符外 |
※修改部门信息界面
(1)窗口标题:修改部门(department)信息。
(2)目的:修改数据库中的部门表(department)信息。
(3)数据来源:数据库的部门(department)表。
(4)界面布局:见图2-8。
图2-8修改部门
(5)反馈信息:修改后点击“提交”,若成功提示“修改成功”,若错误提示“请检查你输入的数据”。
(6)命令执行方式:进入部门管理界面,点击“修改”。
(7)描述:见表2-9。
表2-9修改部门信息数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 | 部门名 备注 | String String | 否 可 | 1-5 无 | I I | 设计部 设计 | 汉字 除特殊字符外 |
※添加员工界面
(1)窗口标题:添加员工(staff)。
(2)目的:往数据库中添加一条员工(staff)信息。
(3)数据来源:输入。
(4)界面布局:见图2-9。
图2-9添加员工
(5)反馈信息:信息符合要求,提示“添加成功”,不符合要求,提示“请检查你输入的数据”。
(6)命令执行方式:点击“添加”。
(7)描述:见表2-10。
表2-10添加员工信息数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 3 4 5 6 7 | 员工头像 员工姓名 登录密码 所属部门 员工性别 电话 备注 | Img String String String String String String | 否 否 否 否 否 否 否 | 无 1-6 1-10 1-6 1 11 无 | I I I I I I I | 张三 123456 财务部 男 186608228 | 图片 除特殊字符外 除特殊字符外 汉字 汉字 数字 除特殊字符外 |
※修改员工信息界面
(1)窗口标题:修改员工(staff)信息。
(2)目的:修改数据库中的员工表(staff)信息。
(3)数据来源:将员工表(staff)信息显示在界面,用户选定按钮,系统将特定信息显示出来。
(4)界面布局:见图2-10。
图2-10修改员工信息
(5)反馈信息:成功提示“修改成功”,错误提示“请检查你输入的数据”。
(6)命令执行方式:点击界面的“修改”。
(7)描述:见表2-11。
表2-11修改员工信息数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 3 4 5 6 7 | 员工头像 员工姓名 登录密码 所属部门 员工性别 电话 备注 | Img String String String String String String | 否 否 否 否 否 否 否 | 无 1-6 1-10 1-6 1 11 无 | I I I I I I I | 张三 123456 财务部 男 186608228 | 图片 除特殊字符外 除特殊字符外 汉字 汉字 数字 除特殊字符外 |
※员工信息管理界面
(1)窗口标题:员工列表。
(2)目的:显示员工(staff)信息。
(3)数据来源:数据库中的员工(staff)表。
(4)界面布局:见图2-11。
图2-11员工信息管理
(5)反馈信息:全部员工信息,管理员查询关键字,成功返回带有关键字的数据,查询失败提示“请检查你输入的数据”。
(6)命令执行方式:点击员工信息管理的“员工列表”。
(7)描述:见表2-12。
表2-12员工信息管理数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 3 4 5 6 7 | 员工头像 员工姓名 登录密码 所属部门 员工性别 电话 备注 | Img String String String String String String | 否 否 否 否 否 否 否 | 无 1-6 1-10 1-6 1 11 无 | I I I I I I I | 张三 123456 财务部 男 186608228 | 图片 除特殊字符外 除特殊字符外 汉字 汉字 数字 除特殊字符外 |
※考勤信息管理界面
(1)窗口标题:考勤列表。
(2)目的:展示考勤(kq)信息。
(3)数据来源:数据库中的考勤表(kq)。
(4)界面布局:见图2-12。
图2-12考勤信息管理
(5)反馈信息:全部考勤信息,管理员查询关键字,成功返回带有关键字的数据,查询失败提示“请检查你输入的数据”。
(6)命令执行方式:点击考勤信息管理的“考勤列表”。
(7)描述:见表2-13。
表2-13考勤信息管理数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 3 4 5 6 7 8 9 10 | ID 员工名 考勤日期 周几 所属部门 考勤类型 开始/结束时间 迟到或早退 加班时长 备注 | Int String Date String String String Time String Int String | 否 否 否 否 否 否 否 否 否 否 | 无 1-6 1-10 2 10 10 5 2 2 100 | I I I I I I I I I I | 1 张三 2021-03-01 周一 财务部 上班 8:00 迟到 2 | 数字 除特殊字符外 日期 汉字 汉字 汉字 时间 汉字 数字 除特殊字符外 |
※添加考勤信息界面
(1)窗口标题:添加考勤(kq)信息。
(2)目的:添加一条考勤(kq)信息。
(3)数据来源:输入。
(4)界面布局:见图2-13。
图2-13添加考勤信息
(5)反馈信息:若符合要求,提示“添加成功”,不符合要求,提示“请检查你输入的数据”。
(6)命令执行方式:点击考勤管理中的“添加”。
(7)描述:见表2-14。
表2-14添加考勤信息数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 3 4 5 6 7 8 | 所属部门 员工名 考勤类型 考勤时间 开始/结束时间 迟到或早退 加班时长 备注 | String String String Date Time String Int String | 否 否 否 否 否 否 否 否 | 10 10 10 5 5 2 2 | I I I I I I I I | 财务部 张三 上班 2021-03-01 8:00 迟到 2 | 汉字 汉字 汉字 日期 时间 汉字 数字 除特殊字符外 |
※修改考勤信息界面
(1)窗口标题:修改考勤(kq)信息。
(2)目的:修改数据库的考勤(kq)信息。
(3)数据来源:数据库中的考勤表(kq)。
(4)界面布局:见图2-14。
图2-14修改考勤信息
(5)反馈信息:成功提示“修改成功”,错误提示“请检查你输入的数据”。
(6)命令执行方式:点击考勤管理界面的“修改”按钮。
(7)描述:见表2-15。
表2-15修改考勤信息数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 3 4 5 6 7 | 所属部门 员工名 考勤类型 考勤时间 开始/结束时间 迟到或早退 备注 | String String String Date Time String String | 否 否 否 否 否 否 否 | 10 10 10 5 5 2 | I I I I I I I | 财务部 张三 上班 2021-03-01 8:00 迟到 | 汉字 汉字 汉字 日期 时间 汉字 除特殊字符外 |
※工资信息管理
(1)窗口标题:工资信息(wages)管理。
(2)目的:展示员工工资信息。
(3)数据来源:数据库中的工资(wages)表。
(4)界面布局:见图2-15。
图2-15工资信息管理
(5)反馈信息:显示全部工资信息,查询成功返回带有关键字的数据,查询失败提示“请检查你输入的数据”。
(6)命令执行方式:点击工资信息管理。
(7)描述:见表2-16。
表2-16 工资信息管理数据项
编号 | 名称 | 类型 | 可否为空 | 长度限制 | I/O | 举例 | 备注 |
1 2 3 4 5 6 7 8 | 所属部门 员工名 月份 应发月工资 实发工资 奖励金额 处罚金额 备注 | String String String Int Int Int Int String | 否 否 否 否 否 否 否 否 | 10 10 10 10 10 10 10 | I I I I I I I I | 财务部 张三 2021-03-01 5000 5000 1000 5000 | 汉字 汉字 日期 数字 数字 数字 数字 除特殊字符外 |
2.5.2 功能需求
本部分给出了系统角色各自的功能。以下两个图详细描述管理员和用户用例。
图2-16 管理员用例
图2-17 用户用例
以下举例部分用例进行详尽描述。
表2-17 功能用例表
编号 | 用例名称 | 用例英文名称 |
UC1 UC2 UC3 UC4 UC5 UC6 | 修改用户信息 添加用户 考勤信息查询 修改考勤信息 请假申请 请假信息审核 | UpdateUserInformation AddUser AttendanceInformationQuery UpdateAttendanceInformation LeaveApplication LeaveInformationReview |
表2-18 修改用户信息表
用例标识符 | UC1 | |||
用例名称 | 修改用户信息 | |||
用例作者 | 梁嘉辉 | 创建用例时间 | 2021-3-24 | |
操作者 | 管理员 | |||
描述 | 修改用户表(user)信息 | |||
前置条件 | 点击用户信息管理中的“修改” | |||
后置条件 | 完成修改 | |||
主 事 件 流 | 管理员 | 系统 | ||
1.点击修改。 | 2.展示相应的用户信息。 | |||
3.输入要修改的信息,点击提交。 | 4.判断输入的数据是否为空,若为空执行子事件流a。 | |||
5.生成用户信息实例,保存到用户信息(staff)表中。 | ||||
子事件流a | a1.弹出信息提示框,提示用户名或密码为空 a2.返回主事件流3 | |||
异常处理 | 系统出现异常保留最后一次操作。 |
表2-19 添加用户表
用例标识符 | UC2 | |||
用例名称 | 添加用户 | |||
用例作者 | 梁嘉辉 | 创建用例时间 | 2021-3-24 | |
操作者 | 管理员 | |||
描述 | 向用户表(user)中添加信息 | |||
前置条件 | 点击用户管理界面的“添加” | |||
后置条件 | 完成添加 | |||
主 事 件 流 | 管理员 | 系统 | ||
1.点击添加。 | 2.显示添加用户界面。 | |||
3.输入信息,点击添加。 | 4.判断输入的数据是否为空,若为空,执行子事件流a若不为空,生成用户信息实例。 | |||
5.返回用户管理界面 | ||||
子事件流a | a1.弹出请检查你输入的数据界面,提示用户名或密码为空 a2.返回主事件流3 | |||
异常处理 | 系统出现异常保留最后一次操作。 |
表2-20 考勤信息查询表
用例标识符 | UC3 | |||
用例名称 | 考勤信息查询 | |||
用例作者 | 梁嘉辉 | 创建用例时间 | 2021-3-24 | |
操作者 | 管理员 | |||
描述 | 查询考勤表(kq)信息 | |||
前置条件 | 点击考勤信息管理界面的“搜索”。 | |||
后置条件 | 显示相应的考勤信息。 | |||
主 事 件 流 | 管理员 | 系统 | ||
1.进入考勤信息管理 | 2.显示考勤信息 | |||
3.输入要查询的关键字,点击搜索 | 4.判断关键字是否存在,若不存在,执行子事件流a。若存在,显示相应的考勤信息。 | |||
5.返回考勤管理界面。 | ||||
子事件流a | a1.弹出空白界面,提示输入的关键字不存在 a2.返回主事件流3 | |||
异常处理 | 系统出现异常保留最后一次操作。 |
表2-21 修改考勤信息表
用例标识符 | UC4 | |||
用例名称 | 修改考勤信息 | |||
用例作者 | 梁嘉辉 | 创建用例时间 | 2021-3-24 | |
操作者 | 管理员 | |||
描述 | 修改考勤信息 | |||
前置条件 | 点击考勤信息管理界面的“修改”。 | |||
后置条件 | 更新考勤信息表(kq),返回考勤信息管理界面。 | |||
主 事 件 流 | 管理员 | 系统 | ||
1.进入考勤信息管理 | 2.显示考勤信息 | |||
3.选定信息,点击“修改” | 4.显示已有信息,若考勤类型选择请假一天或旷工一天,则执行子事件流a。若考勤类型选择上班、请假半天、旷工半天,则执行子事件流b。 | |||
5.返回考勤信息管理界面 | ||||
子事件流a | a1.点击提交后,弹出修改成功界面。 a2.返回主事件流3 | |||
子事件流b | b1.点击提交后,提示请输入开始\结束时间。 b2.返回主事件流3 | |||
异常处理 | 系统出现异常保留最后一次操作。 |
表2-22 请假申请表
用例标识符 | UC5 | |||
用例名称 | 请假申请 | |||
用例作者 | 梁嘉辉 | 创建用例时间 | 2021-3-24 | |
操作者 | 员工 | |||
描述 | 申请请假 | |||
前置条件 | 员工点击“请假信息管理”,点击“我要请假”。 | |||
后置条件 | 员工完成申请,系统更新请假信息表。 | |||
主 事 件 流 | 员工 | 系统 | ||
1.进入请假信息管理 | 2.显示我要请假和请假记录选项 | |||
3.点击“我要请假” | 4.系统显示请假表单 | |||
5.填写请假时间和请假原因 | 6.若请假时间已存在,则执行子事件流a。若请假原因为空,则执行子事件流b。 | |||
子事件流a | a1.弹出请假日期错误窗口,提示请假时间已存在。 a2.返回主事件流5 | |||
子事件流b | b1.弹出请检查你输入的数据窗口,提示请假原因为空。 b2.返回主事件流5 | |||
异常处理 | 系统出现异常保留最后一次操作。 |
表2-23 请假信息审核表
用例标识符 | UC6 | |||
用例名称 | 请假信息审核 | |||
用例作者 | 梁嘉辉 | 创建用例时间 | 2021-3-24 | |
操作者 | 管理员 | |||
描述 | 管理员对请假申请进行审核 | |||
前置条件 | 管理员点击“请假信息管理”,点击“审核”。 | |||
后置条件 | 系统更新请假信息表,显示请假信息管理界面。 | |||
主 事 件 流 | 员工 | 系统 | ||
1.进入请假信息管理 | 2.显示全部请假信息 | |||
3.点击“审核” | 4.提示“是否要通过该信息” | |||
5.若通过,则执行子事件流a。若不通过,则执行子事件流b。 | ||||
子事件流a | a1.弹出已处理窗口,将审核状态改为通过。 a2.返回主事件流2 | |||
子事件流b | b1.弹出已处理窗口,将审核状态改为不通过。 b2.返回主事件流2 | |||
异常处理 | 系统出现异常保留最后一次操作。 |
2.5.3 性能需求
(1)数据库要求:支持增删改查操作并存储数据。
(2)时间要求:用户反馈时间及增删改查操作在两秒内完成。
(3)安全性要求:用户登录才能访问网页,并且有角色限制。
(4)用户体验要求:系统使用JQuery检验输入的数据,页面简洁大方,用户体验度良好。
(5)可维护性:该项目使用java语言和SSM架构,数据安全性高,维护性良好。
2.5.4 数据库要求
该系统总共有7张表,部门信息存放在department表,考勤信息存放在kq表,公告信息存放在notice表,请假信息存放在qj表,员工信息存放在staff表,管理员信息存放在user表,工资信息存放在wages表。
2.5.5 设计约束
系统必须部署在web服务器上,根据角色选择有不同功能。
2.5.6 软件系统的质量属性
一、可靠性:
(1)系统可靠性在98%左右。
(2)不可避免的漏洞不超过三个。
(3)不能保证智能拦截广告和恶意插件。
二、保密性:
浏览该系统的具体内容并正常使用需要用户名和密码,保护了用户的隐私。
2.6 需求模型
2.6.1 静态模型
图2-18 静态图
产生的类图如下:
表2-24 department表
departmrnt | ||
Id Name Remarke | Long String String | 部门ID 部门名称 备注 |
Getters/Setter 方法 |
表2-25 kq表
kq | ||
Id Lx Time Remark Staff_id Start_ts End_ts Cdzt Week Jbh Username Dname | Long String String String Long String String Srting String Integer String String | 考勤ID 考勤类型 考勤日期 备注 员工ID 开始时间 结束时间 迟到早退 周几 加班时长 员工名 所属部门 |
Getters/Setter 方法 |
表2-26 notice表
notice | ||
Id Title Create_time Content | Long String String String | 公告ID 标题 创建时间 内容 |
Getters/Setter 方法 |
表2-27 qj表
qj | ||
Id Staff_Id Time Msg Result Cts Lx Username Dname | Long String String String String String String String String | 请假ID 员工ID 请假日期 请假原因 审核状态 提交时间 请假类型 员工名 所属部门 |
Getters/Setter 方法 |
表2-28 staff表
Staff | ||
Id Clazzid Username Password Sex Photo | Long Long String String String String | 员工ID 部门ID 员工名 密码 性别 头像 |
Getters/Setter 方法 |
表2-29 user表
User | ||
Id Username Password | Long String String | 员工ID 员工名 密码 |
Getters/Setter 方法 |
表2-30 wages表
Wages | ||
Id Remark Staff_id Wmonth Ymoney Smoney Awmoney Fmoney Cdzt_time Kg_num Qj_num Sb_num Jb_h Jb_money | Long String Long String Float Float Float Float Integer Float Float Float Integer Float | 工资ID 备注 员工ID 月份 应发工资 实发工资 奖励金额 处罚金额 迟到或早退次数 考勤天数 请假天数 上班天数 加班时长 加班费 |
Getters/Setter 方法 |
2.6.2 动态模型
(1)添加用户
图2-19 添加用户图
操作及功能描述:
G1:员工姓名不能为空界面
G2:员工登录密码不能为空界面
G3:请选择所属部门界面
Add(name,pwd,department):Boolean 管理员输入员工姓名、员工登录密码和所属部门,系统判断输入是否合法。
输出参数:信息提示Message
前置条件: 点击用户管理界面的“添加”
后置条件: 输入数据,点击“添加”,合法则更新员工表,返回界面。
(%1) 修改用户
图2-20 修改用户图
操作及功能描述:
G1:修改信息不合法界面
Edit(name,pwd,department):Boolean 系统检测输入的数据。
Update(name,pwd,department):Boolean 更新用户信息表(user)。
输出参数:信息提示Message
前置条件:选定要修改的用户,点击“修改”。
后置条件:修改成功,更新用户表(user),返回用户管理界面。
(3)修改员工信息
图2-21 修改员工信息图
操作及功能描述:
G1: 信息修改不合法界面
Edit(photo,username,password,department,sex,phone,remark):Boolean 系统检测输入的员工信息。Update(photo,username,password,department,sex,phone,remark):boolean 更新员工信息表(staff)。
输出参数:信息提示Message
前置条件:选定要修改的员工,点击“修改”。
后置条件:修改成功,更新员工表(staff),修改失败,提示请检查你输入的数据。
(4)员工信息查询
图2-22 员工信息查询图
操作及功能描述:
G1: 查询信息不存在界面
输入参数:username。
输出参数:信息提示Message
前置条件:输入要查询的关键字,点击“搜索”。
后置条件:系统返回查询到的信息,查询失败返回空白页面。
3 软件概要设计
3.1 软件结构
3.1.1 系统功能结构
图3-1 系统功能划分
3.2 数据结构
3.2.1 概念模型
概念模型:
图3-2 概念模型
3.2.2 物理模型
物理模型:
图3-3 物理模型
3.3 数据库表设计
表3-1 department表
列名 | 数据类型 | 空/非空 | 主外键 | 备注 |
Id Name Remark | Int Varchar Varchar | 非空 非空 非空 | 主键 | 部门ID 部门名称 备注 |
表3-2 kq表
列名 | 数据类型 | 空/非空 | 主外键 | 备注 |
Id Lx Time Remark Staff_id End_ts Cdzt Jbh Week | Int Varchar Varchar Varchar Int Varchar Varchar Varchar Int Varchar | 非空 非空 非空 非空 非空 非空 非空 非空 非空 非空 | 主键 外键 | 考勤ID 考勤类型 考勤日期 备注 员工ID 开始时间 结束时间 迟到早退 加班时长 周几 |
表3-3 notice表
列名 | 数据类型 | 空/非空 | 主外键 | 备注 |
Id Title Create_time Content | Int Varchar Varchar Varchar | 非空 非空 非空 非空 | 主键 | 部门ID 部门名称 备注 内容 |
表3-4 qj表
列名 | 数据类型 | 空/非空 | 主外键 | 备注 |
Id Staff_id Time Msg Lx Result cts | Int Int Varchar Varchar Varchar Varchar Varchar | 非空 非空 非空 非空 非空 非空 非空 | 主键 外键 | 请假ID 员工ID 请假日期 请假原因 请假类型 审核状态 提交时间 |
表3-5 staff表
列名 | 数据类型 | 空/非空 | 主外键 | 备注 |
Id Username Password Sex Photo | Int Varchar Varchar Varchar Varchar | 非空 非空 非空 非空 非空 | 主键 | 员工ID 员工名 密码 员工性别 员工头像 |
表3-6 user表
列名 | 数据类型 | 空/非空 | 主外键 | 备注 |
Id Username Password | Int Varchar Varchar | 非空 非空 非空 | 主键 | 管理员ID 管理员名 密码 |
表3-7 wages表
列名 | 数据类型 | 空/非空 | 主外键 | 备注 |
Id Remark Staff_id Wmonth Ymoney Smoney Awmoney Fmoney Cdzt_num Kg_num Qj_num Sb_num Jb_h Jb_money | Int Varchar Int Varchar Float Float Float Float Int Float Float Float Int float | 非空 非空 非空 非空 非空 非空 非空 非空 非空 非空 非空 非空 非空 非空 | 主键 外键 | 工资ID 备注 员工ID 月份 应发工资 实发工资 奖励金额 处罚金额 迟到早退天数 旷工天数 请假天数 上班天数 加班时长 加班费 |
3.4 包图
图3-4 包图
3.5 类设计
3.5.1部门模块
图3-5 部门类图
3.5.2 考勤模块
图3-6 考勤类图
3.5.3 请假模块
图3-7 请假类图
3.5.4 员工模块
图3-8 员工类图
3.5.5 工资模块
图3-9 工资类图
4 软件详细设计
软件详细设计主要展现工作过程及界面和系统的交互。
4.1 时序图
4.1.1 部门模块
(1)增加部门
图4-1 增加部门
(2)删除部门
图4-2 删除部门
4.1.2 考勤模块
(1)查询考勤信息
图4-3 查询考勤信息
4.1.3 用户模块
(1)修改用户
图4-4 修改用户
4.2 协作图
4.2.1 部门模块
(1) 新增部门
图4-5 新增部门
作用:增加一个部门。
前置条件:点击部门信息管理界面的“添加”。
后置条件:系统检测输入的数据,合法更新部门表(department),不合法提示请检查你输入的数据。
伪代码:
DepartmentController : add(Department department)→
DepartmentService.add (Department department);
return Msg;
DepartmentService : add (Department department)→
DepartmentMapper. addDepartment (Department department);
return n;
DepartmentMapper : addDepartment (Department department)→
addDepartment (Department department);
(2) 删除部门
图4-6 删除部门
作用:删除选定部门。
前置条件:进入部门信息管理界面,选定对象,点击“删除”。
后置条件:系统更新部门信息表(department)
伪代码:
DepartmentController : remove(Integer id)→
DepartmentService. remove (Integer id);
return Msg;
DepartmentService : remove (Integer id)→
DepartmentMapper. remove Department (Integer id);
return n;
DepartmentMapper : remove Department (Integer id)→
remove Department (Department department);
4.2.2 考勤模块
(1) 查询考勤
图4-7 查询考勤
作用:查询特定的考勤信息。
前置条件:在考勤信息管理界面的搜索框中输入关键字,点击“搜索”。
后置条件:系统检测输入的数据,合法返回数据,不合法返回空白界面。
伪代码:
KQController : selectAll(String name,String department)→
KQService. SelectAll (String name);
return Msg;
KQService : selectAll (String name,String department)→
KQMapper. selectAll (String name,String department);
return list;
KQMapper : selectAll (String name,String department)→
selectAll (String name,String department);
(2)删除考勤
(%1)
图4-8 删除考勤
作用:删除选中的考勤信息。
前置条件:进入考勤信息管理界面,选定信息,点击“删除”。
后置条件:系统更新考勤信息表(Kq)。
伪代码:
KQController : remove(Integer id)→
KQService. remove (Integer id);
return Msg;
KQService : remove (Integer id)→
KQMapper. removeKQ (Integer id);
return n;
KQMapper : removeKQ (Integer id)→
removeKQ (Integer id);
4.2.3 员工模块
(1)新增员工
图4-9 新增员工
作用:增加一条员工信息。
前置条件:点击员工信息管理界面的“添加”。
后置条件:系统检测输入的数据,合法更新员工表(staff),不合法提示请检查你输入的数据。
伪代码:
StaffController : add(Staff staff)→
StaffService.add (Staff staff);
return Msg;
StaffService : add (Staff staff)→
StaffMapper. addStaff(Staff staff);
return n;
StaffMapper : addStaff (Staff staff)→
addStaff (Staff staff);
(2)修改员工
图4-10 修改员工
作用:对员工信息进行修改。
前置条件:选定要修改的员工,点击“修改”。
后置条件:系统检测输入的数据,合法更新员工表(staff),不合法提示请检查你输入的数据。
伪代码:
StaffController : update(Staff staff)→
StaffService. update (Staff staff);
return Msg;
StaffService : update (Staff staff)→
StaffMapper. updateById (Staff staff);
return n;
StaffMapper : updateById(Staff staff)→
updateById(Staff staff);
4.2.4 工资模块
(1)新增工资
图4-11 新增工资
作用:增加一条工资。
前置条件:点击工资管理界面的“添加”。
后置条件:系统检测输入的数据,合法更新工资表(wages),不合法提示请检查你输入的数据。
伪代码:
WagesController : add(Wages wages)→
WagesService.add (Wages wages);
return Msg;
WagesService : add (Wages wages)→
WagesMapper. addWages(Wages wages);
return n;
WagesMapper : addWages (Wages wages)→
addWages(Wages wages);
(2)修改工资
图4-12 修改工资
作用:修改工资。
前置条件:点击工资管理界面的“修改”。
后置条件:系统检测输入的数据,合法更新工资表(wages),不合法提示请检查你输入的数据。
伪代码:
WagesController : update(Wages wages)→
WagesService. update (Wages wages);
return Message;
WagesService : update (Wages wages)→
WagesMapper. updateByPrimaryKey (Wages wages);
return n;
WagesMapper : updateByIdWages wages)→
updateById(Wages wages);
5 软件实现
5.1 软件功能模块的实现
5.1.1 部门管理
(1)添加部门
管理员往部门表(department)中添加信息。
图5-1 添加部门
具体代码:
if(isEmpty(department.getName()){
ret.put(“type”,“error”);
ret.put(“Msg”,“部门名字不能为空!”);
return ret;
}
If(dli!=null&&dli.size()>0){
ret.put(“type”,“error”);
ret.put(“Msg”,“部门名称不能重复!”);
return ret;
}
(2)删除部门
从数据库中删除一条部门信息。
图5-2 删除部门
具体代码:
If(ids == null || ids.length == 0){
ret.put(“type” ,“error”);
ret.put(“Msg”,“请选择要删除的数据!”);
return ret;
}
If(Arrays.aslist(ids),“,”) ,<= 0 ){
ret.put(“type” ,“error”);
ret.put(“Msg”,“删除失败!”);
return ret;
}else{
ret.put(“type” ,“success”);
ret.put(“Msg”,“部门删除成功!”);
}
5.1.2 考勤管理
(1) 添加考勤
添加一条考勤信息。
图5-3 添加考勤
具体代码:
if(kq.getClazzId()) == null){
ret.put(“type”,“error”);
ret.put(“Msg”,“所属部门不能为空!”);
return ret;
}
if(kqli!= null&&kqli.size()>0){
ret.put(“type”,“error”);
ret.put(“Msg”,“该用户考勤已添加,请勿重复操作”);
return ret;
}else{
ret.put(“type”,“error”);
ret.put(“Msg”,“考勤添加成功!”);
}
(2)删除考勤
图5-4 删除考勤
具体代码:
if(ids == null || ids.length == 0){
ret.put("type", "error");
ret.put("Msg", "请选择要删除的数据!");
return ret;}
try {
if(Arrays.asList(ids), ",") <= 0){
ret.put("type", "error");
ret.put("Msg", "删除失败!");
return ret;
}else{
ret.put("type", "success");
ret.put("Msg", "考勤删除成功!");
return ret;
}
5.1.3 员工管理
(1)查询员工
从数据库中查询员工信息。
图5-5 查询员工
具体代码:
if("2".equals(attribute.toString())){
if(clazzId != null){
queryMap.put("clazzId", clazzId);}
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
ret.put("rows", staffService.findList(queryMap));
ret.put("total", staffService.getTotal(queryMap));
return ret;
}}
(2)修改员工
修改员工信息
图5-6 修改员工
具体代码:
if(StringUtils.isEmpty(staff.getUsername())){
ret.put("type", "error");
ret.put("Msg", "员工姓名不能为空!");
return ret;
}else{
ret.put("type", "success");
ret.put("Msg", "员工修改成功!");
return ret;
}
6 软件测试
6.1 软件测试
软件测试根据实际输出和预期输出的对比,编程行业发展到成熟自然就产生了软件测试,随着软件编程的发展,人们对软件测试的理解也越来越深[7]。测试除了要找出错误,也给制定者发现漏洞提供了依据,使后期的软件维护变得方便[9]。
6.2 单元测试
6.2.1 等价类测试
等价类是将所有可能输入的数据划分。
(1)系统管理模块
表6-1 管理员登录等价类划分
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
用户名 密码 | 除特殊字符外 6-14位 英文数字 | 1 2 3 | 无效字符或空 密码长度<6位 密码长度>14位 除英文、数字外 | 4 5 6 7 |
(1) 基础信息模块
表6-2 添加员工信息等价类划分
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
员工头像 员工姓名 登录密码 所属部门 员工性别 电话 备注 | 图片 除特殊字符外 6-14位 汉字 汉字 11位 除特殊字符外 | 1 2 3 4 5 6 7 | 字符 无效字符或为空 密码长度<6位 密码长度>14位 无效字符或为空 无效字符或为空 长度<11位 长度>11位 无效字符或为空 | 8 9 10 11 12 13 14 15 16 |
6.2.2 Junit测试
Junit测试如下:
Public class Test1{
@Test
Public void test(){
Staff s1 = new Staff();
s1.setPassword(“123456”);
s1.setPhone(“18660822867”);
s1.setRemark(“哈哈哈”);
s1.setSex(“男”);
s1.setUsername(“辉哥”);
}
}
图6-1 测试成功图
6.3 测试结论
软件测试需要专业的人士指导,为了保证软件的满足需求,需要进行多次测试,这样测试的完整性和认可度才会得到保证[10]。
参考文献
[1] 浅谈加强会计集中核算中的工资核算和管理[J].王云海。财经界(学术版).2018(02)
[2] 企业工资管理岗位绩效实施中的问题与对策研究[J].李梅.中国国际财经(中英文).2018(01)
[3] JAVA和C++实现面向对象方法的分析[J].张胜利,王鹏.电子技术与软件工程.2017(23)
[4] 企业职工工资管理系统研究[J].王翔.无线互联科技.2017(12)
[5] 面向对象编程在网站中的应用[J].赵衍.电子技术与软件工程.2017(12)
[6] 刍议人事工资管理工作中信息化建设的作用[J].刘晴晴.时代金融.2016(24)
[7] 软件测试技术分析[J].邓松泉.新商务周刊.2018(21)
[8] 企业工资管理岗位绩效实施探讨[J].邱东萍.价值工程.2015(04)
[9] 软件测试技术现状与发展趋势研究[J].赵宇,王端荣,陈必泉.信息与电脑(理论版).2017(16)
[10] 计算机软件开发的数据库测试技术探讨[J].于海杰.电脑知识与技术.2020(30)
致谢
我坐在电脑前,看着“致谢”两个字,竟然觉到了一丝不真实。四年时间,转瞬即逝。从一开始的不适应到彼此熟悉,熟悉了同学,熟悉了老师,熟悉了校园里的每一寸土地。谢谢你们,都是因为你们,我的大学生活才如此美好。
第一个熟悉的老师就是李博老师,C语言的King,一开始其实就领教到计算机的难点,考了三次试,最后一次才勉强通过。李博老师就是那种很负责的,也很风趣,尤其喜欢你的东北口音,是枯燥课堂上的兴奋剂。Java面向对象的设计,于丽萍老师,包括软件开发这门课,于丽萍老师讲话让人自然而然就感觉到很温柔,很舒服。印象中讲课都是站着,兢兢业业,生动形象。毛艳艳老师,计算机组成原理,我很喜欢的课,因为能明白计算机到底是怎么运作的,很认真的一位老师。唐焕玲老师,上唐老师的课,一定要打起12分的精神,因为她的那种课堂上的状态会自然而然的带动你,很有激情也很认真负责,其实唐老师也是那种很有趣的老师。谢青松老师,第一次见谢青松老师,就有一种一定要学好操作系统这门课的动力。每一次上他的课,就仿佛一位智者,在跟你对话,跟学生互动也比较好,即使学生说错了,也不会怎么批评,更多的是鼓励。姜平老师,数据库的老师,不苟言笑的一位老师,但是给人的感觉绝不是冷漠,而是一种安全感,更多的教会我们如何做人。王建华老师,很喜欢的一位老师,好像就从来没有发过火,阳光都变得温柔了,日语确实在她的教导下,学的不错。还有我们的数学老师,李小红老师,微积分真的好难,可是我不敢懈怠,因为李老师是那种不会让你落下的那种老师。代金辉老师,每次上课必提问,挨个的,提问到我之前,我真的会特别特别认真听课。余远老师,我记得当时离散数学有平时分,主动举手回答问题,我两次课就回答完五次了,导致后面就没仔细听,不过复习周也有很好好复习。
当然还有吴瑕老师,当时我开题报告很晚才确定,题目一直想不好,也是拜托吴老师给我想的题目,真的是很好的一位老师。
经过这次论文编写,发现了,之前上的每一种课,都有它存在的价值。都会在今后,运用到你需要的地方。真的很感谢这四年,各位老师的付出。我会一直铭记于心,向着更远处、更高处探索。
好博客就要一起分享哦!分享海报
此处可发布评论
评论(0)展开评论
展开评论