人力资源管理系统毕业设计_第1页
人力资源管理系统毕业设计_第2页
人力资源管理系统毕业设计_第3页
人力资源管理系统毕业设计_第4页
人力资源管理系统毕业设计_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于 java 的公司人力资源管理系统 诚信承诺书 本人郑重承诺: 本人承诺呈交的毕业设计 基于 java 的公司人力资源管理系统 是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。 本人签名: 日期: 年 月 日 基于 java 的公司人力资源管理系统 摘 要 目前,社会上的各种各样的中小型企业中,所使用的人力资源管理系统大多都是基于 B/S 架构,所以,我选用当前比较热门的 Struts2+Hibernate 架构来进行本系统的搭建。同时,为了界面的美观,我使用了 EXTJS 的 javascript 技术来设计用户使用界面,为客户提供一个流畅和美观的 web 界面。数据库采用了 oracle。在数据传输方面,使用了 JSON 和 AJAX 的技术实现信息的异步操作。 根据软件开发的流程,对本系统的开发进行了需求分析,确定了系统将要实现的功能模块: 员工 信息 管理、招聘 信息 管理、培训 信息 管理、奖惩 信息 管理、薪资 信息 管理、考勤 信息 管理、 部门信息管理、管理员信息管理、职位信息 管理,这九个模块。然后根据需要,在前台实现了各个模块的增、删、改、查的操作。 本系统运用了 AJAX 技术,在登陆之后,实现了无页面跳转的数据异步加载,使得系统运行时更加流畅。 关键词: Struts2; hibernate; ExtJs; B/S 架构; Json;面向对象;人力资源管理系统; Company human resources management system based on Java Abstract At present, most of the human resource management systems used bysmall and medium enterprises are based on B/S architecture. So,current popular struts 2 + Hibernate framework was selected to build for my system. At the same time, in order to make the interface beautiful, I use the EXTJS, javascript techniques to design my user interface to use. For database, oracle was chosen. In the aspect of data transmission, I use the JSON and AJAX technology to realize the asynchronous operation. According to the software development process, development process of this system included demand analysis, determines the function modules of the system which consists of employee information management, recruitment management, training, information management, rewards and punishment information management, salary information management, attendance information management, department of information management, administrator information management, information management, position the nine modules. At last, function modules for add, delete, change, check operation are realized at the front stage. This system uses the AJAX technology, achieving no page jump asynchronous loading of data after login to make the system run more smoothly. Keywords: Struts2; Hibernate; B / S structure; ExtJs; Json; object-oriented; Human Resources 目 录 1 前言 . 1 1.1 概述 . 1 1.2 问题的现 状及其意义 . 1 1.3 本设计的目标 . 2 2 开发环境及相关技术介绍 . 3 2.1 系统开发环境 . 3 2.2 技术介绍 . 3 2.2.1 系统设计的主要技术 . 3 2.2.2 Struts2 的介绍 . 3 2.2.3 Hibernate 的介绍 . 4 2.2.4 ExtJS 的介绍 . 4 2.2.5 Json 的介绍 . 4 2.2.6 面向对象的介绍 . 5 3 系统需求分析 . 6 3.1 可行性分析 . 6 3.1.1 技术可行性 . 6 3.1.2 经济可行性 . 6 3.1.3 环境可行性 . 6 3.2 功能需求分析 . 6 4 总体设计 . 7 4.1 系统的总体功能框架设计 . 7 4.2 系统各模块用例图分析 . 8 4.3 业务流程图 . 13 4.4 数据库设计分析 . 14 4.4.1 数据库总体设计 . 14 4.4.2 数据库数据字典 . 15 5 系统详细设计 . 19 5.1 系统运行环境和部署架构 . 19 5.2 系统体系结构设计 . 20 5.3 系统业务流程 . 20 5.4 系统各模块类图 . 21 5.5 系统代码实现 . 25 5.5.1 用户登录模块实现 . 25 5.5.2 管理员管理模块实现 . 31 5.4.3 员工信息管理展示 . 37 5.4.4 部门信息管理展示 . 37 5.4.5 其他模块实现 . 38 6 系统测试 . 39 6.1 功能测试 . 39 6.2 界面测试 . 40 7 设计总结 . 41 参考文献 . 42 谢 辞 . 43 附 录 . 45 1 1 前言 1.1 概述 人力资源管理信息系统( Human Resource Information System, HRIS)是一个用来为制定人力资源决策提供信息的集成系统,是为了提高企业人力资源管理水平而开发的。主要目标是通过对员工及人力资源活动信息(招 聘、工资)等的编制来提高效率,及时与用户沟通,用最少的人力、物力满足用户需求。 人力资源管理信息系统在企业的有效实施,将会促进企业人力资源管理向规范化、标准化、决策科学化发展;促使企业人力资源管理人员从日常大量的行政事务性工作中解脱出来,逐步专注于对企业的人力资源管理活动进行计划,组织,监督和咨询职能;调动企业各级管理者和每一位普通员工都积极参与到人力资源管理活动中来。并且通过大力推进人力资源管理信息化建设,优化了企业人力资源管理流程,建立起开放式的人力资源管理模式,从而提升企业人力资源管理水平和管理效率, 充分调动一切有利因素,最终使人成为企业经营发展中真正的第一资源。 人力资源管理信息系统是人力资源管理的电子信息化,是企业基于高速度、大容量的硬件和先进的 IT 软件的人力资源管理模式,即人力资源管理信息化或自动化。 1.2 问题的现状及其意义 随着时代的发展,社会的进步, IT 领域的日新月异,越来越多的企业建立、发展、壮大、成熟。截止到 2011 年,我国工商管理局注册的企业超过了 3500 万,其中中小型企业占了 99%。这些都是人力资源管理系统的潜在客户。 随着公司的成长和壮大,公司里的员工也逐渐增加,每年的人力资源管理 的成本也不断增加,这不仅耗费公司的资金,同时也耗费了大量的人力。所以,公司需要一个系统,一个能够管理公司人力资源的系统。 近年来,一些较大的企业经常自行开发 HR 管理系统,这样可以节省他们许多不必要的浪费。但是实践证明,这个方式实现起来很难。一方面,企业内部的人员往往缺乏项目经验,结果做出的东西绝大部分不符合客户的需求;另一方面,这种形式的软件开发不参与市场竞争,仅仅是供给内部使用,极大地可能导致开发人员的敷衍了事,使得系统无法起到它的作用。 此外,就是我国正处于传统管理方式向人力资源管理过渡的时期,企业中的 管理方法和思想都在发生着巨大的变化,这是对 HR 管理系统的一个巨大的挑战。 本系统的主要针对的对象是一些中小型企业,对他们的人力资源,按照企业的需求,对其绩效考核管理、薪酬管理等进行了完善的开发。利用现在较新的技术,实现人力资源管理系统的精细化、自动化、人性化,为企业的发展做出理性的决策,提高人员的管理利用率,为公司的发展和人才储备提供一个完善的、良好的平台。 2 1.3 本设计的目标 利用现有的技术,了解人力资源管理系统开发的流程和所要实现的主要功能,同时对一些企业的内部的管理进行了解,进而对系统进行特定功能的扩 展。 另一方面,就是要打破传统人力资源管理系统的一贯的风格,打造出一个全新的,更具有亲和力的系统,使得企业的员工愿意使用本系统。 3 2 开发环境及相关技术介绍 2.1 系统开发环境 使用 B/S 架构,运行环境是 JDK1.7.0_09 服务器操作系统: Windows 7 数据库: Oracle 10G Web 服务器: apache-tomcat-6.0.32 开发工具: Myeclipse10, Ext Desiger, PL/SQL Developer, Power Desiger 2.2 技术介 绍 2.2.1 系统设计的主要技术 本人力资源管理系统是在 Extjs+Struts2+Hibernate 框架的基础上开发的。是一个典型的 J2EE 系统。所以系统也分为 表现层、业务逻辑层和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是基于 javascript的 ExtJS 技术,而数据的交互格式则使用 JSON 技术、这些在下面有详细的介绍。 主要使用技术: Struts2、 Hibernate、 ExtJs、 JavaScript、 HTML、 Json 2.2.2 Struts2 的介绍 STRUTS 是 Apache 组织的一个开放源码的项目,它是一个可重用的 MVC 设计。STRUTS 应用有 3 个主要部件: Servlet 及负责具体业务处理的 Action 类( Controller),JSP 页面( view)和 STRUTS 应用的业务逻辑封装( Model)。 STRUTS 实质上就是在 JSP 基础上实现的一个 MVC 框架 , Struts2 框架的大致处理流程如下: 1) 浏览器发送请求 2) 核心控制器 FilterDispatcher 根据请求决定调用合适的 Action 3) Web Work 的拦截器链自动对请求应用通用功能 4) 回调 Action 的 execute 方法,该方法先获取用户请求参数,然后执行某种数据库操作,既可以是将数据保存到数据库,也可以从数据库中检索信息。实际上,因为 Action 只是一个控制器,它会调用业务逻辑组件来处理用户的请求 5) Action 的 execute 方法处理结果信息将被输出到浏览器中,可以是 HTML 页面、图像,也可以是 PDF 文档或者其他文档。此时支持的视图技术非常多,既支持JSP,也支持 Velocity、 FreeMarker 等模板技术 4 2.2.3 Hibernate 的介绍 Hibernate 是一个面向 Java 环境的对象 /关系映射( ORM)工具,是 J2EE 应用的持久层解决方案, Hibernate 不仅管理 Java 类到数据库表的映射,还提供数据查询和获取数据的方法,可以大幅度缩短使用 JDBC 处理持久化的时间。 Hibernate 与其他 ORM 框架对比具有如下优点: 1) 开源和免费的 License,方便需要时研究源代码,改写源代码,进行功能定制 2) 轻量级封装,避免引入过多复杂的问题,调试容易,减轻程序员负担 3) 具有可扩展性, API 开发。功能不够用的时候,自己编码进行扩展 4) 开发者活跃,产品有稳定的发展保障 2.2.4 ExtJS 的介绍 ExtJS 是一种主要用于创建前端用户界面,是一个基本与 后台 技术无关的前端 ajax框架 。 ExtJS 可以用来开发 RIA 也即富 客户端 的 AJAX 应用,是一个用 javascript 写的,主要用于创建前端用户界面,是一个与 后台 技术无关的前端 ajax 框架 。因此,可以把 ExtJS用在 .Net、 Java、 Php 等各种开发语言开发的应用中。 ExtJs 最开始基于 YUI 技术,由开发人员 JackSlocum 开发,通过参考 JavaSwing 等机制来组织可视化组件,无论从 UI 界面上 CSS 样式的应用,到数据解析上的 异常处理 ,都可算是一款不可多得的 JavaScript客户端 技术的精品。 Ext 的 UI 组件模型和开发理念脱胎、成型于 Yahoo 组件库 YUI 和 Java 平台 上 Swing两者,并为开发者屏蔽了大量跨 浏览器 方面的处理。相对来说, EXT 要比开发者直接针对 DOM、 W3C 对象模型开发 UI 组件轻松。 2.2.5 Json 的介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 JavaScript( Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C, C+, C#, Java, JavaScript, Perl, Python 等)。这些特性使 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。 json 简单 说就是 javascript 中的对象和数组,所以这两种结构就是对象和数组 2 种结构,通过这两种结构可以表示各种复杂的结构 1、对象:对象在 js 中表示为 “”扩起来的内容,数据结构为 key: value,key: value,.的键值对的结构,在面向对象的语言中, key 为对象的属性, value 为对应的属性值,所以很容易理解,取值方法为 对象 .key 获取属性值,这个属性值的类型可以是 数字、字 5 符串、数组、对象几种。 2 、数组:数组在 js 中是中括号 “” 扩 起 来 的 内 容 , 数 据 结 构 为 java,javascript,vb,.,取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。 经过对象、数组 2 种结构就可以组合成复杂的数据结构了。 2.2.6 面向对象的介绍 随着计算机硬件设备功能的进一步提高,使得面向对象的编程成为可能。面向对象的编程更加符合人类的思维方式,编写的程序更加健壮和强大,更重要的是,面向对象编程鼓励创造性的程序设计。面向对象编程是一种先进的编程思想,更加容易解决复杂的问题。面向对象编程的主要特征有: ( 1)封装性:面向对象编程核心思想之一就是将 数据和对数据的操作封装在一起。通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类的概念。 ( 2)继承:继承体现了一种编程模式。子类可以继承父类的属性和功能,即子类继承了父类所具有的数据和数据上的操作,同时又可以增添子类独有的数据和数据上的操作。 ( 3)多态:多态性是指允许不同的类的对象对同一消息做出相应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享等优势,很好的解决了应用程序中函数同名问题。 6 3 系统需求分析 3.1 可行性分析 3.1.1 技术可行性 应 为已经基本上掌握了开发时所要使用的技术,而且在项目之外也做过一些关于这方面的 DEMO,所以在规定的时间和某些限制的条件下,功能基本可以实现,开发可以完成。 3.1.2 经济可行性 由于在系统的开发中,用到的很多技术,例如 Struts2、 Hibernate、 EXTJS3.0、 JSON等,都是开源的,所以,在开发中,基本没有什么成本的产生。这个系统经过未来的改进后,我相信它所带来的效益远远会超过它的开发成本。在经济这方面,绝对是一本万利。 3.1.3 环境可行性 由于在开发中,使用了一些 javascript 的 dom 的操作,所以,本系统在 IE8 以上的浏览器版本下可以正常运行,在其他浏览器,如 firefox、 chrome 等,可能出现一些兼容问题。 3.2 功能需求分析 功能需求定义了开发人员 在系统开发时 必须实现的软件功能, 这样的话用户就可以通过系统来完成他所要做的事。根据市面上人力资源管理系统的基本业务需求,并经过自己的分析,得到了系统的功能模块 通过分析,本系统应该实现以下功能: ( 1) 登录功能: 用于防止非法用户的非法登录,提高了系统的保密性; ( 2) 员工信息管理: 管理员和高级管理员可对公司员工的基本信息进行增 加、删除、修改和查询的操作 ( 3) 招聘信息管理: 管理员和高级管理员 可以发布、 查询、修改、 删除招聘信息。 ( 4) 培训信息管理: 管理员和高级管理员 根据具体的情况设置人员培训,可修改、删除、添加培训信息,为员工的升迁提供科学的依据。 ( 5) 奖惩信息管理: 管理员和高级管理员可以 对奖惩信息的增加、删除 、查询、修改 操作,为薪资、升迁等提供依据。 ( 6) 薪资信息管理: 管理员和高级管理员可以 对员工薪资 信息进行 的增加 和查询等。 ( 7) 考勤信息管理:管理员和高级管理员查看考勤信息,实现公司管理员对当日 7 为参加考勤人员的 考勤处理。 ( 8) 高级操作 模块: 高级管理员系统的管理员、公司部门、公司职位 进行管理(增加、删除 、查看、修改 )。 4 总体设计 4.1 系统的总体功能框架设计 根据系统的功能需求分析后,设计出的系统的总体架构图,如图 4.1 所示。 8 人力资源管理系统员工管理招聘管理薪资管理高级管理培训管理管理员管理部门管理职位管理考勤管理奖罚管理 图 4.1 系统总体架构图 4.2 系统各模块用例图分析 ( 1)系统的总体用例图 高级管理员可以使用系统中的所有功能,而管理员除了管理员管理、部门管理和职位管理不能使用外,其他和高级管理员一样。高级管理员在管理员管理中,可以修改管理员的权 限,如图 4.2 所示。 9 高级管理员 : 1管理员管理 : 1员工管理 : 1部门管理 : 1 职位管理 : 1管理员 : 1招聘管理 : 1培训管理 : 1考勤管理 : 1薪资管理 : 1奖罚管理 : 1人力资源管理系统 图 4.2 系统用例图 ( 2)员工信息管理的用例图 用例名称:员工信息管理 简要描述: 管理员和高级管理员可对公司员工的基本信息进行增加、删除、修改和查询的操作 参与者: 高级管理员、管理员 。 用例图如图 4.3 所示: 管理员 : 2高级管理员 : 5员工管理 : 2增加员工删除员工查询员工修改员工 图 4.3 员工信息管理用例图 ( 3)招聘信息管理的用例图 用例名称: 招聘信息管理。 简要描述: 管理员和高级管理员可以发布、查询、修改、删除招聘信息。 10 参与者: 管理员、高级管理员 。 用例图如图 4.4 所示: 管理员 : 3高级管理员 : 6招聘管理 : 2增加招聘信息修改招聘信息删除招聘信息查询招聘信息 图 4.4 招聘信息管理用例图 ( 4)培训信息管理 的用例图 用例名称: 培训信息管理 简要描述: 高级管理员和 管理员可以对 培训进行添加、修改、删除等操作。 参与者: 管理员、高级管理员 。 用例图如图 4.5 所示: 管理员 : 4高级管理员 : 7培训管理 : 2增加培训信息修改培训信息删除培训信息查询培训信息 图 4.5 培训信息管理用例图 ( 5)奖罚管理的用例图 11 用例名称: 奖罚 管理 简要描述: 高级管理员和 管理员可以对 员工的奖罚信息进行添加、修改、删除等操作。 参与者: 管理员、高级管理员 。 用例图如图 4.6 所示: 管理员 : 5高级管理员 : 8奖罚管理 : 2增加奖罚信息修改奖罚信息删除奖罚信息查询奖罚信息 图 4.6 奖罚管理用例图 ( 6)薪资信息管理的用例图 用例名称: 薪资信息管理 简要描述:系统管理员 可以对员工薪资进行核算和发放,也可以 查看所有员工的工资发放情况。 参与者: 管理员、高级管理员 。 用例图如图 4.7 所示: 管理员 : 6高级管理员 : 9增加薪资信息薪资管理 : 2修改薪资信息删除薪资信息查询薪资信息 图 4.7 薪资信息管理用例图 ( 7)考勤信息管理的用例图 用例名称: 考勤信息管理 12 简要描述: 管理员、高级管理员查看、删除考勤信息,考勤记录的添加油打卡机的当日信息来自动录入。 参与者: 管理员、高级管理员 。 用例图如图 4.8 所示: 管理员 : 6高级管理员 : 9薪资管理 : 2删除薪资信息查询薪资信息 图 4.8 考勤信息管理用例图 ( 8)管理员管理的用例图 用例名称: 管理员 管理 简要描述: 高级管理员对管理员的信息进行增加、删除、修改和查询。 参与者: 高级管理员 。 用例图如图 4.9 所示: 高级管理员 : 2管理员管理 : 2增加管理员删除管理员修改管理员查询管理员 图 4.9 管理员管理用例图 ( 9)部门管理的用例图 用例名称: 部门 管理 简要描述: 高级管理员对部门的信息进行增加、删除、修改和查询。 13 参与者: 高级管理员 。 用例图如图 4.10 所示: 高级管理员 : 3增加部门修改部门删除部门查询部门部门管理 : 2 图 4.10 部门管理用例图 ( 10)职位管理的用例图 用例名称: 职位 管理 简要描述: 高级管理员对职位的信息进行增加、删除、修改和查询。 参与者: 高级管理员 。 用例图如图 4.11 所示: 高级管理员 : 4职位管理 : 2增加职位修改职位删除职位查询职位 图 4.11 职位管理用例图 4.3 业务流程图 根据人力资源管理系统的需求分析和各各用例的分析,绘制出该系 统的业务流程图,见图 4.12。 14 图 4.12 人力资源管理系统业务流程图 4.4 数据库设计分析 4.4.1 数据库总体设计 本系统使用的是 oracle 10G,主要设计的表共有 9 个,分别是:管理员信息表,部门信息表,职位信息表,员工信息表,培训信息表,奖罚信息表,薪资信息表,考勤信息表,招聘信息表。系统的数据库关系结构图如下图 4.13 所示。 15 n - - - - - - - 1n - - - - - - - 1n - - - - - - 1n - - - - - - 1n - - - - - - 1FK_HR_EMPLO_REFERENCE_HR_DEPTFK_HR_EMPLO_REFERENCE_HR_DUTYFK_HR_DUTY_REFERENCE_HR_DEPTFK_HR_SALAR_REFERENCE_HR_EMPLOFK_HR_REWAR_REFERENCE_HR_EMPLOFK_HR_ATTEN_REFERENCE_HR_EMPLOh r _ u s e r su s e r I du s e r N a m eu s e r P a s s w o r du s e r T yp eI N TV A R C H A R ( 2 0 )V A R C H A R ( 5 0 )I N Th r _ e m p l o ye ee m p l o ye e I de m p l o ye e N a m ee m p l o ye e S e xe m p l o ye e A g ee m p l o ye e N a t i vee m p l o ye e B i r t h d a ye m p l o ye e D e p t I de m p l o ye e D u t yI de m p l o ye e W p h o n ee m p l o ye e F p h o n ee m p l o ye e E m a i le m p l o ye e H e a l t he m p l o ye e P r o f e s s i o ne m p l o ye e E d u ca t i o ne m p l o ye e M a r r ye m p l o ye e I d e n t i t yi de m p l o ye e A d d r e s se m p l o ye e I co ne m p l o ye e E n t e r d a t ee m p l o ye e M o d i f yd a t e.I N TV A R C H A R ( 2 0 )V A R C H A R ( 1 0 )I N TV A R C H A R ( 2 0 )V A R C H A R ( 2 0 )I N TI N TV A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 5 )V A R C H A R ( 1 8 )V A R C H A R ( 5 0 )V A R C H A R ( 2 0 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )h r _ d e p td e p t I dd e p t N a m eI N TV A R C H A R ( 2 0 )h r _ d u t yd u t yI dd u t yD e p t i dd u t yN a m e.I N TI N TV A R C H A R ( 2 0 )h r _ s a l a r ys a l a r yI ds a l a r yE m p l o ye e i ds a l a r yM o n t hs a l a r yB a s i cs a l a r yB o n u ss a l a r yF o r f e i ts a l a r yR e l e a s e d a t e.I N TI N TV A R C H A R ( 2 0 )I N TI N TI N TV A R C H A R ( 2 0 )h r _ r e w a r d p u n i s hr p I dr p E m p l o ye e I dr p N a m er p R e a s o nr p D e s crr p D a t er p R e l e a s e m a n.I N TI N TV A R C H A R ( 2 0 )V A R C H A R ( 5 0 )V A R C H A R ( 2 0 0 )V A R C H A R ( 1 0 )V A R C H A R ( 1 0 )h r _ r e cr u i t m e n tr e cr I dr e cr N a m er e cr C o n t e n tr e cr D a t e.I N TV A R C H A R ( 5 0 )V A R C H A R ( 5 0 0 )V A R C H A R ( 2 0 )h r _ a t t e n d a n cea t t e n d I da t t e n d E m p l o ye e I da t t e n d D a t ea t t e n d I s w o r k.I N TI N TV A R C H A R ( 2 0 )V A R C H A R ( 1 0 )h r _ t r a i nt r a i n I dt r a i n N a m et r a i n G o a lt r a i n S t u d e n tt r a i n S t a r t d a t et r a i n E n d d a t et r a i n S t u d e n t n u mt r a i n T e a ch e rt r a i n G r a d et r a i n R e l e a s e d a t e.I N TV A R C H A R ( 2 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 0 )V A R C H A R ( 2 0 )V A R C H A R ( 2 0 )I N TV A R C H A R ( 1 0 )V A R C H A R ( 1 0 )V A R C H A R ( 2 0 ) 图 4.13 人力资源管理数据库关系结构图 4.4.2 数据库数据字典 ( 1)管理员信息表( hr_users) 管理员信息表用于存放管理员的信息,其结构见表 4.1。 表 4.1 管理员信息表 字段号 字段名称 字段类型 字段大小 索引 字段说明 1 userId INTEGER 主键 管理员 ID 2 userName VARCHAR 20 非空 管理员名称 3 userPassword VARCHAR 50 非空 管路员密码 4 userType INTEGER 非空 管理员类型 备注: 1、 userType: 1 为高级管理员 , 2 为普通 管理员 ( 2)部门信息表( hr_dept) 部门信息表用于存放公司部门的信息,其结构见表 4.2。 表 4.2 部门信息表 16 字段号 字段名称 字段类型 字段大小 索引 字段说明 1 deptId INTEGER 主键 部门的 ID 号 2 deptName VARCHAR 20 非空 部门的名称 ( 3)职位信息表( hr_duty) 职位信息表用于存放公司职位的信息,其结构见表 4.3。 表 4.3 职位信息表 字段号 字段名称 字段类型 字段大小 索引 字段说明 1 dutyId INTEGER 主键 职位的 ID 号 2 dutyDeptId INTEGER 外键 职位所在部门的 id 3 dutyName VARCHAR 20 非空 职位名称 ( 4)员工信息表( hr_employee) 员工信息表用于存放公司员工的信息,其结构见表 4.4。 表 4.4 员工信息表 字段号 字段名称 字段类型 字段大小 索引 字段说明 1 employeeID INTEGER 主键 员工 ID 2 employeeName VARCHAR2 20 非空 员工姓名 3 employeeSex VARCHAR2 10 非空 员工性别 4 employeeAge INTEGER 非空 员工年龄 5 employeeNative VARCHAR2 20 非空 员工籍贯 6 employeeBirthday VARCHAR2 20 非空 员工出生日期 7 employeeDeptID INTEGER 外键 员工所在部门ID 8 employeeDutyID INTEGER 外键 员工职位 ID 9 employeeWphone VARCHAR2 20 员工办公室电话 10 employeeFphone VARCHAR2 20 非空 员工手机号码 11 employeeEmail VARCHAR2 20 非空 员工邮箱 17 12 employeeHealth VARCHAR2 20 非空 员工健康 13 employeeProfession VARCHAR2 20 非空 员工专业 14 employeeEducation VARCHAR2 20 非空 员工教育程度 15 employeeMarry VARCHAR2 5 非空 员工婚姻情况 16 employeeIdentityID VARCHAR2 18 非空 员工身份证号 17 employeeAddress VARCHAR2 50 非空 员工住址 18 employeeIcon VARCHAR2 200 员工图片 19 employeeEnterDate VARCHAR2 20 非空 员工入职时间 20 employeeModifyDate VARCHAR2 20 非空 员工信息修改时间 备注: 1、 employeeSex: 0 为女性 , 1 为男性 2、 employeeIcon: 保留 ( 5)招聘信息表( hr_recruiment) 招聘信息表用于存放公司招聘的信息,其结构见表 4.5。 表 4.5 招聘信息表 字段号 字段名称 字段类型 字段大小 索引 字段说明 1 recrId INTEGER 主键 招聘信息 ID 2 recrName VARCHAR 50 非空 招聘信息名称 3 recrContent VARCHAR 500 非空 招聘信息内容 4 recrDate VARCHAR 20 非空 招聘信息发放日期 ( 6)培训信息表( hr_train) 培训信息表用于存放公司培训的信息,其结构见表 4.6。 表 4.6 培训信息表 字段号 字段名称 字段类型 字段大小 索引 字段说明 1 trainID INTEGER 主键 培训信息 ID 2 trainName VARCHAR 20 非空 培训信息名称 3 trainGoal VARCHAR 20 非空 培训目的 18 4 trainStudent VARCHAR 200 非空 培训参加人名单 5 trainStartDate VARCHAR 20 非空 培训开始时间 6 trainEndDate VARCHAR 20 非空 培训结束时间 7 trainStudentNum INTEGER 非空 参训最大人数 8 trainTeacher VARCHAR 10 非空 培训教室 9 trainGrade VARCHAR 10 非空 培训等级 10 trainEleaseDate VARCHAR 20 非空 信息放出时间 备注: 1、 trainGrade: 0 为初级 , 1 为中级, 2 为高级 ( 7)薪资信息表( hr_salary) 薪资信息表用于存放公司薪资的信息,其结构见表 4.7。 表 4.7 薪资信息表 字段号 字段名称 字段类型 字段大小 索引 字段说明 1 salaryID INTEGER 主键 薪资 ID 2 salaryEployeeID INTEGER 外键 薪资对应员工 id 3 salaryMonth VARCHAR2 20 非空 发放薪资月份 4 salaryBasic INTEGER 非空 基础工资 5 salaryBouns INTEGER 非空 奖金 6 salaryForfeit INTEGER 非空 罚款金额 7 salaryReleaseDate VARCHAR2 20 非空 信息发放时间 备注: 1、 员工的实拿工资为: salaryBasic+ salaryBouns- salaryForfeit ( 8)奖罚信息表( hr_rewardpunish) 奖罚信息表用于存放公司员工的奖罚的信息,其结构见表 4.8。 19 表 4.8 奖罚信息表 字段号 字段名称 字段类型 字段大小 索引 字段说明 1 rpID INTEGER 主键 奖罚信息 ID 2 rpEmployeeID INTEGER 外键 奖罚员工 ID 3 rpName VARCHAR2 20 非空 奖罚类型名称 4 rpReason VARCHAR2 50 非空 奖罚原因 5 rpDescr VARCHAR2 200 非空 奖罚描述 6 rpDate VARCHAR2 10 非空 奖罚日期 7 rpReleaseMan VARCHAR2 10 非空 信息发放人 备注: 1、 rpName:用于指出这个字段是奖励还是惩罚 2、 rpReleaseMan:为当前登录系统的管理员 ( 9)考勤信息表( hr_attendance) 考勤信息表用于存放公司员工的考勤的信息,其结构见表 4.9。 表 4.8 考勤信息表 字段号 字段名称 字段类型 字段大小 索引 字段说明 1 attendID INTEGER 主键 考勤信息 id 2 attendEmployeeID INTEGER 外键 考勤对应员工 ID 3 attendDate VARCHAR2 20 非空 考勤日期 4 attendIsWork VARCHAR2 10 非空 是否上班 备注: 1、 attendIsWork: 0 为缺勤, 1 为上班 5 系统详细设计 5.1 系统运行环境和部署架构 系统运行的操作系统是 WINDOWS7,数据数据库采用 oracle 10G,服务器则采用apache-tomcat-6.0.32 应用服务器。 这个系统部署在一个服务器上和一个数据库服务器 上,过意该系统可以在公司的局域网中使用,也可以在广域网中访问。此外,由于该系统运用了许多 JS 脚本,所以使用浏览器时,应选用 IE8 或以上的版本,以避免不兼容无法运行的问题。 20 5.2 系统体系结构设计 系统的结构为传统的 B/S 架构,即“浏览器 /服务器”架构 ;编码模式为Extjs+Struts2+Hibernate;逻辑的结构为数据的存储,业务逻辑的处理,用户界面的开发。为用户提供更好的系统体验。 5.3 系统业务流程 系统的业务流程,严格按照 J2EE 的应用设计规范和 JavaScript 的引用规范。用户从浏览器进入系 统,在系统中进行业务操作的时候,在 extjs 中使用了一些控件 ,进而出发了 action 的请求。 该请求被 ActionServlet 拦截,进入 Struts 框架的控制。 系 统的所有 action 请求, 都 被 ActionServlet 拦截,由 Struts2 的 MVC 框架控制 .此外,在关于数据的交互中,系统使用的是 JSON 格式的数据来进行数据传输,无论是数据库向界面,还是界面向数据库,都是这样。 浏览器 中的 获得数据后向服务器端发送请求( request), FilterDispatch 接收到从浏览器发送来的请求后将相应的数据请求分 发到相应的 Action 的 指定 方法进行处理,方法通过 BeanFactory 创建实现类的对象 ,实现类对象调用其响应的业务逻辑方法,业务逻辑层的方法又调用 Dao 层的方法进行数据库的操作,对数据进行持久化。 相应的时序图如下图 5.1 所示。 r e s p o n s er e s p o n s er e t u r nr e t u r nh i b e r n a t eg e t D a og e t B e a n ( )deale xe cu t eu r lr e q u e s tE xt Js f i l t e r D i s p a t ch a ct i o n B e a n D a oa j a x d a t a b a s e 图 5.1 系统业务时序图 21 5.4 系统各模块类图 由于系统的类和 javabean 内的属比较多,所以我根据系统的功能模块,将类图拆分成以下 10 个子类图,分别详细的说明了个各类的属性和方法以及类之间的关系。 (1)登录功能类图 登录功能用于实现用户登录,其类图如图 5.2 所示。 L o g i n A ct i o n-u s e r n a m ep a s s w o r d: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g+g e t U s e r n a m e ( )s e t U s e r n a m e ( )g e t P a s s w o r d ( )s e t P a s s w o r d ( )l o g i n ( ).: vo i d: vo i d: vo i d: vo i d: j a va . l a n g . S t r i n gH i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rL o g i n D a o+ ch e ck H r U s e r s ( ).: H r U s e rH r U s e r s-u s e r i du s e r n a m eu s e r p a s s w o r du s e r t yp e: i n t: S t r i n g: i n t: i n t+g e t t e r s ( )s e t t e r ( ). 图 5.2 登录功能类图 (2)管理员信息管理功能类图 管理员信息管理功能,用于实现管理员信息管理,见图 5.3 U s e r A ct i o n+S e l e ct U s e r s _ A ( )S e l e ct T a r g e t s _ A ( )A d d U s e r _ A ( )D e l e t e U s e r _ A ( )U p d a t e U s e r _ A ( ): vo i d: vo i d: vo i d: vo i d: vo i dH i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r U s e r s D a o+S e l e ct U s e r s ( )S e l e ct T a r g e t s ( )A d d U s e r ( )D e l e t e U s e r ( )U p d a t e U s e r ( ).: L i s t: L i s t: vo i d: vo i d: vo i dH r U s e r s-u s e r i du s e r n a m eu s e r p a s s w o r du s e r t yp e: i n t: S t r i n g: i n t: i n t+g e t t e r s ( )s e t t e r ( ). 图 5.3 管理员信息管理功能类图 (3)部门信息管理功能类图 部门信息管理功能,用于实现部门信息管理,见图 5.4 22 H r D e p t A ct i o n+S e l e ct D e p t s _ A ( )S e l e ct T a r g e t D e p t s _ A ( )A d d D e p t _ A ( )D e l e t e D e p t _ A ( )U p d a t e D e p t _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r D e p t-d e p t i dd e p t n a m eh r E m p l o ye e sh r D u t i e s: i n t: S t r i n g: S e t: S e t+g e t t e r s ( )s e t t e r s ( ).H r D e p t D a o+S e l e ct D e p t s ( )S e l e ct T a r g e t D e p t s ( )A d d D e p t ( )D e l e t e D e p t ( )U p d a t e D e p t ( ): L i s t: L i s t: vo i d: vo i d: vo i d 图 5.4 部门信息功能类图 (4)职位信息管理功能类图 职位信息管理功能,用于实现职位信息管理,见图 5.5 H r D u t yA ct i o n+S e l e ct D u t i e s _ A ( )S e l e ct A l l D e p t N a m e _ A ( )A d d D u t y_ A ( )D e l e t e D u t y_ A ( )U p d a t e D u t y_ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r D u t y-d u t yi dh r D e p td u t yn a m eh r E m p l o ye e s: i n t: H r D e p t: S t r i n g: S e t+g e t t e r s ( )s e t t e r s ( ).: i n t: i n tH r D u t yD a o+S e l e ct D u t i e s ( )S e l e ct A l l D e p t N a m e ( )A d d D u t y ( )D e l e t e D u t y ( )U p d a t e D u t y ( ): L i s t: L i s t: vo i d: vo i d: vo i d 图 5.5 职位信息管理功能类图 (5)员工信息管理功能类图 员工信息管理功能,用于实现员工信息管理,见图 5.6。 23 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r E m p l o ye e A ct i o n+S e l e ct E m p l o ye e s _ A ( )S e l e ct T a r g e t E m p l o ye e _ A ( )A d d E m p l o ye e _ A ( )D e l e t e E m p l o ye e _ A ( )U p d a t e E m p l o ye e _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r E m p l o ye e-e m p l o ye e i dh r D e p th r D u t ye m p l o ye e n a m ee m p l o ye e s e xe m p l o ye e a g ee m p l o ye e n a t i vee m p l o ye e b i r t h d a ye m p l o ye e w p h o n ee m p l o ye e f p h o n ee m p l o ye e e m a i le m p l o ye e h e a l t he m p l o ye e p r o f e s s i o ne m p l o ye e e d u ca t i o ne m p l o ye e m a r r ye m p l o ye e i d e n t i t yi de m p l o ye e a d d r e s se m p l o ye e i co ne m p l o ye e e n t e r d a t ee m p l o ye e m o d i f yd a t eh r R e w a r d p u n i s h sh r A t t e n d a n ce sh r S a l a r i e s: i n t: H r D e p t: H r D u t y: S t r i n g: S t r i n g: i n t: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S e t: S e t: S e t+g e t t e r s ( )s e t t e r s ( ).H r E m p l o ye e D a o+S e l e ct E m p l o ye e s ( )S e l e ct T a r g e t E m p l o ye e ( )A d d E m p l o ye e ( )D e l e t e E m p l o ye e ( )U p d a t e E m p l o ye e ( ).: L i s t: L i s t: vo i d: vo i d: vo i d 图 5.6 员工信息管理功能类图 (6)培 训信息管理功能类图 培训信息管理功能,用于实现培训信息管理,见图 5.7。 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r T r a i n A ct i o n+S e l e ct T r a i n s _ A ( )S e l e ct T a r g e t T r a i n _ A ( )A d d T r a i n _ A ( )D e l e t e T r a i n _ A ( )U p d a t e T r a i n _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r T r a i n-t r a i n i dt r a i n n a m et r a i n g o a lt r a i n s t u d e n tt r a i n s t a r t d a t et r a i n e n d d a t et r a i n s t u d e n t n u mt r a i n t e a ch e rt r a i n g r a d et r a i n r e l e a s e d a t e: i n t: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g: i n t: S t r i n g: S t r i n g: S t r i n g+g e t t e r s ( )s e t t e r s ( ).: i n t: i n tH r T r a i n D a o+S e l e ct T r a i n s ( )S e l e ct T a r g e t T r a i n ( )A d d T r a i n ( )D e l e t e T r a i n ( )U p d a t e T r a i n ( ).: L i s t: L i s t: vo i d: vo i d: vo i d 图 5.7 培训信息管理功能类图 (7)招聘信息管理功能类图 招聘信息管理功能,用于实现招聘信息管理,见图 5.8 24 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r R e cr u i t m e n t A ct i o n+S e l e ct R e cr u i t m e n s _ A ( )S e l e ct T a r g e t R e cr u i t m e n _ A ( )A d d R e cr u i t m e n _ A ( )D e l e t e R e cr u i t m e n _ A ( )U p d a t e R e cr u i t m e n _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r R e cr u i t m e n t-r e cr i dr e cr n a m er e cr co n t e n tr e cr d a t e: i n t: S t r i n g: S t r i n g: S t r i n g+g e t t e r s ( )s e t t e r s ( )H r R e cr u i t m e n t D a o+S e l e ct R e cr u i t m e n s ( )S e l e ct T a r g e t R e cr u i t m e n ( )A d d R e cr u i t m e n ( )D e l e t e R e cr u i t m e n ( )U p d a t e R e cr u i t m e n ( ).: L i s t: L i s t: vo i d: vo i d: i n t 图 5.8 招聘信息管理功能类图 (8)考勤信息管理功能类图 考勤信息管理功能,用于实现考勤信息管理,见图 5.9。 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r A t t e n d a n ce A ct i o n+S e l e ct A t t e n d a n ce s _ A ( )S e l e ct T a r g e t A t t e n d a n ce _ A ( )D e l e t e A t t e n d a n ce _ A ( ).: vo i d: vo i d: vo i dH r A t t e n d a n ce-H r A t t e n d a n ceh r E m p l o ye ea t t e n d d a t ea t t e n d i s w o r k: i n t: H r E m p l o ye e: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g+g e t t e r s ( )s e t t e r s ( ).H r A t t e n d a n ce D a o+S e l e ct A t t e n d a n ce s ( )S e l e ct T a r g e t A t t e n d a n ce ( )D e l e t e A t t e n d a n ce ( ).: L i s t: L i s t: vo i d 图 5.9 考勤信息管理功能类图 (9)薪资信息管理功能类图 薪资信息管理功能,用于实现薪资信息管理,见图 5.10。 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r S a l a r yA ct i o n+S e l e ct S a l a r i e s _ A ( )S e l e ct T a r g e t S a l a r y_ A ( )A d d S a l a r y_ A ( )D e l e ct S a l a r y_ A ( )U p d a t e S a l a r y_ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r S a l a r y-s a l a r yi dh r E m p l o ye es a l a r ym o n t hs a l a r yb a s i cs a l a r yb o n u ss a l a r yf o r f e i ts a l a r yr e l e a s e d a t e: i n t: H r E m p l o ye e: S t r i n g: i n t: i n t: i n t: S t r i n g+g e t t e r s ( )s e t t e r s ( ).H r S a l a r yD a o+S e l e ct S a l a r i e s ( )S e l e ct T a r g e t S a l a r y ( )A d d S a l a r y ( )D e l e ct S a l a r y ( )U p d a t e S a l a r y ( ).: L i s t: L i s t: vo i d: vo i d: vo i d 图 5.10 薪资信息管理功能类图 25 (10)奖罚信息管理功能类图 奖罚信息管理 功能,用于实现奖罚信息管理,见图 5.11 H i b e r n a t e U t i l-s e s s i o n F a ct o r yT h r e a d L o ca l: j a va . l a n g . S t r i n g: j a va . l a n g . S t r i n g-+H i b e r n a t e U t i l ( )o p e n S e s s i o n ( )g e t C u r r e n t S e s s i o n ( ).: i n t: i n t: i n tS e r ve r U t i l+ R e s p o n s e U t i l ( ).: P r i n t W r i t e rH r R e w o r d p u n i s h A ct i o n+S e l e ct R P s _ A ( )S e l e ct T a r g e t R P _ A ( )A d d R P _ A ( )D e l e t e R P _ A ( )U p d a t e R P _ A ( ).: vo i d: vo i d: vo i d: vo i d: vo i dH r R e w a r d p u n i s h-r p i dh r E m p l o ye er p n a m er p r e a s o nr p d e s crr p d a t er p r e l e a s e m a n: i n t: H r E m p l o ye e: S t r i n g: S t r i n g: S t r i n g: S t r i n g: S t r i n g+g e t t e r s ( )s e t t e r s ( )H r R e w o r d p u n i s h D a o+S e l e ct R P s ( )S e l e ct T a r g e t R P ( )A d d R P ( )D e l e t e R P ( )U p d a t e R P ( ).: L i s t: L i s t: vo i d: vo i d: i n t 图 5.11 奖罚信息管理功能类图 5.5 系统代码实现 由于系统的各模块的相应的实现方法基本相同,所以在这里,我只选用一个模块来进行实现。在此,我选用用户登录模块和管理员信息管理模块。 5.5.1 用户登录模块实现 (1)登录界面,运用了 Extjs+struts2+hibernate 的技术实现的功能,在这里有输入内容校验及回馈给后台经行数据库数据对比的步骤。当输入正确的用户名和密码就可以登录到系统的主页面,失败的话会弹出提示,并且回到登录页面。效果展示:如图 5.12、图 5.13、图 5.14、图 5.15 所示。 26 图 5.12 登陆界面效果图 图 5.13 登录成功效果图 图 5.14 登录失败效果图 27 图 5.15 系统主界面效果图 (2)代码实现: 首先,因为这个系统的用户界面是基于 extjs 的,所以,在 JSP 页面中,只要引入Extjs 主要的两个 js 文件和一个 CSS 文件。然后就是要引入登录界面的 js。 1) Jsp 页面代码: (Login.jsp) 欢迎登陆 2)登录页面 JS 实现: (js-login.js) 这里的代码是负责生成登录信息录入窗口。等输入信息后,点击确定,触发 action,将 textfield 内的信息传到后台进行验证。在此使用到了 EXTJS 自带的 ajax 技术。当服务器响应了成功的信息,则跳转,响应失败的信息,先提示登录失败并清空textfield 内的信息。 28 Ext.onReady(function() Ext.QuickTips.init(); var form = new Ext.FormPanel( height:100, width:300, frame:true, labelWidth:60, labelAlign:right, baseCls:x-plain, items: xtype:textfield, name:username, fieldLabel:用户名 , maxLength:10, minLength:1, allowBlank:false, msgTarget:side , xtype:textfield, name:password, inputType:password, fieldLabel:密 码 , maxLength:10, minLength:1, allowBlank:false, msgTarget:side ); var window = new Ext.Window( title:用户登录 , width:300, height:150, plain:true, bodyStyle:padding:5px;, buttonAlign:center, colseable:false, resizable:false, items:form, buttons: text:登录 , listeners: click:function() if(form.getForm().isValid() form.getForm().submit( 29 url:login, method:POST, waitMsg:系统正在验证您的登录信息 ,请稍候 ., success:function(form,action) Ext.Msg.confirm(提示,action.result.msg,function(btn) if(btn=yes) top.location=./desktop/desktop.jsp; else ,this); , failure:function() Ext.Msg.alert(提示 ,账号或密码错误 ); ); , text:重置 , listeners: click:function() form.getForm().reset(); ); window.show(); ); 3)登录页面 的 action: (LoginAction.java) 这个 Action 负责获取从前台 submit 操作后传过来的信息,并经行验证,如果数据库有这个信息,就响应成功信息,如果数据库没有这个信息,则响应失败信息。 package com.wyc.hr.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.wyc.hr.dao.LoginDao; import com.wyc.hr.domain.HrUsers; public class LoginAction extends ActionSupport private String username; 30 private String password; public String getUsername() return username; public void setUsername(String username) this.username = username; public String getPassword() return password; public void setPassword(String password) this.password = password; public String login() throws Exception HttpServletRequest request=ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); LoginDao loginDao=new LoginDao(); HrUsers hruser=new HrUsers(); hruser.setUsername(getUsername(); hruser.setUserpassword(getPassword(); hruser=loginDao.checkHrUsers(hruser); if(hruser.getUserid()!=null) response.setCharacterEncoding(UTF-8); request.getSession().setAttribute(userInfo, hruser); response.getWriter().write( success:true,msg:登录成功!你的用户名是: + getUsername() + ,你的密码是: + getPassword() + 。 ); else response.getWriter().write(success:false); return null; 4)登录模块的 Dao:(LoginDao.java) 这里主要运用的就是 Hibernate 的技术。主要的功能就是来查询表中是否存在相应的记录。如果有,就返回这个记录,如果没有,就返回空。 在这里调用了一个自定义的工具类,用于创建 Hibernate 的数据库连接,相应代码见附录 1。 package com.wyc.hr.dao; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import com.wyc.hr.domain.HrUsers; import com.wyc.hr.utils.HibernateUtil; public class LoginDao 31 public HrUsers checkHrUsers(HrUsers hrUser) Session session=null; try session=HibernateUtil.openSession(); Query query=session.createQuery(From HrUsers where username=? and userpassword=?); query.setString(0, hrUser.getUsername(); query.setString(1, hrUser.getUserpassword(); List list=query.list(); if(list.size()=0) return null; else return list.get(0); catch (Exception e) e.printStackTrace(); throw new RuntimeException(e.getMessage(); finally if(session!=null & session.isOpen() session.close(); 5.5.2 管理员管理模块实现 (1)该模块主要是给高级管理员提供一个可以增、删、改、查管理员的界面。效果展示:如图 5.16、图 5.17、图 5.18 所示。 图 5.16 管理员管理效果图 32 图 5.17 管理员管理添加管理员 图 5.17 管理员管理修改管理员 33 图 5.18 管理员管理删除管理员 (2)代码实现: 1) JSP 页面:( desktop.jsp) 该页面除了引用 Extjs 的几个主要的几 js 文件和 css 文件之外,还要引用主界面的样式,也就是 desktop 的样式。还有,就是右上角的时间显示,也在这个页面定义的。除此之外,还有管理的快捷方式定义等等 人力资源管理 34 function toDou(n) if(n10) return 0+n; else return +n; window.onload=function() function tick() var aImg=document.getElementsByTagName(img); var oDate=new Date(); /兼容问题, FF直接可以用 timeString进行 for循环实现功能 /iE需要重新将 timeString转换成数组 timeArray,再进行循环 var timeString=toDou(oDate.getHours()+toDou(oDate.getMinutes()+toDou(oDate.getSeconds(); var timeArray=timeString.split(); for(var i=0,j=0;i6;i+,j+) if(j=2 | j=5) j+; aImgj.src=images/+timeArrayi+.jpg; setInterval(tick, 1000); tick(); 35 员工信息管理 招聘信息管理 培训信息管理 奖惩信息管理 薪资信息管理 考勤信息管理 $userInfo.username 2)管理员管理页面 js:( sample.js) 这里定义了窗口中所有的控件,以及一些方法的调用等等。见附录 2 3)管理员管理模块中的管理员 js 对象:( HrObject.js) function HrUser() this.userid=null; this.username=null; 36 this.userpassword=null; this.usertype=null; this.getUserid=function() return this.userid; this.setUserid=function(userid) this.userid=userid; this.getUsername=function() return this.username; this.setUsername=function(username) this.username=username; this.getUserpassword=function() return this.userpassword; this.setUserpassword=function(userpassword) this.userpassword=userpassword; this.getUsertype=function() return this.usertype; this.setUsertype=function(usertype) this.usertype=usertype; 4)管理员管理模块相关前台功能 js: (hrUsersOper.js) 是用于完成前台中的一些功能的一些方法,如建立管理员添加、修改、删除的页面,和处理各种前台的逻辑功能。代码见附录 2 4)管理员管理模块相关 Action: (UserAction.java) 用于处理前端发过来的数据,并经行相应的处理,代码见附录 2 5)管理员管理模块相关 Dao: (HrUsersDao.java) 持久层,负责完成和数据库的一些操作,被管理员管理模块相关 Action 调用,代码见附录 2 37 5.4.3 员工信息管理展示 员工 信息管理窗口的图片展示,如图 5.19,图 5.20 所示。 图 5.19 员工信息管理主界面 图 5.20 员工信息管理添加员工窗口 5.4.4 部门信息管理展示 公司部门信息管理窗口的图片展示,见图 5.21,图 5.22,图 5.23 38 图 5.21 部门信息管理主窗口 图 5.22 部门信息管理主窗口查询功能 图 5.23 部门信息管理添加部门窗口 5.4.5 其他模块实现 其他模块,包括职位信息管理模块、招聘信息管理模块、培训信息管理模块、薪资信息管理模块、奖罚信息管理模块和考勤信息管理模块,这 6 个模 块,和以上管理员信息管理模块的实现过程基类似,基本上都是重复那个几个步骤。然而不同是一下这两点:1、在 action 中 response 的字符串不同,因为不同的信息,要封装成不同的字符串发 39 给前台。 2、就是 Struts2 框架处理不同 action。 这样做的好处是使得整个人力资源管理系统结构非常清晰,各个模块划分得很清楚,各自只处理各自功能页面的请求,从而降低了耦合性。 6 系统测试 为了使得用户在使用这个人力资源管理系统时,有更好的用户体验,并且不会出现一些操作时的不舒适,或者是一些数据无法读取 或者保存,在此进行系统的测试。只要运用了两种测试方式:功能测试和界面测试。 6.1 功能测试 对系统的各项功能尽享验证,更具功能测试用例,逐项测试,检查系统是否达到需求分析中所提到的功能。 功能测试用例如下: 表 6.1 功能测试用例 序号 用例名称 描述 预期结果 运行结果 1 非用户登录 输入不正确信息 不能登录 不能登录,并弹出警告

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论