1.问题描述
一个公司下分为若干部门,每个部门有若干职员和经理,每个部门经销若干种商品。工资由基本工资、产品销售业绩奖、若干种保险的扣除等组成。其中的销售业绩奖按以下方式设计:职员按其完成额的 5% 提成,经理按其部门完成额的 1% 提成。每个月要生成一个工资表,每年年末再按个人的总销售额发放 1% 的奖金。
2.问题分析
根据问题的描述,我们对题目进行分析,提取其中的:“部门”、“员工”、“工资”、等关键词对系统进行子模块的划分,初步划分为:员工信息管理模块、部门信息管理模块、工资信息管理模块以及登录模块。
员工信息管理模块
主要负责所有员工的基本信息管理,包括基础员工编号、姓名、工资、保险、部门编号等信息。管理员可对员工信息进行管理,员工可利用自己的编号查询信息。
- 增加员工:
- 增加一个新员工的基本信息。
- 修改员工信息:
- 对员工基本信息进行修改。
- 删除员工:
- 删除一个员工的基本信息及其工资信息。
- 查询员工信息:
- 根据员工编号查询员工基本信息。
部门信息管理模块
主要对各个部门的信息进管理,包括部门编号,部门名称以及部门人员调整等功能。管理员可以对部门信息进行管理,员工可根据自己的部门编号查看部门基本信息。
- 增加部门:
- 增加一个部门的基本信息。
- 修改部门信息:
- 对部门基本信息进行修改。
- 删除部门:
- 删除一个部门的基本信息并将该部门下所有员工已入“无”部门。
- 查询部门信息:
- 根据部门编号查询部门基本信息。
工资信息管理模块
主要对所有员工的工资进行管理,包括录入员工销售成绩,生成员工月/年工资表,以及显示等功能。员工可根据员工编号和时间查询自己的工资表。
- 录入员工销售金额:
- 根据提供的各部门销售金额表,将全体员工的本月销售金额信息录入系统,为生成工资表做准备。
- 生成月/年工资表:
- 根据员工对应时间内的销售成绩以及基本信息,计算生成员工的月/年工资表并存储,为查询工资表做准备。
- 查询工资表:
- 根据员工编号查询员工的所有月/年工资表。
登录模块
管理员对系统进行操作时,需提前登录,验证身份通过后方可对系统进行操作。
3.需求分析
识别参与者
该系统的参与者有公司管理员与各部门销售员工(包括经理)。
- 员工信息管理模块:
- 参与者为公司管理员与各部门销售员工,管理员对各功能拥有完全控制权限,销售员工(包括经理)只能查看员工的基本信息。
- 部门信息管理模块:
- 参与者为公司管理员与各部门销售员工,管理员对各功能拥有完全控制权限,销售员工(包括经理)只能查看部门的基本信息。
- 工资信息管理模块:
- 根据员工编号查询员工的所有月/年工资表。
- 登录模块:
- 参与者为公司管理员,管理员对系统进行操作时,需提前登录,验证身份通过后方可对系统进行操作。
识别用况
员工信息管理
用况:添加员工
- [前置条件:管理员已经登录成功]
- 管理员进入添加员工信息界面
- 输入员工具体信息(员工编号、员工姓名、所属部门、员工级别、员工基本工资)
- 管理员查询所有部门信息
- 管理员添加员工信息
- 若输入员工信息校验通过并存储,显示添加成功。
- 若输入员工信息校验或存储出现异常,显示异常信息。
用况:修改员工信息
- [前置条件:管理员已经登录成功]
- 管理员进入修改员工信息界面
- 输入员工编号。
- 系统查询该员工基本信息并显示,若出现异常则显示异常信息。
- 管理员修改员工信息并存储
- 若输入员工信息校验通过并存储,显示添加成功。
- 若输入员工信息校验或存储出现异常,显示异常信息。
用况:查询员工信息
- [前置条件:管理员已经登录成功,若为普通用户则无条件]
- 管理员进入查询员工信息界面并输入员工编号
- 若系统查询员工基本信息成功,显示该员工基本信息。
- 若出现异常,显示异常信息。
用况:删除员工
- [前置条件:管理员已经登录成功]
- 管理员进入删除员工信息界面
- 输入员工编号。
- 若删除员工信息成功
- 删除该所有工资信息。
- 显示成功信息。
- 若删除员工出现异常
- 显示异常信息。
用况:查询部门信息
- [前置条件:管理员已经登录成功,若为普通用户则无条件]
- 管理员进入查询部门信息信息界面并输入部门编号
- 若查询成功,显示部门基本信息。
- 若发生异常,显示异常信息。
用况:登录
- 管理员进入登录界面输入用户名与密码
- 若校验通过,显示登录成功并跳转。
- 若校验失败,显示错误信息。
- 若发生异常,显示异常信息。
部门信息管理
用况:添加部门
- [前置条件:管理员已经登录成功]
- 管理员进入添加部门信息界面并输入部门具体信息(部门编号、部门名称)
- 若输入部门信息校验通过并存储,显示添加成功。
- 若输入部门信息校验或存储出现异常,显示异常信息。
用况:修改部门信息
- [前置条件:管理员已经登录成功]
- 管理员进入修改部门信息界面
- 输入部门编号。
- 系统查询该部门基本信息并显示,若出现异常则显示异常信息。
- 管理员修改部门信息并存储
- 若输入部门信息校验通过并存储,显示添加成功。
- 若输入部门信息校验或存储出现异常,显示异常信息。
用况:查询部门信息
- [前置条件:管理员已经登录成功,若为普通用户则无条件]
- 管理员进入查询部门信息界面并输入部门编号
- 若查询成功,显示部门基本信息。
- 若发生异常,显示异常信息。
用况:删除部门
- [前置条件:管理员已经登录成功]
- 管理员进入删除部门信息界面
- 输入部门编号。
- 若删除部门信息成功
- 将该部门下所有员工信息移动至“无”部门。
- 显示成功信息。
- 若删除部门出现异常
- 显示异常信息。
用况:登录
- 管理员进入登录界面输入用户名与密码
- 若校验通过,显示登录成功并跳转。
- 若校验失败,显示错误信息。
- 若发生异常,显示异常信息。
工资信息管理
用况:录入员工销售金额
- [前置条件:管理员已经登录成功]
- 管理员进入工资信息录入界面
- 选择销售金额信息所在的文件。
- 系统读取文件信息并保存
- 若保存成功,显示录入完成。
- 如出现异常,显示异常信息。
用况:生成工资表
- [前置条件:管理员已经登录成功]
- 管理员进入工资表生成界面
- 输入员工编号和时间信息(某月或某年)。
- 系统生成并存储工资表
- 若保存成功,显示生成完成。
- 如出现异常,显示异常信息。
用况:查询工资表
- [前置条件:管理员已经登录成功,若为普通用户则无条件]
- 管理员进入工资表查询界面
- 输入员工编号及时间信息
- 系统查询工资表
- 若查询成功,显示工资表。
- 若发生异常,显示异常信息。
用况:登录
- 管理员进入登录界面输入用户名与密码
- 若校验通过,显示登录成功并跳转。
- 若校验失败,显示错误信息。
- 若发生异常,显示异常信息。
用况:
-查询工资表 --管理员进入查询工资表界面,输入需要查询工资表的员工编号,结果显示具体销售信息。
–销售人员进入查询工资表界面,结果显示本人具体销售信息。
-生成年工资表 管理员进入生成年工资表界面,输入需要生成年工资表的员工编号,结果显示该员工的年工资表具体信息。
-生成月工资表 管理员进入生成月工资表界面,输入需要生成月工资表的员工编号,结果显示该员工的月工资表具体信息。
4.系统分析
类图
E-R 图
实体的属性
- -员工:员工编号,基础工资,员工姓名,员工等级,部门编号,保险金额
- -工资信息:总工资,保险金额,员工编号,月工资,年工资
- -部门:部门编号,部门名称
实体之间的关系
- -员工查找工资(一对一联系),一个员工只查找一份工资信息,一份工资信息只由一个员工查找。
- -部门包含员工(一对多联系),一个部门包含多个员工,一个员工只属于一个部门。
数据表基本属性
表一:工资管理员
字段名称 | 数据类型 | 长度 | 主键 | 外键 | 是否为空 |
---|---|---|---|---|---|
用户名 | varchar | 45 | 是 | 否 | 否 |
密码 | varchar | 45 | 否 | 否 | 否 |
表二:员工信息
字段名称 | 数据类型 | 长度 | 主键 | 外键 | 是否为空 |
---|---|---|---|---|---|
员工编号 | int | 10 | 是 | 是 | 否 |
员工姓名 | varchar | 45 | 否 | 否 | 否 |
员工等级 | varchar | 10 | 否 | 否 | 否 |
部门编号 | int | 10 | 否 | 否 | 否 |
基础工资 | int | 10 | 否 | 否 | 否 |
保险金额 | int | 10 | 否 | 否 | 否 |
表三:部门信息
字段名称 | 数据类型 | 长度 | 主键 | 外键 | 是否为空 |
---|---|---|---|---|---|
部门编号 | int | 10 | 是 | 是 | 否 |
部门名称 | varchar | 45 | 否 | 否 | 否 |
表四:工资信息
字段名称 | 数据类型 | 长度 | 主键 | 外键 | 是否为空 |
---|---|---|---|---|---|
工资编号 | int | 10 | 是 | 否 | 否 |
员工标号 | int | 10 | 是 | 否 | 否 |
销售金额 | int | 10 | 否 | 否 | 否 |
奖金金额 | int | 10 | 否 | 否 | 否 |
所属月份 | varchar | 45 | 否 | 否 | 是 |
所属年份 | varchar | 45 | 否 | 否 | 否 |
实际工资 | int | 10 | 否 | 否 | 是 |
年表标志 | int | 10 | 否 | 否 | 否 |
计算标识 | int | 10 | 否 | 否 | 否 |
时序图
登录
管理员通过点击登录按钮进入登录界面,登录界面创建登录服务。管理员将登录信息(用户名和密码)输入,与数据库内已储存的数据进行比对,验证登录信息。
员工信息管理
增加员工:
管理员通过点击员工信息管理按钮进入员工信息管理界面,员工管理界面创建员工信息服务。管理员将增加的员工信息输入,将员工信息存入数据库。
-删除员工:
管理员通过点击员工信息管理按钮进入员工信息管理界面,员工信息管理界面创建员工信息服务。管理员将需要删除员工的编号输入,根据员工编号在数据库内找到相应员工信息,进行员工的删除。
-查询员工信息:
管理员通过点击员工信息管理按钮进入员工信息管理界面,员工信息管理界面创建员工信息服务。管理员将需要查询员工的编号输入,根据员工编号在数据库内找到相应员工信息,进行员工信息的查询。
-修改员工信息:
管理员通过点击员工信息管理按钮进入员工信息管理界面,员工信息管理界面创建员工信息服务。管理员将需要修改员工的编号输入,在员工信息查询后,根据员工编号在数据库内找到相应员工信息更新数据库内数据,进行员工信息的更新。
部门信息管理
-增加部门:
管理员通过点击部门信息管理按钮进入部门信息管理界面,部门管理界面创建部门信息服务。管理员将增加的部门信息输入,将部门信息存入数据库。
-删除部门:
管理员通过点击部门信息管理按钮进入部门信息管理界面,部门信息管理界面创建部门信息服务。管理员将需要删除部门的编号输入,根据部门编号在数据库内找到相应部门信息,进行部门及该部门的员工的删除。
-查询部门信息:
管理员通过点击部门信息管理按钮进入部门信息管理界面,部门信息管理界面创建部门信息服务。管理员将需要查询部门的编号输入,根据部门编号在数据库内找到相应部门信息,进行部门信息的查询。
-修改部门信息:
管理员通过点击部门信息管理按钮进入部门信息管理界面,部门信息管理界面创建部门信息服务。管理员将需要修改部门的编号输入,在部门信息查询后,根据部门编号找到相应部门信息并数据。
工资信息管理:
-录入员工销售金额:
管理员通过点击工资管理按钮进入工资管理页面,工资管理页面创建工资服务,管理员选择本月的销售记录文件,系统自动读取文件信息整理后存储。若成功存储返回成功,失败则返回异常信息。
-生成工资表:
管理员通过点击工资管理按钮进入工资管理页面,工资管理页面创建工资服务,管理员输入员工编号与时间,系统查询该员工的工资信息并整理计算并重新存储,若成功存储返回成功,失败则返回异常信息。
-查询工资表:
管理员通过点击工资管理按钮进入工资管理页面,工资管理页面创建工资服务,管理员输入员工编号与时间,系统查询该员工的工资信息并显示。若成功查询返回成功,失败则返回异常信息。
5.开发环境及开发技术
开发环境
本项目由使用 javaEE+mysql(远程服务器)开发,javaEE 的集成开发环境为 idea。
- JDK 版本:1.8_211
- Tomcat 版本:8.5.35
- idea 版本: 2018.2.8 (Ultimate Edition)
- MySQL 版本:5.7
- 本地开发机器系统及版本:Mac OS X 10.15
- 远程服务器系统及版本:Windows server 2012 R2
开发技术
项目采用原生 javaEE(jsp+servlet)配合 MySQL 数据库完成开发。在系统架构方面采用分层架构,主要分为 Web 层、servlet 层、service 层以及 dao 层。
Web 层负责与用户交互,包括获取用输入的数据及向用户展示所需要的数据,获取输入数据主要通过表单及超链接完成。向用户展示数据则通过 jstl+el 表达式来获取后台添加在 http 请求域(request 域、session 域等)中的数据并显示来完成的。
Servlet 层负责接收前端请求,处理后将结果返回给前端。向 http 请求域添加数据便是在此处完成。
Service 层负责对 Servlet 层提供服务。设置此层的目的主要目的是:一个 servlet 可能不止操作一张表,而一个 Dao 层则操作一张表。在中间利用 servlet 进行整合,减小 servlet 层与 Dao 层的耦合。
Dao 层负责对数据库进行操作。Dao 层接收 Service 层的操作请求,对具体的数据库进行相关操作。
系统中还有一个 Model 层,主要存储模型类(即是文档中那个类图中的各个类)。JSP 则充当 view 角色,而 servlet 则是 controller 的角色。所以本项目是 MVC+ 分层的整体架构。
在项目细节方面,我们还使用了 c3p0 数据库连接池、dbutils(数据库操作)工具、fileupload(文件上传)工具、beanutils(映射 post 请求数据与实体类)工具以及 poi-ooxml(Excel 文件解析与生成)工具等。
在项目实现细节方面,我们针对可能发生的错误也进行了的程序健壮性和安全性的保证,包括粗线错误后的处理。
项目截图
- 主界面:
- 登录界面:
- 员工信息管理界面:
- 员工信息详情界面:
- 部门信息管理界面:
- 部门信息详情界面:
- 录入与生成工资表页面:
♻️ 资源
大小: 41.9MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87249029