《毕业设计-基于jsp的企业工资管理系统论文.doc》由会员分享,可在线阅读,更多相关《毕业设计-基于jsp的企业工资管理系统论文.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2014届学士学位论文 基于的工资管理系统 学 院 计算机科学与技术学院 专 业 网络工程 研 究 方 向 软件开发 姓 名 于祥 学 号 20101204075 指 导 教 师 吴昕铮 董晓玉 指导教师职称 实验师 高级讲师 2014 年 4 月 10 日 基于JSP的工资管理系统摘要:随着计算机技术的飞速发展,现在人们全面进入了信息时代,计算机被应用在生活和工作的各个领域,电子信息管理应运而生,开创了一个新的管理平台,它具有记录准确、查询方便、使用便捷的特点。 系统设计的目的是为了提高公司对工资的管理效率,使工资管理更加方便,因此开发了工资管理系统。本系统的设计根据公司实际的工资管理制度而
2、设计的简单的工资管理系统,按照操作简便、界面友好、实用性好、运行安全的原则来完成企业对工资的管理。系统开发过程中主要使用了Oracle数据库、开发语言为Java语言1、页面时用Jsp2编写的,根据系统所要求的功能需求,描述系统的总体设计,然后得出本系统的解决方案。关键词:工资管理;Jsp;Oracle数据库 The Wages Management System Based on JSPAbstract:With the rapid development of computer technology, now people entered the information age, compu
3、ter has been applied in every field of life and work, emerge as the times require electronic information management, to create a new management platform, it has recorded accurately, convenient query, use the convenient features. The purpose of design system is to improve the company salary managemen
4、t efficiency, make management more convenient, so the development of the salary management system.Design and the design of the system according to the actual wage management system simple wage management system, to complete the enterprise management to the wages in accordance with the simple operati
5、on, friendly interface, good practicability, the safe operation of the principle of.In the process of developing the system mainly uses the Oracle database, development language for the Java language, when the page is written in Jsp, according to the functional requirements of system, describes the
6、overall design of the system, then the system scheme.Key words: The Wages Management;Jsp ;The Oracle Database 目录1 引言12 开发背景及环境12.1 系统开发背景12.2 项目开发环境13 需求分析1 3.1 可行性分析1 3.1.1经济可行性分析13.1.2 技术的可行性分析23.2 需求分析概述23.2.1 功能需求分析23.2.2 目标系统要求33.2.3 系统模块43.2.4 系统设计43.3 数据库设计(Oracle)44 系统的详细设计与实现64.1 登录模块64.2 管
7、理员模块84.3 员工模块134.4 审核员模块145 运行状况说明166 结束语17致谢18参考文献19II1 引言 在科学技术迅猛发展的今天,企业工资管理迫切需要升级,过去单纯的人工管理已不能满足当代的需求,工资管理关系着公司的财务管理,认识管理,企业员工的工资根据各个部门的不同,具有一些共同的特征,工资的发放时间是固定的,操作上遵循共同的步骤,这就能使用计算机完成对企业的工资管理,系统本着此原则,实现员工的工资查询、工资管理、员工信息管理、员工信息查询等功能。用户通过登录访问相应的公司的网站,经过用户名的密码的验证后普通用户就能查看自己的资料和工资情况;对管理员来说使用起来也非常方便,登
8、陆验证后可以对企业内部员工的工资进行管理。同时为了保证工资信息的维护更合理,审核员可以登录后审核员工的工资信息。2 开发背景及环境2.1 系统开发背景 在当今社会,企业管理信息系统有着举足轻重的地位,尤其是在政府的大力支持下,计算机系统得到更广泛的应用,企业员的工资管理变得非常便利,着无疑是节省了很多人工劳动力。随着企业工资管理系统的推行和使用,原来较繁重的工作变得简单化,计算机也具有更精确更快捷的优点。工资管理模块式每个企业信息管理系统中不可或缺的重要组成部分,有些工资管理系统更是作为ERP软件中的一个主要模块引进的,有些是附属在企业的财务管理下,总之工资管理系统这个模块是扮演着一个很重要的
9、角色。本系统的设计,旨在解决中小型企业的问题,而中小型企业在中国特色的社会主义企业中占很大比重,所以本系统有很大的应用前景。2.2 项目开发环境 硬件环境包括:PC机一台;软件环境:操作系统是Windows7,开发工具MyEclipse 8.0,数据库采用Oracle;开发语言:Java语言3。3 需求分析 3.1 可行性分析3.1.1经济可行性分析 对于一个企业来说,财务管理中很大一部分是对员工工资的管理,所以工资管理的合理化是鼓励员工积极工作得巨大推动力,随着公司员工的急剧增加,工资管理变得非常重要,而且每个员工的职位不同,工资也不同,还有福利、惩罚等好多方面,每个员工的个人情况也不同,则
10、工资管理难度也很大,单单靠人力来管理,这将是一项非常巨大的困难。通过计算机管理系统的设计与管理,既能节省大量的人力物力,又能减少公司成本,在企业工资管理中将会得到更广泛的应用。并且该系统克服了传统工资管理中易出错的问题,提高了工资管理效率,安全性和保密性极高。3.1.2技术的可行性分析工资管理系统的工作主要是在企业与员工之间,能相互沟通信息和处理信息,通过计算机网络Internet 技术,加强交流,便于管理,发挥计算机的信息传输速度快、准确度高的优势。当前时期,计算机的软件、硬件已经足以完成这个项目所要求的功能需求。技术上采用Java语言编写,JSP编写页面,以MVC(Model、View、C
11、ontrol)为架构,利用Struts2+Hibernate3.64+Spring3.05,数据库采用Oracle,由于当前技术很成熟,所以技术上可以实现该系统。3.2 需求分析概述 工资管理系统对企业工资管理极其重要,本系统适合中小型企业,设计内容简单,功能完善,普通员工可以查看个人资料、个人工资、个人请假情况;审核员还可以审核员工的工资信息;而管理员的权限就更多了:管理员工信息、管理工资、审核工资和系统管理(角色管理)等。3.2.1 功能需求分析 (1) 提供用户登录,对个人信息的查询、工资查询、请假等功能(2) 提供管理员对员工的添加、修改员工信息等功能(3) 提供管理员对部门的增加、删
12、除、修改等功能(4) 提供管理员对员工工资添加、查询、修改等功能(5) 提供管理员对角色的添加、修改、删除等功能(6) 提供管理员对工资账号的修改、冻结和激活管理(7) 提供审核员对工资的审核功能角色管理切换用户审核工资条维护部门处理请假查看员工录入员工查看请假我的请假我的工资我的资料管理账号员工工资管理员工信息管理个人信息管理工资管理系统 角色管理会计审核管理统 添加部门激活冻结 图1.1 管理员系统模块功能图 图1.2 员工系统模块功能图3.2.2 目标系统要求目标系统用达到以下要求(1)系统具有时间经济性。逻辑设计与物理设计要简便易行,系统能够快速运行。(2)系统具有可靠性。系统容错能力
13、较强,能够长时间处理业务且不会出错。(3)系统具有可理解性。系统操作简单,步骤明了,便于客户使用。(4)系统具有可维护性和适应性。系统应尽量做到修改、维护方便。适应时代发展需求。(5)系统具有可用性。系统要功能齐全,满足业务需求。(6)系统具有安全保密性。保证系统安全性,在系统中使用的加密协议做到保密。3.2.3 系统模块(1)前台浏览模块: 查看个人信息:查询个人资料、查看工资、请假以及查看自己的请假。 注:员工只能查看个人信息。 (2)后台管理模块 管理员: 查看个人信息:查询个人资料、查看工资、请假以及查看自己的请假; 管理员工信息:录入员工信息、查看员工资料、处理员工请假请求; 管理员
14、工工资:管理工资账号、工资条管理、添加部门、维护部门信息; 会计审核管理:审核工资条; 管理角色分配:更改用户角色、查询/添加角色。审核员:查看个人信息:查询个人资料、查看工资、请假以及查看自己的请假;会计审核管理:审核工资条。 3.2.4 系统设计 本系统时采用MVC(Model、View、Control)架构,结合Struts2+Hibernate3.6+Spring3.06,同时整合了JDBC提高Hibernate7性能的不足。另外整个系统贯穿了jQuery+Ajax8技术以提高用户体验度MVC:当前系统开发使用率很高的一种系统架构模式。MVC作为模式:提供一个原则,可以按照模型(mod
15、el)、界面(view)、控制(control)等角色把一个应用系统的各个部分之间的耦合解脱、分割开来。3.3 数据库设计(Oracle) ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件,是目前应用最广泛的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,它是一个通用的数据库系统,不仅具有完整的数据管理功能;作为一个关系数据库,它又是一个完备关系的产品;作为分布式数据库又能实现了分布式处理功能。数据库所需要的表如下:数据库分析:首先考虑员工,要建一张员工信息表,这张表要
16、引用到性别、是否离职、工资账号状态等,所以最好建一张引用表,用来保存这些引用关系;员工要属于某个部门,在公司又要有自己的角色,所以需要部门表和角色表;本系统的设计就是为了管理工资,因此还需要一张工资表。系统的设计考虑到工资的管理,主要是对员工请假情况进行扣除工资,所以需要创建一张请假表。具体设计表如下:1、角色表roleInfo、表名列名数据类型(精度范围)空/非空约束条件其他说明RoleIdinteger非空主键角色id RoleNameVarchar(50)非空角色名称 表 1.1 利用客户端工具手动插入如下测试数据:角色包括管理员、审核员、普通员工。其中管理员权限最多包括对员工工资的发放
17、、对部门的管理、对角色的管理;普通员工只能查看个人信息和请假;审核员负责审核员工的工资条。 图2.12、部门工资表deptSal 表名列名数据类型(精度范围)空/非空约束条件其他说明deptIdnumber非空主键id deptNameVarchar(50)非空部门名称deptDescVarchar(200)非空部门简介baseSalarynumber(8,2)非空基本工资jobSalarynumber(8,2)非空岗位工资 表 1.2 工资表包括:部门编号、部门名称、部门简介、基本工资、岗位工资。 初始化数据: 图 2.23、工资表salary表名列名数据类型(精度范围)空/非空约束条件其他
18、说明Idinteger非空主键工资iduserIdVarchar(50)非空参见UserInfo表员工id bonusnumber(8,2)奖金adition_worknumber(8,2)加班费othernumber(8,2)其他福利aditionnumber(8,2)非空请假扣除工资totalnumber(8,2)单次总工资takeDateVarchar(50)非空发工资日期stateinteger非空见参数表审核状态 表 1.3工资表是员工的工资信息,主要包括对员工的奖励、罚金和福利等方面。4 系统的详细设计与实现4.1 登录模块 在login页面9输入用户名、密码及验证码之后就可以进入
19、管理页面,根据登录人员的角色不同,进入后会跳转到不同的页面。如员工、管理员等。 图 3.1实现代码:public String login()UserInfo ui = null;if (!session.getAttribute(rand).toString().equalsIgnoreCase(code) this.addFieldError(code, 验证码错误!);pathString = login;else if(userInfoService.login(userInfo).size() = 0)this.addFieldError(error, 用户名或密码错误!);path
20、String = login;else ui = userInfoService.login(userInfo).get(0);session.setAttribute(userInfo,ui);RoleInfo roleInfo = userInfoService.selectByRoleId(userInfoService.login(userInfo).get(0).getRole().get(0);session.setAttribute(roleInfo, roleInfo);pathString = SUCCESS;userInfo = (UserInfo) session.get
21、Attribute(userInfo);request.setAttribute(userInfo, userInfo);return pathString;4.2 管理员模块 (1)管理员进入后,选择左侧的菜单栏,可以查看自己的信息,包括个人的详细资料、个人的工资情况、可以请假、还可以查看自己的请假情况。在个人资料里可以修改自己的登录密码。 图 3.2 /* * 修改密码 * return */public String updatePassword()UserInfo uInfo = userInfoService.selectBuyUserId(userInfo).get(0);uInf
22、o.setPassword(userInfo.getPassword();userInfoService.updatePassword(uInfo);/jsonMsg(true, 更新成功!);return NONE; (2) 管理员可以管理员工信息10:添加员工、根据条件查询员工信息、处理请假请求(选择批准或撤销),批准之后就要在该员工的工资信息上扣除罚金。 图 3.3/* * 条件查询员工 * return */public String selectEmployee()Map conditions = new HashMap();if (userInfo.getUserId() != n
23、ull | !.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 ) cond
24、itions.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 & !.equ
25、als(begin) conditions.put(begin,begin);if (end != null & !.equals(end) conditions.put(end,end);this.printJson4Page(userInfoService.selectEmployee(conditions, p);return NONE;(3) 管理员对员工工资的管理:管理工资账号(管理员可以修改员工的工资账号) 图 3.4工资条管理(根据惩罚、奖励情况自动计算出员工的工资)、添加部门信息、维护部门信息 图 3.5/* * 保存工资条 * return */public String s
26、aveSalary()salaryService.saveSalary(salary);return NONE;工资计算公式:基本工资+岗位工资+奖金+加班费+福利请假扣除(请假一天扣除100元)基本工资和岗位工资是从部门工资表中查出来的:SELECT BASESALARY,JOBSALARY FROM DEPTSALARY WHERE DEPTID = 。奖金、加班费、福和请假扣除工资是保存到工资表中的: INSERT INTO SALARY (ADITION, ADITION_WORK, BONUS, OTHER, STATE, TAKEDATE, TOTAL,USERID, ID) VA
27、LUES (?, ?, ?, ?, ?, ?, ?, ?, ?) 工资管理是根据员工在本月的表现来发放工资,包括一些奖励和罚金,最终经过计算公式得出本月的总工资。(4) 角色管理11:查询所有角色、添加角色 图 3.6/* * 修改角色名 * return */public String updateRoleInfo()roleInfoService.updateRoleInfo(roleInfo);return NONE;/* * 删除角色名 * return */public String deleteRoleInfo()roleInfoService.deleteRoleInfor(ro
28、leInfo);return NONE;/* * 分页查询所有角色 * return */public String getAllRole()Map conditions = new HashMap();this.printJson4Page(roleInfoService.getAllRole(conditions, p);return NONE;4.3 员工模块(1) 员工可以查看个人信息、查看个人工资 图 3.7员工查询个人工资条:从工资表和员工表中查询 /* * 根据用户名和发工资日期,查询工资条,确定是否已经发过 * return */public String selectSala
29、ry()int size = salaryService.selectSalary(salary).size();List salaries = new ArrayList();if (size = 0) this.printJson(salaries);else this.printJson(salaryService.selectSalary(salary).get(0);return NONE;4.4 审核员模块 审核员除了具有基本的员工权限(查看个人信息、个人工资、请假及请假记录),还可以审核员工的工资信息,操作包括:通过审核和撤销审核 图 3.8/* * 审核工资 * return
30、*/public String updateSalaryCheck()salaryService.updateSalaryCheck(salary);return NONE; public SalaryService getSalaryService() return salaryService; 审核员对管理员写好的工资条惊醒审核,审核通过了才能对员工发放工资。若是审核不能通过,则需要管理员重新修改工资条。在工资表中有state这个字段标识着审核状态。 5 运行状况说明 该系统已经在个人笔记本上正常运行,对于工资管理的各个模块的功能都能实现,操作界面清晰,每个模块层次划分有序,便于操作,适用
31、于广大群众。本人觉得本次的系统设计很完善,功能齐全,能够完成企业工资管理系统所需要的功能,操作简单,根据页面提示就能够完成工资管理流程,并且该系统运行结果准确,不会出现漏洞和错误。 6 结束语在本项目的软件开发的过程中,我学会了很多知识,首先是数据库的使用更加熟悉,我完成了一个全面的面向数据库的系统开发流程。在项目的开发中,我以前学到的知识得到了充分利用,比如数据结构、程序设计、数据库、Java语言、软件工程等,对这些知识进行了巩固和应用。以前学习的很扎实的课程,但那些都是偏重理论的,缺乏良好的实践,而这次的系统设计中都得到了实践,便于更好的掌握。经过这次的项目,感到对以往学习的知识充满兴趣。
32、此外,通过此次的项目设计,我养成了从事软件开发工作中所必须的严谨的工作态度和良好的工作作风,没一点都至关重要,稍微粗心就会酿成很难更改的错误。每一个细节都是十分重要的,慎重仔细。又是碰到一些致命的错误,就要从头再来,增加很大的工作量。在开发中遇到不懂得新技术、就自己查资料,学到了好多东西。渐渐养成了独立思考的好习惯,为以后的工作打下坚实基础。经过辛勤的努力,终于做好了这个简单的系统。由于我经历的不多,知识浅薄,因此该系统设计方面还有很多不足,我会在工作得使用过程中,不断的修改,完善,争取使该系统慢慢趋向完美。 致谢本论文是在吴昕铮老师和董晓玉老师的悉心指导下完成的,在论文设计中吴昕铮老师给我了
33、许多非常宝贵的意见,十分受用,非常感谢两位老师的谆谆教导,使我能够最终完成这个系统。在这次的毕业设计中,我获益良多,懂得了如何把所学的知识运用到实践中,把以前的知识得以巩固和和扩展。在这里,我向这些无私帮助我的人表示衷心的感谢。 参考文献1张桂珠,陈爱国.Java面向对象程序设计(第2版)北京邮电大学出版社2耿祥义编著JSP基础编程M清华大学出版社,200455-1623毕广吉.Java程序设计实例教程M. 北京:冶金工业出版社,2007年4孙卫琴精通hibernateM电子工业出版社2005年4月100-1205林信良spring2.0技术手册M电子工业出版社2006年6月50-1006傅鹏
34、,殷旻昊.基于Structs+Spring+Hibernate+Ajax技术的科研管理系统设计J.软件导刊,2009.7许川佩,张民,张婧.基于Ajax的J2EE安全应用框架J.计算机工程,2010,36(4):110-111.8赵洋,张丽,王恩东等.基于Structs+Spring+Hibernate的J2EE的架构研 究J.现代电子技术,2009,2(289):107-110.9高林,周海燕.Jsp网上书店系统与案例分析M. 北京:人民邮电出版社,2004年10蔡剑,景楠.JavaWeb应用开发:J2EE和TomcatM.北京:清华大学出版社,2004.11王保罗.Java面向对象程序设计M. 北京:清华大学出版社,2003年 18