企业工资管理系统论文.docx
《企业工资管理系统论文.docx》由会员分享,可在线阅读,更多相关《企业工资管理系统论文.docx(19页珍藏版)》请在冰豆网上搜索。
![企业工资管理系统论文.docx](https://file1.bdocx.com/fileroot1/2023-2/1/26eee190-f76b-4ff5-a4ac-79d1cb1b65be/26eee190-f76b-4ff5-a4ac-79d1cb1b65be1.gif)
企业工资管理系统论文
2014届学士学位论文
基于JSP的工资管理系统
学院计算机科学与技术学院
专业网络工程
研究方向软件开发
姓名于祥
学号20101204075
指导教师吴昕铮董晓玉
指导教师职称实验师高级讲师
2014年4月10日
基于JSP的工资管理系统
摘要:
随着计算机技术的飞速发展,现在人们全面进入了信息时代,计算机被应用在生活和工作的各个领域,电子信息管理应运而生,开创了一个新的管理平台,它具有记录准确、查询方便、使用便捷的特点。
系统设计的目的是为了提高公司对工资的管理效率,使工资管理更加方便,因此开发了工资管理系统。
本系统的设计根据公司实际的工资管理制度而设计的简单的工资管理系统,按照操作简便、界面友好、实用性好、运行安全的原则来完成企业对工资的管理。
系统开发过程中主要使用了Oracle数据库、开发语言为Java语言[1]、页面时用Jsp[2]编写的,根据系统所要求的功能需求,描述系统的总体设计,然后得出本系统的解决方案。
关键词:
工资管理;Jsp;Oracle数据库
TheWagesManagementSystem
BasedonJSP
Abstract:
Withtherapiddevelopmentofcomputertechnology,nowpeopleenteredtheinformationage,computerhasbeenappliedineveryfieldoflifeandwork,emergeasthetimesrequireelectronicinformationmanagement,tocreateanewmanagementplatform,ithasrecordedaccurately,convenientquery,usetheconvenientfeatures.
Thepurposeofdesignsystemistoimprovethecompanysalarymanagementefficiency,makemanagementmoreconvenient,sothedevelopmentofthesalarymanagementsystem。
Designandthedesignofthesystemaccordingtotheactualwagemanagementsystemsimplewagemanagementsystem,tocompletetheenterprisemanagementtothewagesinaccordancewiththesimpleoperation,friendlyinterface,goodpracticability,thesafeoperationoftheprincipleof。
IntheprocessofdevelopingthesystemmainlyusestheOracledatabase,developmentlanguagefortheJavalanguage,whenthepageiswritteninJsp,accordingtothefunctionalrequirementsofsystem,describestheoveralldesignofthesystem,thenthesystemscheme。
Keywords:
TheWagesManagement;Jsp;TheOracleDatabase
目 录
1引言
在科学技术迅猛发展的今天,企业工资管理迫切需要升级,过去单纯的人工管理已不能满足当代的需求,工资管理关系着公司的财务管理,认识管理,企业员工的工资根据各个部门的不同,具有一些共同的特征,工资的发放时间是固定的,操作上遵循共同的步骤,这就能使用计算机完成对企业的工资管理,系统本着此原则,实现员工的工资查询、工资管理、员工信息管理、员工信息查询等功能。
用户通过登录访问相应的公司的网站,经过用户名的密码的验证后普通用户就能查看自己的资料和工资情况;对管理员来说使用起来也非常方便,登陆验证后可以对企业内部员工的工资进行管理.同时为了保证工资信息的维护更合理,审核员可以登录后审核员工的工资信息.
2开发背景及环境
2.1系统开发背景
在当今社会,企业管理信息系统有着举足轻重的地位,尤其是在政府的大力支持下,计算机系统得到更广泛的应用,企业员的工资管理变得非常便利,着无疑是节省了很多人工劳动力。
随着企业工资管理系统的推行和使用,原来较繁重的工作变得简单化,计算机也具有更精确更快捷的优点.
工资管理模块式每个企业信息管理系统中不可或缺的重要组成部分,有些工资管理系统更是作为ERP软件中的一个主要模块引进的,有些是附属在企业的财务管理下,总之工资管理系统这个模块是扮演着一个很重要的角色.本系统的设计,旨在解决中小型企业的问题,而中小型企业在中国特色的社会主义企业中占很大比重,所以本系统有很大的应用前景.
2。
2项目开发环境
硬件环境包括:
PC机一台;软件环境:
操作系统是Windows7,开发工具MyEclipse8.0,数据库采用Oracle;开发语言:
Java语言[3]。
3需求分析
3。
1可行性分析
3.1。
1经济可行性分析
对于一个企业来说,财务管理中很大一部分是对员工工资的管理,所以工资管理的合理化是鼓励员工积极工作得巨大推动力,随着公司员工的急剧增加,工资管理变得非常重要,而且每个员工的职位不同,工资也不同,还有福利、惩罚等好多方面,每个员工的个人情况也不同,则工资管理难度也很大,单单靠人力来管理,这将是一项非常巨大的困难。
通过计算机管理系统的设计与管理,既能节省大量的人力物力,又能减少公司成本,在企业工资管理中将会得到更广泛的应用。
并且该系统克服了传统工资管理中易出错的问题,提高了工资管理效率,安全性和保密性极高。
3。
1.2技术的可行性分析
工资管理系统的工作主要是在企业与员工之间,能相互沟通信息和处理信息,通过计算机网络Internet技术,加强交流,便于管理,发挥计算机的信息传输速度快、准确度高的优势.当前时期,计算机的软件、硬件已经足以完成这个项目所要求的功能需求。
技术上采用Java语言编写,JSP编写页面,以MVC(Model、View、Control)为架构,利用Struts2+Hibernate3。
6[4]+Spring3.0[5],数据库采用Oracle,由于当前技术很成熟,所以技术上可以实现该系统。
3.2需求分析概述
工资管理系统对企业工资管理极其重要,本系统适合中小型企业,设计内容简单,功能完善,普通员工可以查看个人资料、个人工资、个人请假情况;审核员还可以审核员工的工资信息;而管理员的权限就更多了:
管理员工信息、管理工资、审核工资和系统管理(角色管理)等.
3.2.1功能需求分析
(1)提供用户登录,对个人信息的查询、工资查询、请假等功能
(2)提供管理员对员工的添加、修改员工信息等功能
(3)提供管理员对部门的增加、删除、修改等功能
(4)提供管理员对员工工资添加、查询、修改等功能
(5)提供管理员对角色的添加、修改、删除等功能
(6)提供管理员对工资账号的修改、冻结和激活管理
(7)提供审核员对工资的审核功能
图1。
1管理员系统模块功能图
图1。
2员工系统模块功能图
3。
2.2目标系统要求
目标系统用达到以下要求
(1)系统具有时间经济性。
逻辑设计与物理设计要简便易行,系统能够快速运行。
(2)系统具有可靠性。
系统容错能力较强,能够长时间处理业务且不会出错。
(3)系统具有可理解性。
系统操作简单,步骤明了,便于客户使用。
(4)系统具有可维护性和适应性。
系统应尽量做到修改、维护方便。
适应时代发展需求。
(5)系统具有可用性。
系统要功能齐全,满足业务需求。
(6)系统具有安全保密性.保证系统安全性,在系统中使用的加密协议做到保密。
3。
2。
3系统模块
(1)前台浏览模块:
查看个人信息:
查询个人资料、查看工资、请假以及查看自己的请假。
注:
员工只能查看个人信息。
(2)后台管理模块
管理员:
查看个人信息:
查询个人资料、查看工资、请假以及查看自己的请假;
管理员工信息:
录入员工信息、查看员工资料、处理员工请假请求;
管理员工工资:
管理工资账号、工资条管理、添加部门、维护部门信息;
会计审核管理:
审核工资条;
管理角色分配:
更改用户角色、查询/添加角色。
审核员:
查看个人信息:
查询个人资料、查看工资、请假以及查看自己的请假;
会计审核管理:
审核工资条。
3。
2.4系统设计
本系统时采用MVC(Model、View、Control)架构,结合Struts2+Hibernate3.6+Spring3。
0[6],同时整合了JDBC提高Hibernate[7]性能的不足。
另外整个系统贯穿了jQuery+Ajax[8]技术以提高用户体验度
MVC:
当前系统开发使用率很高的一种系统架构模式。
MVC作为模式:
提供一个原则,可以按照模型(model)、界面(view)、控制(control)等角色把一个应用系统的各个部分之间的耦合解脱、分割开来。
3.3数据库设计(Oracle)
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件,是目前应用最广泛的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一.ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,它是一个通用的数据库系统,不仅具有完整的数据管理功能;作为一个关系数据库,它又是一个完备关系的产品;作为分布式数据库又能实现了分布式处理功能。
数据库所需要的表如下:
数据库分析:
首先考虑员工,要建一张员工信息表,这张表要引用到性别、是否离职、工资账号状态等,所以最好建一张引用表,用来保存这些引用关系;员工要属于某个部门,在公司又要有自己的角色,所以需要部门表和角色表;本系统的设计就是为了管理工资,因此还需要一张工资表.系统的设计考虑到工资的管理,主要是对员工请假情况进行扣除工资,所以需要创建一张请假表。
具体设计表如下:
1、角色表roleInfo
、表名
列名
数据类型(精度范围)
空/非空
约束条件
其他说明
RoleId
integer
非空
主键
角色id
RoleName
Varchar(50)
非空
角色名称
表1。
1
利用客户端工具手动插入如下测试数据:
角色包括管理员、审核员、普通员工.其中管理员权限最多包括对员工工资的发放、对部门的管理、对角色的管理;普通员工只能查看个人信息和请假;审核员负责审核员工的工资条。
图2.1
2、部门工资表deptSal
表名
列名
数据类型(精度范围)
空/非空
约束条件
其他说明
deptId
number
非空
主键
id
deptName
Varchar(50)
非空
部门名称
deptDesc
Varchar(200)
非空
部门简介
baseSalary
number(8,2)
非空
基本工资
jobSalary
number(8,2)
非空
岗位工资
表1.2
工资表包括:
部门编号、部门名称、部门简介、基本工资、岗位工资。
初始化数据:
图2。
2
3、工资表salary
表名
列名
数据类型(精度范围)
空/非空
约束条件
其他说明
Id
integer
非空
主键
工资id
userId
Varchar(50)
非空
参见UserInfo表
员工id
bonus
number(8,2)
奖金
adition_work
number(8,2)
加班费
other
number(8,2)
其他福利
adition
number(8,2)
非空
请假扣除工资
total
number(8,2)
单次总工资
takeDate
Varchar(50)
非空
发工资日期
state
integer
非空
见参数表
审核状态
表1。
3
工资表是员工的工资信息,主要包括对员工的奖励、罚金和福利等方面.
4系统的详细设计与实现
4。
1登录模块
在login页面[9]输入用户名、密码及验证码之后就可以进入管理页面,根据登录人员的角色不同,进入后会跳转到不同的页面。
如员工、管理员等。
图3.1
实现代码:
publicStringlogin(){
UserInfoui=null;
if(!
session。
getAttribute(”rand")。
toString().equalsIgnoreCase(code)){
this。
addFieldError(”code”,"验证码错误!
”);
pathString=”login";
}
elseif(userInfoService.login(userInfo).size()==0){
this.addFieldError("error",”用户名或密码错误!
”);
pathString="login";
}else{
ui=userInfoService.login(userInfo).get(0);
session.setAttribute("userInfo",ui);
RoleInforoleInfo=userInfoService.selectByRoleId(userInfoService。
login(userInfo).get(0).getRole()).get(0);
session。
setAttribute(”roleInfo”,roleInfo);
pathString=SUCCESS;
}
userInfo=(UserInfo)session.getAttribute(”userInfo");
request。
setAttribute(”userInfo",userInfo);
returnpathString;
}
4。
2管理员模块
(1)管理员进入后,选择左侧的菜单栏,可以查看自己的信息,包括个人的详细资料、个人的工资情况、可以请假、还可以查看自己的请假情况。
在个人资料里可以修改自己的登录密码.
图3。
2
/**
*修改密码
*@return
*/
publicStringupdatePassword(){
UserInfouInfo=userInfoService。
selectBuyUserId(userInfo).get(0);
uInfo.setPassword(userInfo。
getPassword());
userInfoService。
updatePassword(uInfo);
//true,”更新成功!
");
returnNONE;
}
(2)管理员可以管理员工信息[10]:
添加员工、根据条件查询员工信息、处理请假请求(选择批准或撤销),批准之后就要在该员工的工资信息上扣除罚金。
图3。
3
/**
*条件查询员工
*@return
*/
publicStringselectEmployee(){
Mapconditions=newHashMap〈String,Object>();
if(userInfo。
getUserId()!
=null||!
"".equals(userInfo。
getUserId())){
conditions。
put("u。
userId”,userInfo.getUserId());
}
if(userInfo。
getName()!
=null||!
”".equals(userInfo。
getName())){
conditions.put(”u.name",userInfo.getName());
}
if(userInfo.getGender()!
=0){
conditions。
put(”gender”,userInfo.getGender());
}
if(userInfo.getLeave()!
=0){
conditions.put(”leave",userInfo。
getLeave());
}
if(userInfo.getDept()!
=0){
conditions.put(”u。
dept”,userInfo。
getDept());}
if(userInfo。
getRole()!
=0){
conditions。
put("u.role”,userInfo。
getRole());
}
if(userInfo.getNumberState()!
=0){
conditions。
put("u。
numberState”,userInfo.getNumberState());
}
if(begin!
=null&&!
”"。
equals(begin)){
conditions。
put(”begin",begin);
}
if(end!
=null&&!
"”。
equals(end)){
conditions。
put(”end",end);
}
this.printJson4Page(userInfoService。
selectEmployee(conditions,p));
returnNONE;
}
(3)管理员对员工工资的管理:
管理工资账号(管理员可以修改员工的工资账号)
图3。
4
工资条管理(根据惩罚、奖励情况自动计算出员工的工资)、添加部门信息、维护部门信息
图3.5
/**
*保存工资条
*@return
*/
publicStringsaveSalary(){
salaryService.saveSalary(salary);
returnNONE;
}
工资计算公式:
基本工资+岗位工资+奖金+加班费+福利-请假扣除(请假一天扣除100元)
基本工资和岗位工资是从部门工资表中查出来的:
SELECTBASESALARY,JOBSALARYFROMDEPTSALARYWHEREDEPTID=‘’.
奖金、加班费、福和请假扣除工资是保存到工资表中的:
INSERT
INTO
SALARY
(ADITION,ADITION_WORK,BONUS,OTHER,STATE,TAKEDATE,TOTAL,USERID,ID)
VALUES(?
,?
?
,?
?
?
,?
?
,?
)
工资管理是根据员工在本月的表现来发放工资,包括一些奖励和罚金,最终经过计算公式得出本月的总工资.
(4)角色管理[11]:
查询所有角色、添加角色
图3。
6
/**
*修改角色名
*@return
*/
publicStringupdateRoleInfo(){
roleInfoService。
updateRoleInfo(roleInfo);
returnNONE;
}
/**
*删除角色名
*@return
*/
publicStringdeleteRoleInfo(){
roleInfoService。
deleteRoleInfor(roleInfo);
returnNONE;
}
/**
*分页查询所有角色
*@return
*/
publicStringgetAllRole(){
Map〈String,Object>conditions=newHashMapthis.printJson4Page(roleInfoService。
getAllRole(conditions,p));
returnNONE;
}
4.3员工模块
(1)员工可以查看个人信息、查看个人工资
图3。
7
员工查询个人工资条:
从工资表和员工表中查询
/**
*根据用户名和发工资日期,查询工资条,确定是否已经发过
*@return
*/
publicStringselectSalary(){
intsize=salaryService.selectSalary(salary)。
size();
Listsalaries=newArrayList();
if(size==0){
this.printJson(salaries);
}else{
this。
printJson(salaryService。
selectSalary(salary).get(0));
}
returnNONE;
}
4.4审核员模块
审核员除了具有基本的员工权限(查看个人信息、个人工资、请假及请假记录),还可以审核员工的工资信息,操作包括:
通过审核和撤销审核
图3.8
/**
*审核工资
*@return
*/
publicStringupdateSalaryCheck(){
salaryService。
updateSalaryCheck(salary);
returnNONE;
}
publicSalaryServicegetSalaryService(){
returnsalaryService;
}
审核员对管理员写好的工资条惊醒审核,审核通过了才能对员工发放工资。
若是审核不能通过,则需要管理员重新修改工资条.在工资表中有state这个字段标识着审核状态。
5运行状况说明
该系统已经在个人笔记本上正常运行,对于工资管理的各个模块的功能都能实现,操作界面清晰,每个模块层次划分有序,便于操作,适用于广大群众。
本人觉得本次的系统设计很完善,功能齐全,能够完成企业工资管理系统所需要的功