资源描述
届 别: 2009届
学 号: 200514070241
毕 业 设 计(论文)
基于Struts+Hibernate的
人力资源管理信息系统
姓 名 徐 慧 玲
系 别、 专 业 计 算 机 科 学 与 技 术
导 师 姓 名、职 称 刘 晓 玲 副 教 授
完 成 时 间 2008年11月4日
目 录
摘要 .............................................................Ⅰ
Abstract..........................................................Ⅱ
引言 ..............................................................1
1 概述 5
1.1 课题的目的和意义 5
1.2 人力资源管理信息系统概况 5
2 相关技术理论 6
2.1 Java语言简介 6
2.1.1 Java的特点 6
2.1.2 Java与Internet 7
2.2 J2EE体系结构介绍 7
2.3 Hibernate与STRUTS简介 8
2.3.1 关于Hibernate 8
2.3.2 STRUTS技术简介 9
2.3.3 Hibernate和STRUTS综合应用的系统架构 9
2.4 Ajax技术简介 10
3 系统需求分析 10
3.1 业务需求分析 11
3.2 功能需求分析 11
3.2.1 总体功能分析 11
3.2.2 系统用例图 11
4 系统总体设计 13
4.1 系统设计的原则和目标 13
4.2 系统体系结构的设计 14
4.2.1系统的业务模块 14
4.2.2 系统的层次结构 15
4.3数据库设计 15
4.3.1数据字典 15
5 系统详细设计与实现 19
5.1系统运行环境 19
5.2系统部署架构 19
5.3 系统时序图 19
5.4 模块功能设计与实现 20
5.4.1 登录模块 20
5.4.2系统主界面 21
5.4.3员工档案管理模块 22
5.4.4人员招聘模块 25
5.4.5 人员培训管理模块 26
5.4.6 奖惩管理模块 28
5.4.7 薪资管理模块 28
5.4.8 文件管理模块 29
5.4.9 员工自助管理模块 30
参考文献 34
谢 辞 35
引 言
随着社会的发展,邓小平的改革开放政策的实施,企业的增长有如雨后春笋,企业的增加也使得企业之间的竞争更加的激烈,而网络的诞生更是这种状态升华的催化剂。企业的
不断扩大,人力、物力的不断增加,使得以前的人工管理模式逐渐显得捉襟见肘,而信息化的管理模式的优势变得更加的明显--人力资源管理信息系统也就应运而生了。
人力资源管理信息化,不但可以更加的及时跟准确的收集信息,加强与用户之间的沟通,使得人力资源的规划和管理决策的做出可以更大程度的依赖于相关的信息,而不是仅仅靠管理人员的观点和直觉,而且可以通过表单减少员工的手上作业,即减轻员工的负担又使得工作的效率大大的提高。
据统计,目前,美国在财务会计上占有90%的工作由计算机完成,人事管理中80-100%的信息处理由计算机完成,计划管理是80—90%,在计算机应用发展较快的国家中,计算机应用于经济管理的占80%,由此可以看出,在国外经济管理是计算机应用的主要领域。我国的人事管理等信息系统的开发应用是从1973年开始的,83年以后才开始了大量的实际的开发和研究工作。因此,信息资源的开发和利用已被确立为国民经济信息的核心内容,信息数字化,传输的网络化是缩小发展中国家与发达国家差距的捷径。
网络的迅速发展,人类知识与技术的不断增长,竞争的不断扩大,任何方面都发生了日新月异的变更,而在企业中人力资源管理走向信息化更加明显。
1 概述
1.1 课题的目的和意义
自1900年以来,人力资源管理内容发生了很大变化,最初只是一些简单的操作:工资发放,员工档案记录,安排社区访问等,但现在随着企业自身人力资源的日益庞大、复杂程度逐渐增强,增加了很多管理方式,如:招聘、培训、员工调动等人机作坊再也无法适应如今企业的人事管理了。[注1]
HRIS使得人力资源规划和管理决策的做出可以在很在程度上依赖于相关信息,而不是仅仅靠管理人员的观点与直觉,这对于企业的决策者和管理者来说都至关重要。作为计算机应用的一部分,使用计算机对人事资料信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高企业人事管理系统的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
1.2 人力资源管理信息系统概况
人力资源管理信息系统(HRMIS)就是借助于计算机信息技术把现代人力资源管理理念和实践有机的结合起来,创建一种机制和管理平台。在这个系统中,计算机信息技术是支撑性的基础平台,人力资源管理流程和功能实现是目标。
人力资源管理信息系统在企业的有效实施,将会促进企业人力资源管理向规范化、标准化、决策科学化发展;促使企业人力资源管理人员从日常大量的行政事务性工作中解脱出来,逐步专注于对企业的人力资源管理活动进行计划,组织,监督和咨询职能;调动企业各级管理者和每一位普通员工都积极参与到人力资源管理活动中来。并且通过大力推进人力资源管理信息化建设,优化了企业人力资源管理流程,建立起开放式的人力资源管理模式,从而提升企业人力资源管理水平和管理效率,充分调动一切有利因素,最终使人成为企业经营发展中真正的第一资源。
人力资源管理信息系统是人力资源管理的电子信息化,是企业基于高速度、大容量的硬件和先进的IT软件的人力资源管理模式,即人力资源管理信息化或自动化。
国内目前的人力资源管理软件大多处于传统的人事管理系统阶段,它们都只有人员和机构档案的管理、简单的考勤管理和工资管理,缺少作为人力资源管理软件所必需的人员招聘与任用、培训与开发等功能。国外系统虽然业务流程非常清晰,管理非常规范,但不够灵活,通用性不强。
近年来,随着Internet的快速发展,基于web的应用系统的开发备受关
注,但目前的人力资源管理软件大多是单机系统下的应用,这样对信息的管理者和使用者来说很不方便,并且由于开发工具本身的限制,对网络功能的支持强度不强,为以后软件的升级到互联网带来了麻烦。因此,有必要开发一个基于网络的人力资源管理系统,能在网络环境下实现数据的传输。而且,人力资源管理系统不仅仅能提供给企事业单位的人事部门或人力资源部门使用,而且也能提供给单位所有的部门和员工使用,这样才能使人力资源系统发挥出更大的作用。
2 相关技术理论
2.1 Java语言简介
Java语言是一种网络计算的面向对象程序设计语言,在C++的基础上进行了极在的简化和改进,如支持多线程,网络通信和多媒体数据控制,采用自动内存分配和回收,而C++要求程序员去分配和回收等。
2.1.1 Java的特点
(1) 面向对象
Java沿用了C++的面向对象的思想,通过封装、继承和多态,为软件的开发提供了极大的灵活性、模块性、透明性和可重用性。[注2]
(2) 分布式
分布式计算涉及到几台计算机在网络上一起工作。Java的设计使分布式计算变得容易起来,由于Java开始设计了网络工作能力,因而编写网络程序如同在文件中存取数据一样。[注2]
(3) 安全
Java的编程类似C++,当Java舍弃了C++的指针对存储器地址的直接操作。程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。[注2]
(4) 可移植性
Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供了应用于不同平台的接口。
(5) 健壮性
Java非常重视及早检查错误,Java编译器可以查出许多其他语言运行时才能发现的错误。Java丢弃了其他语言中容易引起错误的某些程序概念类型,如:它不支持指针,从而避免了因重写内存而造成数据破坏的可能性。
Java具有实时异常处理的功能,该特点有助于提高程序的健壮性。Java强制程序员编写处理异常的代码,所以它能够捕获并响应意外情况,从而发生实时错误时程序能够继续正常执行错误处理代码,稳妥地结束。
2.1.2 Java与Internet
科技的发展,网络为异地信息的交换提供了快速,便捷的方式。随着Internet的普及,Internet现今一个重要的功能是用于当今的电子货币、电子商务,而传统的编程语言难以胜任电子商务系统,它要求程序代码既要安全可靠,还要能与运行于不同平台机器的全世界客户开展业务。Java凭借它在语言上无法比拟的优势成为网络编程语言,并以其强安全性、平台无关性、硬件结构无关性、语言简洁同时集面向对象等特性,应用于电子商务。
Web华丽的页面,不可思议的超链接、人机交互功能,生动的动画效果都深深吸引着访问者。Web页由浏览器装载,由Java编写的程序代码可以嵌入在Web页在浏览器上运行,可以轻松地实现动画、人机对话和事务处理等功能。Java与Web联系十分紧密,Java在Web上充分显示出它的强大功能。网络服务离不开网络服务器。
2.2 J2EE体系结构介绍
J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。 J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,如编写一次、随处运行的特性、方便存储数据库的JDBC API以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供了对现有应用程序集成强有力的支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
在J2EE开发模型中,整个系统可分为以下三个主要部分:
(1)视图(view)
视图是用户界面部分,在web应用程序中也就是HTML、XML、JSP页面。这个部分主要处理用户看到的东西即用于显示,动态JSP部分处理了用户可看见的动态网页,而静态的网页由HTML和XML输出。
(2)控制器(Control)
控制器负责网站的整个逻辑。它用于管理用户与视图发生的交互。可以将控制器想像成处在视图和数据之间,对视图如何与模型交互进行管理。通过使视图完全独立于控制器和模型,就可以轻松替换前端客户程序,即网页制作人员将可以独立自由地改变Web页面而不用担心影响这个基于Web的应用程序功能。在J2EE模型中,控制器的功能一般是由Servlet、JavaBeans、EJB中的SessionBean来充当的。
(3)模型(Module)
模型就是应用业务逻辑部分,这个部分主要角色EJB(EnterpriseJavaBeans),借助于EJB强大的组件技术和企业级的管理控制,开发人员可以轻松的创建出可重用的业务逻辑模块。
2.3 Hibernate与STRUTS简介
2.3.1 关于Hibernate
Hibernate是一种新的ORM(对象关系映射)工具,它同时提供了从Java类到数据表的映射和数据查询、恢复等机制,实现数据层对象的持久化。相对于使用JDBC和SQL来手工操作数据库,使用Hibernate可以大大减少操作数据库的工作量。并且Hibernate可以和Web服务器以及应用服务器良好的集成。
Hibernate为应用程序提供持久化服务,其体系结构如图2-1所示:
图2-1 Hibernate体系结构
Hibernate是开放源代码的对象关系映射框架,是JDBC的轻量级对象封装。Hibernate是按照LGPL许可证发布的开放式源代码应用程序,它是“用于Java的超高性能的对象/关系持久化和查询服务”[1]。
应用Hibernate,可以使Java程序员方便的用对象编程的思想,使持久性对象映射到关系数据库,而不必花费大量的开发时间去更新和维护复杂的数据持久层,降低J2EE架构应用软件开发的难度和复杂度,提高Java应用软件的开发效率,进而使Java的企业级应用开发更加容易、灵活和强大。
2.3.2 STRUTS技术简介
STRUTS是Apache组织的一个开放源码的项目,它是一个可重用的MVC设计。STRUTS应用有3个主要部件:Servlet及负责具体业务处理的Action类(Controller),JSP页面(view)和STRUTS应用的业务逻辑封装(Model)。
STRUTS实质上就是在JSP基础上实现的一个MVC框架,如图2-2所示:
图2-2 STRUTS体系结构图
其中FilterDispatcher处理客户请求,利用配置的struts文件,使用ActionProxy调用Action中的set、get方法获得提交的数据,它还调用execute方法调用业务逻辑返回字符串对象,根据ActionForward对象返回处理和响应客户请求。在STRUTS中FilterDispactcher担任了重要的角色,由它控制所有的程序流转,使MVC三个相对独立的部分协调工作,因此增强了开发人员对系统的整体把握,提高了系统的可维护性和可扩充性[3]。
2.3.3 Hibernate和STRUTS综合应用的系统架构
STRUTS和Hibernate都有自己的不足,但将两者结合起来,通过使用STRUTS技术来降低M-V-C层之间的耦合性,而利用Hibernate架构来降低业务模型部分的开发难度。结合之后的好处是采用STRUTS和Hibernate结合的应用框架开发出来的信息系统无论在整体的结构上还是在局部的复杂业务模型中都得到了更低的耦合性,它们的灵活性与可维护性也得到了提高,从而消除了单独使用这些架构开发系统的不足。
在结合MVC的系统架构设计模式和基于Hibernate的数据层持久化框架应用中,系统的应用架构如图2-3所示:
图2-3 STRUTS+Hibernate体系结构图
其中Action是view模块的数据表示,其数据来源于view模块中JSP页面的数据提交。持久层数据来源于数据库,其数据表示和数据库里的表相对应。且持久化数据可以由Hibernate动态生成。Hibernate持久化对象生成的数据满足了业务逻辑层的应用。
2.4 Ajax技术简介
Ajax全称“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它有机的包含了以下几种技术:基于web标准XHTML+CSS的表示;使用DOM进行动态显示及交互;使用XML和XSLT进行数据交换及相关操作;使用XMLHttpRequest进行异步数据查询、检索;使用JavaScript将所有的东西绑定在一起。
Ajax,使用它可以构建更为动态和响应更灵敏的Web应用程序,使浏览器可以为用户提供更为自然的浏览体验。Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。借助Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面,使用户看起来是即时响应的。
Ajax的核心是JavaScript对象XmlHttpRequest。该对象是一种支持异步请求的技术。简而言之,XmlHttpRequest使用户可以使用JavaScript向服务器提出请求并处理响应,而不是阻塞用户。在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。
3 系统需求分析
本章就该系统业务和功能需求做了分析,然后根据所做的功能分析给出了该系统的包图、系统所涉及的角色及用例图。
3.1 业务需求分析
业务需求(Business Requirement)反映了组织结构或用户对系统高层次的目标要求。对人力资源管理业务,包含的内容较为广泛,作为人力资源管理信息系统,为了保证其通用性和实用性,在需求分析阶段首先全面剖析人力资源管理业务过程,从业务操作的角度分析每个过程的输入、输出和处理细节。其次,面向业务处理过程,提取规范的业务流程建议:面向业务处理方法,结合实际情况,提取业务处理过程的每个参数等。最后,将所有问题整理出来,再进行调研,并向有关部门进行咨询,然后再经过加工整理,形成人力资源管理业务需求报告。
人力资源管理信息系统根据不同用户类型设置不同的权限,主要完成员工档案管理、招聘管理、培训管理、奖惩管理、薪资管理、文件服务、系统管理、员工自管理等功能。因此需要先根据大的方面的业务将人力资源系统分为几个子系统,然后再对每个子系统的业务进行分析。
3.2 功能需求分析
3.2.1 总体功能分析
功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足业务需求。参照业务需求分析的结果对每个业务进行细化,从而得到系统的功能模块。
根据一般公司的人力资源管理业务需求,系统应该具有以下功能:
(1)登录功能:为了防止非法用户的访问及信息保密性要求,登录模块应根据用户类型对其操作权限进行了限制。
(2)员工档案管理:应实现员工档案的增加、删除、修改等操作。
(3)招聘管理:管理员可以发布、删除招聘信息。
(4)培训管理:根据具体的情况设置人员培训,可修改、删除、添加培训信息,为员工的升迁提供科学的依据。
(5)奖惩管理:实现对奖惩信息的增加、删除等操作,为薪资、升迁等提供依据。
(6)薪资管理:实现对员工工资的录入、查询等。
(7)员工自管理:该模块强调员工自助服务,如对个人档案、薪资等信息的查询。
(8)系统管理模块:对该系统用户进行管理(增加、删除等)。
3.2.2 系统用例图
系统的功能性需求描述工具主要是用例(Use Case),即将系统的功能性需求分解到每一个系统用例。通过提供用例建模,描述开发设计的系统提供的活动和服务。按照角色(Action)识别用例(Use Case)的方法,该方法可以较为直观地建立起系统用例的层次结构,可以采用将系统用例分为不同的包,每一个包表示一组相关的系统用例。
本系统引入了包图来将不同的功能用例进行分类,每个包图作为一个系统功能模块。根据总体功能分析,设计系统包图如图3-1所示:
图3-1 人力资源管理信息系统包图
人力资源管理信息系统包含的Actor如图3-2所示:
图3-2 人力资源管理信息系统角色图
系统总用例如图3-3所示:
图3-3 人力资源管理信息系统总用例图
系统管理员负责系统系统用户的定义和权限划分、档案管理、招聘管理、培训管理、奖惩管理、薪资管理、文件管理等工作;普通员工只能查看自己相关信息。
由于人力资源管理信息系统各个模块较为相似,在此仅列出员工档案管理的用例图如图3-4所示:
图3-4 员工档案管理用例图
用例名称:员工档案管理
简要描述:系统管理员可以对员工档案信息进行添加、注销、修改、查看操作,公司职员可以查看个人档案信息。
参与者: 系统管理员、公司职员。
前置条件:系统管理员为公司职员授权。
后置条件:通过校验,系统中存在员工档案信息。
4 系统总体设计
本章先给出该系统设计的原则和目标,然后设计出符合需求分析各项要求的系统体系架
构、系统功能模块和数据库设计。
4.1 系统设计的原则和目标
设计出灵活、便捷的用户操作界面,支持多用户并发访问,合理设计数据库对象,使用Hibernate技术对数据库信息访问,使用基于STRUTS的开发模式。系统应达到以下目标:
(1)业实际需求,切合实际,提高企业人力资源管理,提高工作效率,降低成本。
(2)B/S架构,满足信息共享的需要,安装及部署方便。
(3)系统具有良好的维护性,并且可以根据用户需求做出修改,满足企业个性化需求,各个功能模块能够较容易添加和修改,可升级。
(4)能够及时更新相关数据,便于企业决策。
4.2 系统体系结构的设计
(1)该系统是以关系数据库为存储,基于Web的应用系统。由一系列组件和功能模块组成。
● 总体结构:浏览器/服务器(B/S)
● 编程模式:Jsp+Hibernate+STRUTS
● 逻辑结构:用户界面开发、业务逻辑处理和数据存储
(2)该系统联合使用业务代理和DAO模式如图4-1所示:
图4-1 系统架构图
4.2.1系统的业务模块
人力资源系统建立在基础构件和定制平台上,包括人员档案管理、招聘管理、培训管理、奖惩管理、薪资管理等业务模块,在业务模块之上,可建立查询分析等功能,用于日常工作及决策分析。由于人力资源管理信息系统对信息的敏感,不同类型的用户对信息访问特性不同,所能进行的操作也不同,因此必须对权限进行划分。
人力资源管理信息系统功能模块如图4-2所示:
图4-2 系统总体功能图
4.2.2 系统的层次结构
系统从逻辑上分为显示层、业务逻辑层、数据持久层。从程序分布位置角度,系统依次分布在浏览器、应用服务器、数据库系统三层,如图4-3所示:
图4-3 系统层次结构图
4.3数据库设计
数据库技术是信息资源管理最有效的手段。数据库设计是指针对一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。数据库结构设计的好坏直接对应用系统的效率及实现效果产生影响。合理的数据库设计可以提高数据库的存储效率、保证数据的完整性和一致性。
4.3.1数据字典
在业务模块划分及实体之间关系的基础上,形成各个表格之间的关系。人力资源管理信息系统数据库中各个表的设计结果如下所示,其中每一个表格表示数据库中的一个表。
(1)用户信息表:用来存储用户信息,表结构见表4-1
表4-1 用户信息表
字段号
字段名称
字段类型
字段大小
索引
字段说明
1
id
number
Sequence
主键
编号
2
accountno
varchar2
20
外键
用户帐号(员工编号)
3
password
varchar2
50
非空
用户密码
4
type
number
Default=0
非空
用户类型(0普通员工,1高级管理员,2普通管理员)
5
status
number
Default=0
是否注销(0未注销,1己注销)
(2)员工信息表:用来存储职工档案信息,表结构见表4-2
表4-2 员工信息表
字段号
字段名称
字段类型
字段大小
索引
字段说明
1
id
number
Sequence
主键
编号
2
nickname
varchar2
20
非空
员工姓名
3
englishname
varchar2
20
英文名
4
gender
varchar2
1
非空
员工性别
5
age
number
6
native
varchar2
50
员工籍贯
7
birthday
varchar2
30
出生日期
8
deptid
number
外键
对应部门id
9
titleid
number
外键
对应职务id
10
wphone
varchar2
20
办公电话
11
fphone
varchar2
20
家庭电话
12
email
varchar2
20
电子邮箱
13
politicalface
varchar2
4
政治面貌
14
health
varchar2
25
健康状况
15
profession
varchar2
20
专业
16
education
varchar2
15
学历
17
marry
varchar2
1
婚姻状况
18
identityid
varchar2
18
非空
身份证号
19
address
varchar2
50
现居地址
20
icon
varchar2
200
照片路径
21
enterdate
date
录入日期
22
modifydate
date
更改日期
(3)部门信息表:用来存储部门信息,表结构见表4-3
表4-3 部门信息表
字段号
字段名称
字段类型
字段大小
索引
字段说明
1
id
number
Sequence
主键
编号
2
depname
varchar2
20
非空、唯一
部门名
(4)职务信息表:用来存储各职务信息,表结构见表4-4
表4-4 职务信息表
字段号
字段名称
字段类型
字段大小
索引
字段说明
1
id
number
Sequence
主键
编号
2
titname
varchar2
20
非空
职位名称
3
dept_id
number
外键
部门id
(5)招聘信息表:用来存储发布的招聘信息,表结构见表4-5
表4-5 招聘信息表
字段号
字段名称
字段类型
字段大小
索引
字段说明
1
id
number
Sequence
主键
编号
2
content
varchar2
500
非空
招聘内容
3
issuedate
date
发布日期
(6)奖惩信息表:用来存储员工奖惩信息,表结构见表4-6
表4-6 奖惩信息表
字段号
字段名称
字段类型
字段大小
索引
字段说明
1
id
number
Sequence
主键
编号
2
rpname
varchar2
30
非空
奖惩名称
3
reason
varchar2
50
奖惩原因
4
member
varchar2
50
奖惩人员
5
descr
varchar2
200
奖惩描述
6
issuedate
date
发布日期
7
issueMem
varchar2
15
发布人员
(7)培训信息表:用来存储员工培训信息,表结构见表4-7
表4-7 培训信息表
字段号
字段名称
字段类型
字段大小
索引
字段说明
1
id
number
Sequence
主键
编号
2
tname
varchar2
20
非空
培训名称
3
tgoal
varchar2
20
非空
培训目标
4
tmaterial
varchar2
20
培训教材
5
tmember
varchar2
200
非空
参加人员
6
startdate
varchar2
20
开始日期
7
enddate
varchar2
20
结束日期
8
tnumber
number
参加人数
9
teacher
varchar2
20
培训讲师
10
grade
varchar2
10
培训级别
11
affect
varchar2
10
影响程度
12
issuedate
date
发布日期
(8)薪资信息表:用来存储员工薪资信息,表结构见表4-8
表4-8 薪资信息表
字段号
字段名称
字段类型
字段大小
索引
字段说明
1
id
number
Sequence
主键
编号
2
memberno
number
外键
员工编号
3
smonth
varchar2
8
非空
所属月份
4
basicsalary
number
非空
基本工资
5
housesalary
number
住房补助
6
extrasalary
number
额外补助
7
taxsalary
number
税收金额
8
totalbonus
number
3
全额奖金
9
forfeit
number
3
罚款金额
10
issuedate
date
发布日期
(9)文件信息表:用来存储所上传文件路径,表结构见表4-9
表4-9 文件信息表
字段号
字段名称
字段类型
字段大小
索引
字段说明
1
id
number
Sequence
主键
编号
2
loadfile
varchar2
50
非空
上传文件名
3
update
date
上传日期
4.3.2 数据库总体设计
该系统采用oracle数据库,涉及的表有:用户信息表,员工信息表,部门信息表,职位信息表,招聘信息表,培训信息表,奖惩信息表,薪资信息表,文件信息表。
人力资源管理信息系统E-R结构图如图4-4所示:
图4-4 系统E-R图
5 系统详细设计与实现
详细设计是对系统架构设计的精化,主要是在系统需求规格和架构设计的基础上,对系统用例中使用的类和对象进行进一步的精化,确定每一个类的属性和方法。
5.1系统运行环境
系统运行的操作系统为Linux,也可以移植到Windows、Unix等操作系统下执行,数据库采用Oracle 10g,应用服务器采用符合J2EE规范的Tomcat5.0应用服务器。
5.2系统部署架构
整个应用部署在一台应用服务器、一台数据库服务器上。系统可以可以使用企业内部局域网,也可以通过广域网访问系统。
5.3 系统时序图
在人力资源系统设计过程中,时序图如图5-1所示:
图5-1 系统时序图
(1)界面:在本项目中指JSP页面,在具体的时序图中被实际的页面文件所替代。
(2)ActionServlet:指Struts中的ActionServlet,是特指,在具体的时序图中也不会改变。
(3)Action:指Struts中的Action的具体实现类,在具体的时序图中被实际的类所替代。其作为控制器的一部份存在,通过拦截器,set方法进行与界面的数据传输。
(4)BO:业务逻辑操作对象(Bussiness Object),执行功能的业务逻辑职责,在具体的时序图中被实际的类所替代。如果某个功能没有业务逻辑处理,此类可以不在时序图中存在。
(5)DAO:为数据操作类处理相应的数据库操作。
(6)HibernateDataSource:数据操作实现类,用来执行实际的数据库访问。
5.4 模块功能设计与实现
5.4.1 登录模块
用户先访问index.jsp主页面,转到login.jsp进行登录,用户输入账号、密码提交,先进入JavaScript中进行简单的非空验证,后进入LoginAction,调用service层的login方法进行用户类型的判断登录。登录界面如图5-2所示:
图5-2 登录界面
在登录过程中,将对用户帐号、密码、类型等进行进一步验证,正确才能登录;否则,将会给用户弹出错误提示信息。
5.4.2系统主界面
根据用户类型的不同,用户界面分为管理员界面和公司职员界面。该设计主要是为了区分用户权限,更好的实现系统的安全性和信息的保密性。
管理员权限:员工档案管理、人员招聘管理、培训管理、奖惩管理、薪资管理、文件管理、用户管理。
公司职员权限:员工自管理,即对个人信息的管理,如个人档案、薪资的查询,密码修改等。
图5-3 管理员界面
图5-4 员工自管理界面
5.4.3员工档案管理模块
该模块主要是管理员对员工档案进行录入、修改、注销等操作。
管理员应根据员工真实信息去填写员工档案,其中员工编号必须唯一,部门、职位等信息不能为空,若出现不合规范的输入,会弹出警告信息。
图5-5 添加员工档案
管理员能够查看所有员工档案信息,并能够根据员工编号、性别、所在部门等信息对其进行检索。若员工离职,可以注销其档案。如图5-6所示:
图5-6 员工档案
图5-6 显示所有员工档案管理员能够查看员工档案详细信息,并能对其档案中部分信息进
修改,如:员工称、手机号码等。
图5-7 查询员工档案信息
在该模块中,其中职位是根据用户所选择的部门动态生成的。主要应用的是Ajax的技术,当用户去选择某个部门时,页面不产生任何跳转,查询仅在后台进行。其中使用的关键代码如下:
//根据部门查找对应的职位
function selectTitle(){
var depname = document.getElementById("depname");
var options = depname.options;
var value="";
for(var i=0;i<options.length;i++){
if(options[i].selected){
value = options[i].value;
}
}
var url="/HRIS_yilin/selectTitle";
var parameter="depname="+value;
sendAsynchronRequest(url,parameter,selectTitleCallback);
}
//解析生成的xml文件,得到该部门下所有职位信息
function clearSelect(){
var title =
document.getEl
展开阅读全文