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
3、age, computer 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
4、 management 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 simp
5、le operation, 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, desc
6、ribes the overall design of the system, then the system scheme。Key words: The Wages Management;Jsp ;The Oracle Database 目录1 引言 在科学技术迅猛发展的今天,企业工资管理迫切需要升级,过去单纯的人工管理已不能满足当代的需求,工资管理关系着公司的财务管理,认识管理,企业员工的工资根据各个部门的不同,具有一些共同的特征,工资的发放时间是固定的,操作上遵循共同的步骤,这就能使用计算机完成对企业的工资管理,系统本着此原则,实现员工的工资查询、工资管理、员工信息管理、员工信息查询等功
7、能。用户通过登录访问相应的公司的网站,经过用户名的密码的验证后普通用户就能查看自己的资料和工资情况;对管理员来说使用起来也非常方便,登陆验证后可以对企业内部员工的工资进行管理.同时为了保证工资信息的维护更合理,审核员可以登录后审核员工的工资信息.2 开发背景及环境2.1 系统开发背景 在当今社会,企业管理信息系统有着举足轻重的地位,尤其是在政府的大力支持下,计算机系统得到更广泛的应用,企业员的工资管理变得非常便利,着无疑是节省了很多人工劳动力。随着企业工资管理系统的推行和使用,原来较繁重的工作变得简单化,计算机也具有更精确更快捷的优点.工资管理模块式每个企业信息管理系统中不可或缺的重要组成部分
8、,有些工资管理系统更是作为ERP软件中的一个主要模块引进的,有些是附属在企业的财务管理下,总之工资管理系统这个模块是扮演着一个很重要的角色.本系统的设计,旨在解决中小型企业的问题,而中小型企业在中国特色的社会主义企业中占很大比重,所以本系统有很大的应用前景.2。2 项目开发环境 硬件环境包括:PC机一台;软件环境:操作系统是Windows7,开发工具MyEclipse 8.0,数据库采用Oracle;开发语言:Java语言3。3 需求分析 3。1 可行性分析3.1。1经济可行性分析 对于一个企业来说,财务管理中很大一部分是对员工工资的管理,所以工资管理的合理化是鼓励员工积极工作得巨大推动力,随
9、着公司员工的急剧增加,工资管理变得非常重要,而且每个员工的职位不同,工资也不同,还有福利、惩罚等好多方面,每个员工的个人情况也不同,则工资管理难度也很大,单单靠人力来管理,这将是一项非常巨大的困难。通过计算机管理系统的设计与管理,既能节省大量的人力物力,又能减少公司成本,在企业工资管理中将会得到更广泛的应用。并且该系统克服了传统工资管理中易出错的问题,提高了工资管理效率,安全性和保密性极高。3。1.2技术的可行性分析工资管理系统的工作主要是在企业与员工之间,能相互沟通信息和处理信息,通过计算机网络Internet 技术,加强交流,便于管理,发挥计算机的信息传输速度快、准确度高的优势.当前时期,
10、计算机的软件、硬件已经足以完成这个项目所要求的功能需求。技术上采用Java语言编写,JSP编写页面,以MVC(Model、View、Control)为架构,利用Struts2+Hibernate3。64+Spring3.05,数据库采用Oracle,由于当前技术很成熟,所以技术上可以实现该系统。3.2 需求分析概述 工资管理系统对企业工资管理极其重要,本系统适合中小型企业,设计内容简单,功能完善,普通员工可以查看个人资料、个人工资、个人请假情况;审核员还可以审核员工的工资信息;而管理员的权限就更多了:管理员工信息、管理工资、审核工资和系统管理(角色管理)等.3.2.1 功能需求分析 (1)提供
11、用户登录,对个人信息的查询、工资查询、请假等功能(2)提供管理员对员工的添加、修改员工信息等功能(3)提供管理员对部门的增加、删除、修改等功能(4)提供管理员对员工工资添加、查询、修改等功能(5)提供管理员对角色的添加、修改、删除等功能(6)提供管理员对工资账号的修改、冻结和激活管理(7)提供审核员对工资的审核功能 图1。1 管理员系统模块功能图 图1。2 员工系统模块功能图3。2.2 目标系统要求目标系统用达到以下要求(1)系统具有时间经济性。逻辑设计与物理设计要简便易行,系统能够快速运行。(2)系统具有可靠性。系统容错能力较强,能够长时间处理业务且不会出错。(3)系统具有可理解性。系统操作
12、简单,步骤明了,便于客户使用。(4)系统具有可维护性和适应性。系统应尽量做到修改、维护方便。适应时代发展需求。(5)系统具有可用性。系统要功能齐全,满足业务需求。(6)系统具有安全保密性.保证系统安全性,在系统中使用的加密协议做到保密。3。2。3 系统模块(1)前台浏览模块: 查看个人信息:查询个人资料、查看工资、请假以及查看自己的请假。 注:员工只能查看个人信息。 (2)后台管理模块 管理员: 查看个人信息:查询个人资料、查看工资、请假以及查看自己的请假; 管理员工信息:录入员工信息、查看员工资料、处理员工请假请求; 管理员工工资:管理工资账号、工资条管理、添加部门、维护部门信息; 会计审核
13、管理:审核工资条; 管理角色分配:更改用户角色、查询/添加角色。审核员:查看个人信息:查询个人资料、查看工资、请假以及查看自己的请假;会计审核管理:审核工资条。 3。2.4 系统设计 本系统时采用MVC(Model、View、Control)架构,结合Struts2+Hibernate3.6+Spring3。06,同时整合了JDBC提高Hibernate7性能的不足。另外整个系统贯穿了jQuery+Ajax8技术以提高用户体验度MVC:当前系统开发使用率很高的一种系统架构模式。MVC作为模式:提供一个原则,可以按照模型(model)、界面(view)、控制(control)等角色把一个应用系统
14、的各个部分之间的耦合解脱、分割开来。3.3 数据库设计(Oracle) ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件,是目前应用最广泛的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一.ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,它是一个通用的数据库系统,不仅具有完整的数据管理功能;作为一个关系数据库,它又是一个完备关系的产品;作为分布式数据库又能实现了分布式处理功能。数据库所需要的表如下:数据库分析:首先考虑员工,要建一张员工信息表,这张表要引用到性别、是否离职、工资账号状态等,所以最好建一张引用表,用来保存
15、这些引用关系;员工要属于某个部门,在公司又要有自己的角色,所以需要部门表和角色表;本系统的设计就是为了管理工资,因此还需要一张工资表.系统的设计考虑到工资的管理,主要是对员工请假情况进行扣除工资,所以需要创建一张请假表。具体设计表如下:1、角色表roleInfo、表名列名数据类型(精度范围)空/非空约束条件其他说明RoleIdinteger非空主键角色id RoleNameVarchar(50)非空角色名称 表 1。1 利用客户端工具手动插入如下测试数据:角色包括管理员、审核员、普通员工.其中管理员权限最多包括对员工工资的发放、对部门的管理、对角色的管理;普通员工只能查看个人信息和请假;审核员
16、负责审核员工的工资条。 图2.12、部门工资表deptSal 表名列名数据类型(精度范围)空/非空约束条件其他说明deptIdnumber非空主键id deptNameVarchar(50)非空部门名称deptDescVarchar(200)非空部门简介baseSalarynumber(8,2)非空基本工资jobSalarynumber(8,2)非空岗位工资 表 1.2 工资表包括:部门编号、部门名称、部门简介、基本工资、岗位工资。 初始化数据: 图 2。23、工资表salary表名列名数据类型(精度范围)空/非空约束条件其他说明Idinteger非空主键工资iduserIdVarchar(5
17、0)非空参见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输入用户名、密码及验证码之后就可以进入管理页面,根据登录人员的角色不同,进入后会跳转到不同的页面。如员工、
18、管理员等。 图 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, ”用户名或密码错误!”); pathString = login; els
19、e 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.getAttribute(
20、”userInfo); request。setAttribute(”userInfo, userInfo); return pathString;4。2 管理员模块 (1)管理员进入后,选择左侧的菜单栏,可以查看自己的信息,包括个人的详细资料、个人的工资情况、可以请假、还可以查看自己的请假情况。在个人资料里可以修改自己的登录密码. 图 3。2 / 修改密码 * return / public String updatePassword() UserInfo uInfo = userInfoService。selectBuyUserId(userInfo).get(0); uInfo.setPa
21、ssword(userInfo。getPassword(); userInfoService。updatePassword(uInfo); /true, ”更新成功!); return NONE; (2)管理员可以管理员工信息10:添加员工、根据条件查询员工信息、处理请假请求(选择批准或撤销),批准之后就要在该员工的工资信息上扣除罚金。 图 3。3/* 条件查询员工 return / public String selectEmployee() Map conditions = new HashMapString, Object(); if (userInfo。getUserId() != n
22、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() !=
23、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 !
24、= null !”。equals(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
25、/ public String saveSalary() salaryService.saveSalary(salary); return NONE; 工资计算公式:基本工资+岗位工资+奖金+加班费+福利-请假扣除(请假一天扣除100元)基本工资和岗位工资是从部门工资表中查出来的:SELECT BASESALARY,JOBSALARY FROM DEPTSALARY WHERE DEPTID = .奖金、加班费、福和请假扣除工资是保存到工资表中的: INSERT INTO SALARY (ADITION, ADITION_WORK, BONUS, OTHER, STATE, TAKEDATE,
26、 TOTAL,USERID, ID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) 工资管理是根据员工在本月的表现来发放工资,包括一些奖励和罚金,最终经过计算公式得出本月的总工资.(4)角色管理11:查询所有角色、添加角色 图 3。6/ 修改角色名 return / public String updateRoleInfo() roleInfoService。updateRoleInfo(roleInfo); return NONE; /* 删除角色名 return */ public String deleteRoleInfo() roleInfoService。de
27、leteRoleInfor(roleInfo); return NONE; /* 分页查询所有角色 return / public String getAllRole() MapString, Object conditions = new HashMapString, Object(); this.printJson4Page(roleInfoService。getAllRole(conditions, p)); return NONE; 4.3 员工模块(1)员工可以查看个人信息、查看个人工资 图 3。7员工查询个人工资条:从工资表和员工表中查询 /* * 根据用户名和发工资日期,查询工资
28、条,确定是否已经发过 return */ public String selectSalary() 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 审核员模块 审核员除了具有基本的员工权限(查看个人信息、个人工资、请假及请假记录),还
29、可以审核员工的工资信息,操作包括:通过审核和撤销审核 图 3.8/* * 审核工资 * return / public String updateSalaryCheck() salaryService。updateSalaryCheck(salary); return NONE; public SalaryService getSalaryService() return salaryService; 审核员对管理员写好的工资条惊醒审核,审核通过了才能对员工发放工资。若是审核不能通过,则需要管理员重新修改工资条.在工资表中有state这个字段标识着审核状态。 5 运行状况说明 该系统已经在个人笔记本上正常运行,对于工资管理的各个模块的功能都能实现,操作界面清晰,每个模块层次划分有序,便于操作,适用于广大群众。本人觉得本次的系统设计很完善,功能齐全,能够完成企业工资管理系统所需要的功
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1