《《人力资源管理系统》论文.doc》由会员分享,可在线阅读,更多相关《《人力资源管理系统》论文.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、人力资源管理系统学 院专 业班 级学 号姓 名指导教师教师职称年月日 21 摘要【摘要】随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。员工信息管理是企业信息管理的重要部分,面对大量的人事信息,采用人力处理即浪费时间、又浪费人力和物力,并且数据的准确性低。因此,开发一个界面友好,易于操作的人力资源管理软件进行自动化处理变得十分重要,这正是本系统开发的目的和意义。本文介绍了人事管理的开发过程。论文详细介绍了从系统的需求分析、系统分析、概要设计、详细设计的整个开发过程。【关键词】 目录0 引言全球范围内的企业内部组织正在发生巨变,未来企业成功的关键的依靠企业人
2、力资源,人才之争已经成为市场竞争中的核心内容之一,以人为本成为企业立足和发展的根本。有效力管理企业的人力资源,为企业提供强有力的储备力量,使之成为企业发展的主动力。通过人力资源的有效管理,掌握最新的、准确的企业人力资源信息,并对其进行复杂的统计与分析,从而充分发挥每个员工的潜能,为企业创造更大的价值。网络化的今天,网络人力资源管理系统,使新的人力资源协作管理模式成为可能。通过网络管理系统,专门的人力资源管理人员可以提高自身的工作效率,作好人力资源管理的协调工作,提高人力资源利用率;通过网络管理系统,员工可以直接管理自己的技能,有效地发现和挖掘自身的潜能,及时与自己的上级、下属、同事进行的沟通与
3、交流,同心协作,积极为企业的发展与决策贡献力量。通过网络人力资源管理系统对企业人力资源进行管理,使企业人力资源管理适应时代的发展要求,大大提高了企业的核心竟争力。1 系统分析 1.1 需求分析通过调查,要求系统需要有以下功能;q 全面管理企业的员工信息。q 管理企业人力资源管理的基础信息。q 人才招聘管理及企业人才库管理功能。q 企业人才培训的全程跟踪管理。q 提供企业员工考勤管理。q 设置企业员工薪酬管理。q 提供系统用户管理功能。1.2 可行性分析q 经济性通过网络化的人力资源管理,大大的提高了企业人才的利用率,使之为企业创造了更大价值。人才利用率的提高,增强了企业的核心竟争力,全面提升了
4、企业的管理能力,从而企业适应了信息时代的网络化管理要求,。q 技术性通过网络化管理,增强了员工之间的沟通,更好的协调员工之间的协作关系;对员工考勤与薪酬管理更加的科学;全程跟踪员工的培训,通过信息的记录,更好的作出员工培训方案。2 总体设计2.1 项目规划人力资源管理系统由人事管理、考勤管理、招聘管理、培训管理、系统管理5部分组成,规划系统功能模块如下:人事管理模块:该模块主要功能是对人事管理的基础信息、员工基本信息、合同信息等进行管理招聘管理模块:该模块主要是对企业招聘信息、企业的应聘信息、企业人才库进行管理。培训管理模块:该模块主要是对企业的培训计划、培训实施、培训材料等信息进行管理。薪酬
5、管理模块:该模块主要功能是对管理员工薪酬信息进入管理。系统管理模块:该模块主要功能是对操作员信息、操作员操作权限进入管理。2.2 系统功能结构图人力资源管理系统功能结构如图1所示。人力规划招聘信息管理企业人才库培训计划培训实施培训材料薪酬登记薪酬修改薪酬查询添加用户用户管理主管部门审批人事部门审批员工考勤登记员工考勤登记考勤分析报表考勤规划设置人事管理考勤管理招聘管理培训管理薪酬管理系统管理人力资源管理系统 图1 人力资源管理系统功能结构图3 系统设计3.1 设计目标本系统主要用于对企业中的“人”进行管理。具体地讲,人力资源管理系统就是通过人力资源规划、员工考核、薪酬管理、员工激励、人才培训和
6、开发等一系列手段来提高劳动生产率,最终达到发展目标的一种管理行为。具体实现目标如下:q 实现对员工信息进行全面管理的功能。q 设置人力资源基础信息管理功能。q 设置员工考勤管理功能模块。q 员工薪酬信息管理。q 实现企业员工培训信息全程跟踪的功能。q 实现企业的招聘信息、应聘信息的管理功能。q 企业人才库管理功能。q 系统用户信息的管理。q 系统最大限度地实现了易安装性、易维护性和易操作性。q 系统运行稳定、安全可靠。3.2 开发及运行环境硬件平台:q CPU:P41.8GHz;q 内存:256MB以上。软件平台:q 操作系统:Windows XP/Windows 2000;q 数据库:SQL
7、 Server 2000;q 开发工具包:JDK Version1.4.2;q JSP服务器:Tomcat;q 浏览器:IE5.0,推荐使用IE6.0;q 分辨率:最佳效果1024*768像素。3.3 数据库设计本系统采用SQL Server 2000 数据库,系统数据库名为PersonManage,数据库PersonManage中包括5个数据表。关于数据库中的数据表请参见附录B4 系统总体架构4.1 模块功能介绍人力资源管理系统是针对中小企业对现有员工和新聘员工的一个WEB管理平台。主页功能模块主要包括以下功能模块:人员管理:主要包括浏览人员信息、添加人员信息、人员信息的添加、人员信息的修改
8、。招聘管理:主要包括应聘人员信息的详细查看、删除、添加以及信息入库。培训管理:主要包括培训计划的详细信息、信息删除、添加培训计划和填写培训总结。奖惩管理:主要包括奖惩详细信息、删除详细信息、添加详细信息、修改详细信息。薪金管理:主要包括薪金的修改、添加、删除。5 用户操作功能模块5.1 用户操作文件总体架构1 模块功能介绍用户操作模块主要包括用户登录和人员管理模块,具体功能如下:用户登录模块:用于登录系统。人员管理模块:用于浏览、添加和修改人员信息。5.2 用户登陆模块设计用户登录模块是用户进入主页面的入口,其运行结果如3所示。图3 用户登录模块运行结果系统登陆是人力资源管理中最先使用的功能,
9、因为用户登陆在数据库中使用的是人员表,人员表中有一个isadmin字段,是来标识是否是管理员的。在登陆时要根据数据库的这个字段来判断此用户是否具有管理员的权限。在网页里添写用户名和密码后点击【登陆】按钮,网页会访问一个URL,这个URL是“logon.do?action=logon”,代码如下: 用户名: 密 码: 在这个表单的name的值是usersForm,它是Struts的ActoinForm的实现类在配置文件中的名字,如下所示:action是Struts的Action的URL,他们在Struts的配置文件中都是已经配好的,如下所示: 在这个配置文件中
10、,可以了解到如下信息:q 根据name=userForm可以找到与之相对应的ActionForm的实现类“com.bOS.bPRO_PersonManage.actionform.UsersForm”。q 根据type=com.bOS.bPRO_PersonManage.action.UsersAction可以找到处理用户数据的Action类。q 根据和可以了解,这个Action返回success时,页面会被转到manage.jsp文件,这就是登陆成功的页面。如果当Action返回failed时,页面会被转到failed.jsp文件,这个文件是当用户登陆失败将要转到的页面。Struts的Act
11、ion的实现类是这个登陆页的核心内容,就来看看它是怎么实现的吧,如下所示:package com.bOS.bPRO_PersonManage.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.hibernate.HibernateException;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import
12、 org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.bOS.bPRO_PersonManage.actionform.UsersForm;import com.bOS.bPRO_PersonManage.en.Users;import com.bOS.bPRO_PersonManage.service.UsersDao;public class UsersAction extends Action private UsersDao dao=new Use
13、rsDao(); public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception String action =request.getParameter(action);/ System.out.println(nUsersAction*action=+action); if(action=null|.equals(action) return mapping.findFo
14、rward(error); else if(listuser.equals(action) return listUser(mapping,form,request,response); else if(adduser.equals(action) return addUsers(mapping,form,request,response); else if(logon.equals(action) return logon(mapping,form,request,response); else if(updateuser.equals(action) return updateUser(m
15、apping,form,request,response); else if(deleteuser.equals(action) return deleteUser(mapping,form,request,response); else if(selectuser.equals(action) return selectUser(mapping,form,request,response); return mapping.findForward(error); private ActionForward selectUser(ActionMapping mapping, ActionForm
16、 form, HttpServletRequest request, HttpServletResponse response) throws HibernateException Long id=new Long(request.getParameter(id); Users u=dao.loadUsers(id.longValue(); request.setAttribute(user,u); return mapping.findForward(success); private ActionForward deleteUser(ActionMapping mapping, Actio
17、nForm form, HttpServletRequest request, HttpServletResponse response) throws HibernateException Long id=new Long(request.getParameter(id); Users users=new Users(); users.setId(id); dao.deleteUsers(users); return mapping.findForward(success); private ActionForward updateUser(ActionMapping mapping, Ac
18、tionForm form, HttpServletRequest request, HttpServletResponse response) throws HibernateException UsersForm usersform=(UsersForm)form; Users users=usersform.populate(); dao.updateUsers(users); return mapping.findForward(success); private ActionForward logon(ActionMapping mapping, ActionForm form, H
19、ttpServletRequest request, HttpServletResponse response) throws HibernateException UsersForm usersform=(UsersForm)form; Users users=new Users(); users.setUsername(usersform.getUsername(); users.setPassword(usersform.getPassword(); boolean flag=dao.logonUsers(users); if(flag) request.getSession().set
20、Attribute(users,users); return mapping.findForward(success); else return mapping.findForward(failed); private ActionForward addUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws HibernateException UsersForm usersform=(UsersForm)form; Users
21、users=usersform.populate(); dao.addUsers(users); return mapping.findForward(success); private ActionForward listUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws HibernateException request.setAttribute(list,dao.listUser(); return mapping.fi
22、ndForward(success); Struts的Action实现类的execute()方法是最先被执行的,这个方法本身也没有具体的事务,而是根据action的参数不同执行相应的方法。在登陆页里面可以找到有一个“action=logon”的字样,它的目的就是在这里做逻辑判断。当action=logon时调用logon()方法。logon()方法从UsersForm中得到用户提交的数据,然后在调用UsersDao()的logonUsers()方法。并且把UsersForm转成Users类做为logonUsers()方法的参数。调用后会返回一个boolean型的值。如果为真,则返回“mappi
23、ng.findForward(success);”否则返回“mapping.findForward(failed);”也就是当用户登陆成功后,返回给用户登陆成功的页面,登陆失败后返回用户一个登陆失败的页面。那么UsersDao的logonUsers()方法是根据什么得到的返回值呢,现在就让我们看看这个方法,如下所示: public boolean logonUsers(Users users) throws HibernateException Session session = HibSessionFactory.currentSession(); Transaction tx = sess
24、ion.beginTransaction(); Query query = session .createQuery(select count(*) from Users as u where u.username = :name and u.password =:password and u.isadmin=:isadmin ); query.setString(name, users.getUsername(); query.setString(password, users.getPassword(); query.setByte(isadmin,new Byte(1).byteValu
25、e(); List list = null; list = query.list(); mit(); HibSessionFactory.closeSession(); if (list != null) Iterator it = list.iterator(); if (it.hasNext() if (Integer) it.next().intValue() = 1) return true; return false; 这个方法先通过HibSessionFactory得到一个Hibernate的Session并且开始一个事务,Session再像使用一个欲编译似的命令似的东西,设定参数
26、、提交事务和最后在关闭Session.。得到一个List里面就存储着所有查询出的结果。根据这个结果就可以判断出该用户是否有登陆的权根了,在返回true 或者false。就这样合法的用户就可以顺利的登陆了。那刚才那些有些类似于欲编译的东西是什么呢,这些就是Hibernate特有的查询语言,被称为Hibernate 查询语言(HQL),而它本身也就是使用的JDBC的欲编译技术。5.3 人员管理模块设计人员管理模块主要包括浏览人员信息、添加人员信息、人员信息的添加、人员信息的修改。此模块文件架构如图4所示。各项管理工作都是在用户成功登陆后的管理页面进行的,在管理控制页面的左侧是各项的相关链接,右侧是
27、操作平台。管理控制页面右侧实际上是一个iframe,如下所示: 在左侧的链接中使用target=frame就可以在这个iframe中打开新的链接了。单击“添加人员信息”,即打开添加人员信息的页面如图4所示。图4 添加人员信息页面添加人员信息的链接是这样的,如下所示:添加人员信息在Struts配置文件中,添加人员信息的链接没有使用ActionForm类,也没有使用Action的实现类,如下所示: adduser.jsp文件,只是一个普通的JSP文件,但是它的表单元素都是与UsersForm相对应的,UsersForm如下所示:package com.bOS.bPRO_PersonManage.a
28、ctionform;import com.bOS.bUtil.DateUtil;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;import com.bOS.bPRO_PersonManage.en.Users;public class UsersForm extends ActionFo
29、rm public String getContent() return content; public void setContent(String content) this.content = content; private Long id; private String username; private String password; private Byte sex; private String birthday; private String createtime; private Byte isadmin; private String content; public S
30、tring getCreatetime() return createtime; public void setCreatetime(String createtime) this.createtime = createtime; public Long getId() return id; public void setId(Long id) this.id = id; public Byte getIsadmin() return isadmin; public void setIsadmin(Byte isadmin) this.isadmin = isadmin; public Str
31、ing getPassword() return password; public void setPassword(String password) this.password = password; public String getUsername() return username; public void setUsername(String username) this.username = username; public void reset(ActionMapping arg0, HttpServletRequest arg1) this.id=null; this.user
32、name=null; this.password=null; this.isadmin=null; this.createtime=null; this.content=null; this.sex=null; this.birthday=null; public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) return null; public String toString() StringBuffer toStr = new StringBuffer(); toStr.append(UsersFor
33、m = n); toStr.append( id = + this.id + ;n); toStr.append( username = + this.username + ;n); toStr.append( password = + this.password + ;n); toStr.append( sex = + this.sex + ;n); toStr.append( birthday = + this.birthday+ ;n); toStr.append( createtime = + this.createtime+ ;n); toStr.append( isadmin =
34、+ this.isadmin + ;n); toStr.append( content = + this.content + ;n); toStr.append( ;n); return toStr.toString(); public String getBirthday() return birthday; public void setBirthday(String birthday) this.birthday = birthday; public Byte getSex() return sex; public void setSex(Byte sex) this.sex = sex
35、; public Users populate() Users u=new Users(); u.setId(getId(); u.setIsadmin(getIsadmin(); u.setContent(getContent(); u.setUsername(getUsername(); u.setPassword(getPassword(); u.setSex(getSex(); u.setBirthday(DateUtil.parseToDate(getBirthday(),DateUtil.yyyyMMdd); u.setCreatetime(DateUtil.parseToDate
36、(getCreatetime(),DateUtil.yyyyMMddHHmmss); return u; UsersForm类中的reset()方法作用是当用户点击“重置”按钮时,清空input输入框的内容,toString()方法覆盖了Object和toString()方法,populate()方法很有,它把UsersForm转化成Users实体类,大大方便了程序在对数据库操作时使用的方便。而且这个方法中还把用户的生日等表单元素的值由字符型转成日期类型。在adduser.jsp页面中的action上可以看到它要提交的URL,如下所示:配置文件中modifyuser的Action实现类是“com.bOS.bPRO_PersonManage.action.UsersAction”,如下所示:在UsersAction找到参数action等于adduser时所调用的方法addUsers(),它只是把从UserForm表单转化成的User类做为参数传给了UsersDao的addUsers()方法。在由这个方法向数据库添加人员信息,如下所示: public void addUsers(Users users) throws HibernateException users.setCreatetime(new java.util.Date(); Session sessi