1、企业人力资源管理系统的设计与实现员工管理与奖惩管理摘 要:随着中国经济的发展与社会的进步,如何管理好企业和企业内部人员的信息,已经成为当今企业管理中的一个大的问题。基于这种情况,一个可以规范化、自动化的企业人力资源管理系统就显得非常必要。本系统是一个为适应当前不同行业而设计开发的信息管理系统,基于三大框架(SSH)实现,能基本满足现代企业对人力资源管理的需求。该企业人力资源管理系统主要包括员工管理、部门管理、招聘管理、培训管理、奖惩管理、薪资管理和系统管理等模块,且操作十分简单。关键词:企业人力资源管理系统;三大框架(SSH);MySQL数据库Abstract:With the develop
2、ment of Chinese economy and the progress of society,how to manage corporate information and internal staff has become a big problem in todays enterprise management. In this case, one can be standardized, automated enterprise human resource management system is very necessary. This system, based on t
3、he three frameworks (SSH), is a different information industry to adapt to the current design and development of software systems, which can basically meet the modern enterprise human resources management needs.The enterprise human resource management system includes the staff management, department
4、 management, recruitment management, training management, incentive management, salary management and system management, etc. Its operation is quite simple. Key words: Enterprise human resource management system; Three frameworks (SSH); MySQL database1 绪论1.1 课题研究的背景我们正处于飞速发展的信息时代中,各行各业都离不开信息处理,这正是计算
5、机被广泛应用于社会各行各业的原因。使用计算机进行信息管理是行业现代化的一个标志,此举不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性:快速操作、智能分析、海量存储和长期保存等等。与此同时,社会的生产力也得到快速的发展,人们进行的信息交流量也随之扩大,传统的纸质处理信息的机制因浪费了大量的人力物力,已经不能顺应新时代社会的发展潮流。为了提高人们的办公效率,让人们从繁琐的纸质办公中解脱出来,更好的进行信息交流和资源共享,办公自动化是当前非常适应新技术的时代潮流,是实现大量信息管理的一个非常明智的选择。同时,与传统的纸质处理的劳动人事管理相比,人力资
6、源管理在我国企业的应用刚刚起步,对国外的有关理论的认识还停留在“点”的阶段,远未做到系统引进,消化吸收,实现真正意义上的“从劳动人事管理向人力资源管理”的功能性转变。因此,企业管理人员应对这种转变所面临的挑战和机遇有一个全面的、清醒的认识,努力探索一条适合中国国情的人力资源管理之路。本系统就是为了进行现代化企业人力资源管理而设计的,是建立在市场经济基础之上,按照市场经济法则,对企业人力资源进行全面的、动态的管理,经过小组成员的讨论,本系统分为了员工管理、部门管理、招聘管理、培训管理、奖惩管理、薪资管理和系统管理等模块。其中我负责的是员工管理和奖惩管理的部分。其中员工管理主要实现对员工信息的增加
7、、删除员工信息、修改员工信息以及对员工信息按部门查询和查询所有员工信息等,奖惩管理主要实现对员工奖惩制度的规定以及根据员工平时表现实现具体的奖惩措施等。1.2 课题研究的意义众所周知,企业人力资源管理系统是当代企业单位不可或缺的部分,也是适应当代企业制度,推动企业人力资源管理逐步科学、完善、规范、自动的必备条件。人力资源管理系统的实现对于企事业单位的管理者和决策者而言都是至关重要的,故而企业人力资源管理系统应帮助企业领导解决现有问题,同时使其更加了解企业目前的人力资源情况。为使企业在日益激烈的社会竞争中立于不败之地,加快公司的信息化进程,促使公司的管理水平不断提升,一个完善的企业人力资源系统已
8、变得十分必要和迫切。本次课题是针对中小型企业而设计的人力资源管理系统,可以最大限度满足企业人力资源管理的需求,维护和激励企业内人力资源,实现企业利润最大化。1.3 课题研究的内容、要求和目标1.3.1 课题研究的内容当代企业人力资源管理的内容多种多样,通过前期小组讨论,决定采用三大框架(SSH)完成本课题的设计,另外采用Dreamweaver + Myeclipse作为界面设计工具,Myeclipse作为编译环境。按照如上构想具体涉及如下几方面的研究:(1)在实现企业人力资源管理系统时,主要实现员工管理、部门管理、招聘管理、培训管理、奖惩管理、薪资管理和系统管理等模块。(2)与此同时,为保证系
9、统的安全性,做出安全分析,决定采用身份验证的方式实现系统的安全保障。1.3.2 课题研究的要求该软件要求采用三大框架(SSH)方式实现。要求熟练掌握它们的组合使用,在代码的编写上要考虑代码重用的思想,考虑到简便实用的特点等;在代码设计上,要考虑到操作简单,交互性好,在界面设计上,要求界面简洁大方、试用。1.3.3 课题研究的目标本课题最终将达到如下几个目标:(1)内容大于形式,能够实现所需功能(2)操作起来简便,能够尊重浏览者体验(3)灵活通用,才能有个好口碑(4)界面美观,能够让用户感到舒适2 可行性分析可行性分析,顾名思义,也称为可行性研究,旨在为系统的开发做好前期准备,通过对系统详细的调
10、查,对新系统的开发从经济、技术、社会的方面进行分析和研究,保证新系统的成功开发。本次对企业人力资源管理系统主要对以下三个方面进行了分析。2.1 经济可行性企业人力资源管理系统所需要的硬件和软件环境,均很容易从市场够得或从相关网站下载,系统的主要成本是在开发与维护上,不会对系统使用者造成过重的经济负担。一旦企业人力资源管理系统投入到相关行业,则办事效率会得到一定程度的提高,极大程度减少人力开销。2.2 技术可行性技术可行性主要是通过对客观条件的分析,如:技术水平、系统的软件和硬件能否满足开发者的需要等,确定能否顺利完成开发工作。随着编程技术的不断增加,功能的不断加强以及网络技术的不断成熟,使用计
11、算机来管理人事信息数据已能做到完整、准确和及时。2.3 管理可行性管理可行性主要是分析是否能得到管理人员的支持、各项规章制度是否齐全、现有的管理制度和方法是否科学,初始数据是否正确等。而企业人力资源管理系统的主要目的就是为了对企业人力进行管理,弥补传统人工管理方式的不足,故具备了管理上的可行性。综上所述,企业人力资源管理系统在技术、经济、管理等方面均具备可行性,且投入少、效率高、见笑快,因此该系统的开发是完全可行的。2.4 系统性能的需求分析由于本系统是为某企事业单位设计的人力资源管理系统,涉及信息量大,规模较广,因此对系统的性能提出了较高的要求,具体如下:(1) 安全性。在本系统中,数据库起
12、着非常重要的作用,不能随意对数据库中的数据进行存取、删除或修改,故对登陆进去的用户需具备明确的权限管理,如可分为管理员和一般用户,普通用户只具有查看自己信息,修改自己密码的权限,而管理员则可以查看所有用户信息以及修改、更新的功能权限。除此以外,还应防止计算机病毒对数据的破坏,注意数据备份等等。(2) 可扩展性。由于此系统是根据现有条件进行设计的,日后环境改变该系统也应很容易被扩展。(3) 易维护性。随着时间推移,企事业单位技术和业务的发展,系统的维护要简单、易行。(4) 易操作性。在设计本系统时,应考虑到用户乃企业人员并不是计算机专业人员,故在系统设计的过程中应适用于不同水平的使用者,同时要求
13、系统的操作要简单易行。3 系统开发环境及工具分析3.1 系统开发环境的选择3.1.1 本系统运行所需的硬件环境:服务器:依系统的数据信息量确定客户机:普通PC内存:256MB以上分辨率:推荐使用1024*768像素3.1.2本系统运行所需的软件环境:操作系统:Windows 7 数据库:MYSQL开发平台:MyEclipse 8.5JSP服务器:Tomcat 6.0浏览器:IE3.2 编译环境的选择Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun
14、和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。3.3数据库工具的选择MySQL是一个小型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。选择MYSQL作为数据库主要有以下几点原因:1. MySQL使用标准的SQL数据语言形式;2. 使用Java编写,保证源代码的可移植性;3. 支持Linux、Windows等多种操作系统。4. 提供用于管理、检查、优化数据库操作的管理工具。4 数据
15、库设计与实现在设计企业人力资源管理系统之前,需要做好分析工作,明确其完成的步骤,而对数据的分析则是首要的,这就要求我们设计好各个表,并将其添加到mysql数据包括中。在分析如何建表时,首先就要从需求分析文档中获取系统中要用的数据,明确每张表之间的关系,抽取实体及其属性,建立模型。在设计过程中应考虑以下几点: (1) 层次分明,布局合理。 (2) 高度结构化。(3) 少冗余性以节省空间提高效率。 (4) 维护数据的一致性和正确性。(5) 安全。4.1 数据字典4.1.1员工管理表tb_employee的数据字典表1.1 员工管理表字段代码字段名称字段类型相关约束Id员工idInt(11)主键,自
16、增长,非空em_serialNumber员工编号Varchar(30)默认为空em_name员工名字varchar(10)默认为空em_sex员工性别Varchar(2)默认为空em_age员工年龄Int(11)默认为空em_IDCard员工身份证号Varchar(30)默认为空em_born员工出生日期Varchar(50)默认为空em_nation员工民族Varchar(10)默认为空em_marriage员工是否结婚Varchar(10)默认为空em_visage员工政治面貌Varchar(10)默认为空em_ancestralHome员工籍贯Varchar(30)默认为空em_tel员
17、工电话Varchar(50)默认为空em_address员工家庭住址Varchar(50)默认为空em_afterSchool员工毕业学校Varchar(50)默认为空em_speciality员工专业Varchar(50)默认为空em_culture员工文化程度Varchar(10)默认为空em_startime员工上岗时间Varchar(30)默认为空em_departmentId员工部门编号Int(11)默认为空em_typeWork员工部门工种Varchar(10)默认为空em_creatime员工登记时间Varchar(50)默认为空em_creatName员工登记人名Varchar
18、(30)默认为空em_bz员工备注Varchar(50)默认为空4.1.2 员工奖惩表tb_cj的数据字典表1.2 员工奖惩表字段代码字段名称字段类型相关约束id员工idint(11)主键,自增长,非空cj_title奖惩名称Varchar(50)默认为空cj_type奖惩类型Varchar(1)默认为空cj_content奖惩内容text默认为空cj_money奖惩金额Varchar(50)默认为空cj_time奖惩时间Varchar(50)默认为空4.2 数据ER图在系统的数据库设计中,首先要对系统分析得到的数据词典中的数据存储进行分析,分析各数据存储之间的关系,可采用ER图的方法进行数据
19、结构分析。ER图是一种用于静态描述数据结构的概念模式,它直接使用信息世界中的术语来表示现实世界中的联系。ER模型中的基本元素包括:(1)实体 (2)属性 (3)联系图4-2 数据E-R图基本元素4.2.1 实体本系统数据库的概要设计方法是使用实体联系,通过对数据存储进行分析,得知在员工管理和奖惩管理中:员工,奖惩,管理员3个实体。4.2.2 属性(1)员工管理每个应聘者被公司录用后就会有一个员工档案,员工由id标识,需要记录的员工信息包括:员工号,姓名,性别,年龄,出生日期,名族,政治面貌,婚姻状况,籍贯,电话号码,毕业院校,专业,部门号,登记时间,登记人名,工作岗位,备注。(2)奖惩管理适当
20、的奖惩有利于公司长期的发展,奖惩的主要信息包括:奖惩人的id,奖惩类型,奖惩金额,奖惩时间,奖惩原因。(3)管理员信息管理员是对公司人力的管理和调配的重要角色,本企业人力资源管理系统将人分为有2种类型:一种是管理员,另一种是普通员工,管理员的主要信息包括:账号,密码,级别。4.2.3 关系模式转化ER图向关系模式的转化要解决的问题是如何将实体和实体之间的联系转化为关系模式以及如何确定这些关系模式的属性和代码。 (1) 对于实体可采用以下方法: 将每个实体转化为一个关系,实体的属性即为关系的属性,实体码即为关系码。 (2) 对于实体之间的联系采用以下方法: 若实体的联系是1:1,则可以在两个实体
21、转换成的两个关系中任意一个关系的属性加入另一个关系的码。 若实体间的联系是1:N,则在N端实体转换成的两个关系中加入1端实体转换成的关系码及联系的属性。 若实体间的联系是M:N,则将联系转换为关系,关系的属性为诸个实体的码加上联系具有的属性,而关系码则为实体码的组合。4.2.4 数据库E-R图图4-2-4 数据库E-R图5 系统的详细设计和功能实现(员工管理和奖惩管理)5.1 系统框架结构及设计思想本系统是基于三大框架(SSH)进行开发的,而SSH即为struts、spring、hibernate构成的一个开源集成框架。从职能上说,SSH框架可以分为4个部分:表示层、业务逻辑层、数据持久层和域
22、模块层。其中Struts是系统的整体基础架构,负责MVC(Model+View+Control)的分离,在Struts框架的模型部分,控制业务跳转,而Hibernate框架则对持久层提供支持,Spring做管理,管理struts和hibernate。具体来说就是利用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理实现Struts和hibernate,框架介绍如下图5-1所示。图5-1 框架介绍
23、图利用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性,且因为不同层之间耦合度小,更有利于小组成员并行工作,极大程度提高了开发效率。5.2 系统功能实现5.2.1 程序描述员工管理:该程序是组成企业人力资源管理系统的一部分,主要实现对员工信息的增加、删除员工信息、修改员工信息以及对员工信息按部门查询和查询所有员工信息等。该程序属于非常驻内存,程序内部是顺序处理的。奖惩管理:该程序是组成企业人力资源管理系统的一部分,主要实现对员工奖惩制度的规定以及
24、根据员工平时表现实现具体的奖惩措施等。该程序属于非常驻内存,程序内部是顺序处理的。5.2.2程序功能员工管理:该程序主要实现对员工信息的增加、删除员工信息、修改员工信息以及对员工信息按部门查询和查询所有员工信息等,其功能模块图如下图5-1所示:员工管理新增员工信息删除员工信息修改员工信息按部门查询员工的信息查询所有员工的信息退出系统 图5-1 员工管理功能模块图 奖惩管理:该程序主要实现对员工的奖励与惩罚增加、删除、查询以及制定奖惩制度等,其功能模块图5-2如下所示:员工奖惩管理新增员工奖惩信息删除员工奖惩信息详细查询奖惩信息制定员工奖惩制度退出系统 图5-2 奖惩管理功能模块图5.2.3 程
25、序性能(1)精度员工管理程序的输入、输出数据精度的要求:员工姓名:字符型,允许英文名字存在;(2)时间特性要求:查询服务部分:用户通过电脑提交查询服务命令到返回结果不超过5秒钟 数据管理部分:提交某一数据录入到结果返回不超过5秒钟;(3)灵活性操作方式:支持Win7系统,对于Windows XP系统也支持。接受到从另一个系统发来的违反协议格式的消息时能及时拒绝。 发现系统自己出现错误时能及时提出出错处理需求。5.3 流程逻辑5.3.1 员工管理登录模块的流程逻辑图:图5-3-1 员工登录流程逻辑图5.3.2 员工管理查询模块的流程逻辑图:图5-3-2 员工查询流程逻辑图5.3.3 员工管理(增
26、加、删除修改)的流程逻辑图:员工管理(增加、删除、修改)查询增加输入新的员工信息显示输出结果 Yes删除员工信息修改员工信息判断员工id是否重复?显示输出结果图5-3-3 员工增删改流程逻辑图5.3.4奖惩管理的流程逻辑图图5-3-4 奖惩管理流程逻辑图6 测试结果及发现6.1 测试1(员工登录)分别以登录用户身份和非登录用户身份登陆系统,分别可实现不同的功能。当以管理员身份登入时必须输入正确的用户名(例如:wqx)和密码(例如:111)才能登入,其权限最大。否则登入失败。当以普通登录用户登入时(managerlevel水平为0),只需输入用户帐号,当其存在于tb_manager_表中时登入成
27、功,若不存在,则登录不成功(截图6-1如下)。图6-1 员工登陆界面6.2 测试2(员工信息查询)按要求输入数据进行查询,如果数据在tb_employee存在,则在页面可以显示出来,得到预期的效果(截图6-2如下)。图6-2 员工查询界面6.3 测试3(员工信息修改)在页面修改员工信息后可以将信息成功的保存在数据库里面,通过查询数据库会发现tb_employee中的数据也相应进行了改动。EmployeeAction.java部分代码:/ 转向修改员工的页面public ActionForward forwardUpdateEmployee(ActionMapping mapping,Actio
28、nForm form, HttpServletRequest request,HttpServletResponse response) this.saveToken(request);String em_serialNumber = request.getParameter(em_serialNumber);String condition = from EmployeeForm where em_serialNumber=+ em_serialNumber + ;EmployeeForm employeeForm = (EmployeeForm) objectDao.getObjectFo
29、rm(condition);System.out.println(3213= + employeeForm.getEm_sex();request.setAttribute(employeeForm, employeeForm);request.setAttribute(departmentList, objectDao.getObjectList(from DepartmentForm);return mapping.findForward(forwardUpdateEmployee);/ 修改员工public ActionForward updateEmployee(ActionMappi
30、ng mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) EmployeeForm employeeForm = (EmployeeForm) form;if (this.isTokenValid(request) this.resetToken(request);objectDao.updateObjectForm(employeeForm); else this.saveToken(request);request.setAttribute(result, 不能重复提交!);r
31、eturn queryEmployee(mapping, form, request, response);6.4 测试4(员工信息添加)管理员(在tb_manager中managerlevel为1)按要求输入待添加员工信息,当待添加员工已存在时会弹出警告窗口(添加员工界面截图6-4如下)。图6-4 添加员工界面6.5 测试5(员工信息删除)删除操作可以达到预期效果,但是缺少恢复删除的功能,如果用户想要恢复数据只能重新添加数据信息。EmployeeAction.java部分代码:/员工录用public ActionForward addEmployee(ActionMapping mappin
32、g, ActionForm form,HttpServletRequest request, HttpServletResponse response) EmployeeForm employeeForm = (EmployeeForm) form;if (this.isTokenValid(request) this.resetToken(request);objectDao.insertObjectForm(employeeForm); else this.saveToken(request);request.setAttribute(result, 不能重复提交!);request.se
33、tAttribute(id, request.getParameter(id);return mapping.findForward(operationEmployee);/ 员工查看详细信息操作public ActionForward queryOneEmployee(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) String em_serialNumber = request.getParameter(em_serialNumber);Strin
34、g condition = from EmployeeForm where em_serialNumber=+ em_serialNumber + ;EmployeeForm employeeForm = (EmployeeForm) objectDao.getObjectForm(condition);request.setAttribute(employeeForm, employeeForm);request.setAttribute(departmentList, objectDao.getObjectList(from DepartmentForm);return mapping.f
35、indForward(queryOneEmployee);/ 删除员工信息public ActionForward deleteEmployee(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) String em_serialNumber = request.getParameter(em_serialNumber);String condition = from EmployeeForm where em_serialNumber=+ em_ser
36、ialNumber + ;EmployeeForm employeeForm = (EmployeeForm) objectDao.getObjectForm(condition);if (!objectDao.deleteObjectForm(employeeForm) request.setAttribute(result, 删除员工信息失败,可能还存在其他的信息);return mapping.findForward(operationEmployee);6.6 测试5(奖惩管理)可以达到预期结果,管理员可以制定新的奖惩制度,同时可以查询、删除、新增奖惩信息(奖惩界面截图6-5如下)。图
37、6-5 奖惩界面CjAction.java部分代码:package com.cqnuxj.action;public class CjAction extends DispatchAction private ObjectDao objectDao;public ObjectDao getObjectDao() return objectDao;public void setObjectDao(ObjectDao objectDao) this.objectDao = objectDao;/ 奖惩察看操作public ActionForward queryCj(ActionMapping ma
38、pping, ActionForm form,HttpServletRequest request, HttpServletResponse response) String information = from CjForm order by id desc;if (request.getParameter(type) != null) String type = request.getParameter(type).trim();information = from CjForm where cj_type= + type+ order by id desc;request.setAttr
39、ibute(type, type);System.out.println(information:+information);List list = objectDao.getObjectList(information);request.setAttribute(list, list);return mapping.findForward(queryCj);/ 删除奖惩操作public ActionForward deleteCj(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletRes
40、ponse response) String id = request.getParameter(id);if (id = null) CjForm cjForm = (CjForm) objectDao.getObjectForm(from CjForm where id= + id + );this.objectDao.deleteObjectForm(cjForm);return this.queryCj(mapping, form, request, response);/ 添加奖惩操作public ActionForward saveCj(ActionMapping mapping,
41、 ActionForm form,HttpServletRequest request, HttpServletResponse response) CjForm cjForm = (CjForm) form;this.objectDao.insertObjectForm(cjForm);return mapping.findForward(operationCj);/ 奖惩详细查询public ActionForward queryOneCj(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServ
42、letResponse response) String id = request.getParameter(id);CjForm cjForm = (CjForm) objectDao.getObjectForm(from CjForm where id= + id + );request.setAttribute(cjForm, cjForm);return mapping.findForward(queryOneCj);6.7 测试资源消耗此项目测试工作,共有三人参加,水平级别一般,全部测试工作花时三天,经查阅书籍,互联网上搜索相关资料,使用了三台电脑进行测试。7 系统维护7.1 系统维
43、护的重要意义系统维护是指在管理信息系统交付使用后,为了改正错误或满足新的需要而修改系统的过程。企业人力资源管理信息系统是一个复杂的人机系统,系统内外环境,以及各种人为的、机器的因素都不断地在变化着。为了使系统能够适应这种变化,充分发挥软件的作用,产生良好的社会效益和经济效益,就要进行系统维护的工作,如:改正软件中残留的错误外,尽可能多次更新软件的版本,以适应改善运行环境和加强产品性能等需要等。这些活动也属于维护工作的范畴。能不能做好这些工作,将直接影响软件的使用寿命。维护是管理信息系统生命周期中花钱最多、延续时间最长的活动近年来,从软件的维护费用来看,已经远远超过了系统的软件开发费用,占系统硬
44、、软件总投资的60%以上。一个系统的质量高低和系统的分析、设计有很大关系,也和系统的维护有很大关系。在维护工作中常见的绝大多数问题,都可归因于软件开发的方法有缺点。在软件生存周期的头两个时期没有严格而又科学的管理和规划,必然会导致在最后阶段出现问题。7.2 系统的缺陷和限制经测试发现,这几个功能存在以下缺陷,输入数据的约束不够强,与数据库同步有待加强。由于员工奖惩涉及到个人利益和集体利益,软件中存在的一些缺陷可能会导致个人或集体的利益受损,此外,由于用户名和密码过于简单,其安全性有待加强,软件功能还需进一进完善。7.3 系统维护措施1) 加强数据库和软件的安全性,有些信息没有做到同步修改,可能导致数据混乱;2) 员工信息的唯一性有待加强,可能有些数据重复而无法觉察;3) 员工奖惩模块因为时间仓促只能涉及小部分的内容,希望有机会能完善整个大的模块。参考文献:1 Jsp程序开发范例宝典出版社