《人力资源管理系统》毕业论文

上传人:小*** 文档编号:78949536 上传时间:2022-04-22 格式:DOC 页数:26 大小:1.21MB
返回 下载 相关 举报
《人力资源管理系统》毕业论文_第1页
第1页 / 共26页
《人力资源管理系统》毕业论文_第2页
第2页 / 共26页
《人力资源管理系统》毕业论文_第3页
第3页 / 共26页
点击查看更多>>
资源描述
人力资源管理系统学 院专 业班 级学 号姓 名指导教师教师职称年月日 21 摘要【摘要】随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。员工信息管理是企业信息管理的重要部分,面对大量的人事信息,采用人力处理即浪费时间、又浪费人力和物力,并且数据的准确性低。因此,开发一个界面友好,易于操作的人力资源管理软件进行自动化处理变得十分重要,这正是本系统开发的目的和意义。本文介绍了人事管理的开发过程。论文详细介绍了从系统的需求分析、系统分析、概要设计、详细设计的整个开发过程。【关键词】 目录0 引言全球范围内的企业内部组织正在发生巨变,未来企业成功的关键的依靠企业人力资源,人才之争已经成为市场竞争中的核心内容之一,以人为本成为企业立足和发展的根本。有效力管理企业的人力资源,为企业提供强有力的储备力量,使之成为企业发展的主动力。通过人力资源的有效管理,掌握最新的、准确的企业人力资源信息,并对其进行复杂的统计与分析,从而充分发挥每个员工的潜能,为企业创造更大的价值。网络化的今天,网络人力资源管理系统,使新的人力资源协作管理模式成为可能。通过网络管理系统,专门的人力资源管理人员可以提高自身的工作效率,作好人力资源管理的协调工作,提高人力资源利用率;通过网络管理系统,员工可以直接管理自己的技能,有效地发现和挖掘自身的潜能,及时与自己的上级、下属、同事进行的沟通与交流,同心协作,积极为企业的发展与决策贡献力量。通过网络人力资源管理系统对企业人力资源进行管理,使企业人力资源管理适应时代的发展要求,大大提高了企业的核心竟争力。1 系统分析 1.1 需求分析通过调查,要求系统需要有以下功能;q 全面管理企业的员工信息。q 管理企业人力资源管理的基础信息。q 人才招聘管理及企业人才库管理功能。q 企业人才培训的全程跟踪管理。q 提供企业员工考勤管理。q 设置企业员工薪酬管理。q 提供系统用户管理功能。1.2 可行性分析q 经济性通过网络化的人力资源管理,大大的提高了企业人才的利用率,使之为企业创造了更大价值。人才利用率的提高,增强了企业的核心竟争力,全面提升了企业的管理能力,从而企业适应了信息时代的网络化管理要求,。q 技术性通过网络化管理,增强了员工之间的沟通,更好的协调员工之间的协作关系;对员工考勤与薪酬管理更加的科学;全程跟踪员工的培训,通过信息的记录,更好的作出员工培训方案。2 总体设计2.1 项目规划人力资源管理系统由人事管理、考勤管理、招聘管理、培训管理、系统管理5部分组成,规划系统功能模块如下:人事管理模块:该模块主要功能是对人事管理的基础信息、员工基本信息、合同信息等进行管理招聘管理模块:该模块主要是对企业招聘信息、企业的应聘信息、企业人才库进行管理。培训管理模块:该模块主要是对企业的培训计划、培训实施、培训材料等信息进行管理。薪酬管理模块:该模块主要功能是对管理员工薪酬信息进入管理。系统管理模块:该模块主要功能是对操作员信息、操作员操作权限进入管理。2.2 系统功能结构图人力资源管理系统功能结构如图1所示。人力规划招聘信息管理企业人才库培训计划培训实施培训材料薪酬登记薪酬修改薪酬查询添加用户用户管理主管部门审批人事部门审批员工考勤登记员工考勤登记考勤分析报表考勤规划设置人事管理考勤管理招聘管理培训管理薪酬管理系统管理人力资源管理系统 图1 人力资源管理系统功能结构图3 系统设计3.1 设计目标本系统主要用于对企业中的“人”进行管理。具体地讲,人力资源管理系统就是通过人力资源规划、员工考核、薪酬管理、员工激励、人才培训和开发等一系列手段来提高劳动生产率,最终达到发展目标的一种管理行为。具体实现目标如下: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 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管理平台。主页功能模块主要包括以下功能模块:人员管理:主要包括浏览人员信息、添加人员信息、人员信息的添加、人员信息的修改。招聘管理:主要包括应聘人员信息的详细查看、删除、添加以及信息入库。培训管理:主要包括培训计划的详细信息、信息删除、添加培训计划和填写培训总结。奖惩管理:主要包括奖惩详细信息、删除详细信息、添加详细信息、修改详细信息。薪金管理:主要包括薪金的修改、添加、删除。5 用户操作功能模块5.1 用户操作文件总体架构1 模块功能介绍用户操作模块主要包括用户登录和人员管理模块,具体功能如下:用户登录模块:用于登录系统。人员管理模块:用于浏览、添加和修改人员信息。5.2 用户登陆模块设计用户登录模块是用户进入主页面的入口,其运行结果如3所示。图3 用户登录模块运行结果系统登陆是人力资源管理中最先使用的功能,因为用户登陆在数据库中使用的是人员表,人员表中有一个isadmin字段,是来标识是否是管理员的。在登陆时要根据数据库的这个字段来判断此用户是否具有管理员的权限。在网页里添写用户名和密码后点击【登陆】按钮,网页会访问一个URL,这个URL是“logon.do?action=logon”,代码如下: 用户名: 密  码:   在这个表单的name的值是usersForm,它是Struts的ActoinForm的实现类在配置文件中的名字,如下所示:action是Struts的Action的URL,他们在Struts的配置文件中都是已经配好的,如下所示: 在这个配置文件中,可以了解到如下信息: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的Action的实现类是这个登陆页的核心内容,就来看看它是怎么实现的吧,如下所示: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 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 UsersDao(); 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.findForward(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(mapping,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 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, ActionForm 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, ActionForm 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, HttpServletRequest 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().setAttribute(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 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.findForward(success); Struts的Action实现类的execute()方法是最先被执行的,这个方法本身也没有具体的事务,而是根据action的参数不同执行相应的方法。在登陆页里面可以找到有一个“action=logon”的字样,它的目的就是在这里做逻辑判断。当action=logon时调用logon()方法。logon()方法从UsersForm中得到用户提交的数据,然后在调用UsersDao()的logonUsers()方法。并且把UsersForm转成Users类做为logonUsers()方法的参数。调用后会返回一个boolean型的值。如果为真,则返回“mapping.findForward(success);”否则返回“mapping.findForward(failed);”也就是当用户登陆成功后,返回给用户登陆成功的页面,登陆失败后返回用户一个登陆失败的页面。那么UsersDao的logonUsers()方法是根据什么得到的返回值呢,现在就让我们看看这个方法,如下所示: public boolean logonUsers(Users users) throws HibernateException Session session = HibSessionFactory.currentSession(); Transaction tx = session.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).byteValue(); 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再像使用一个欲编译似的命令似的东西,设定参数、提交事务和最后在关闭Session.。得到一个List里面就存储着所有查询出的结果。根据这个结果就可以判断出该用户是否有登陆的权根了,在返回true 或者false。就这样合法的用户就可以顺利的登陆了。那刚才那些有些类似于欲编译的东西是什么呢,这些就是Hibernate特有的查询语言,被称为Hibernate 查询语言(HQL),而它本身也就是使用的JDBC的欲编译技术。5.3 人员管理模块设计人员管理模块主要包括浏览人员信息、添加人员信息、人员信息的添加、人员信息的修改。此模块文件架构如图4所示。各项管理工作都是在用户成功登陆后的管理页面进行的,在管理控制页面的左侧是各项的相关链接,右侧是操作平台。管理控制页面右侧实际上是一个iframe,如下所示: 在左侧的链接中使用target=frame就可以在这个iframe中打开新的链接了。单击“添加人员信息”,即打开添加人员信息的页面如图4所示。图4 添加人员信息页面添加人员信息的链接是这样的,如下所示:添加人员信息在Struts配置文件中,添加人员信息的链接没有使用ActionForm类,也没有使用Action的实现类,如下所示: adduser.jsp文件,只是一个普通的JSP文件,但是它的表单元素都是与UsersForm相对应的,UsersForm如下所示:package com.bOS.bPRO_PersonManage.actionform;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 ActionForm 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 String 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 String 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.username=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(UsersForm = 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 = + 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; 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(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 session = HibSessionFactory.currentSession(); Transaction tx = session.beginTransaction(); session.save(users); mit(); HibSessionFactory.closeSession(); 如果添加成功页面会被发转到user.do?action=listuser的URL。user.do的配置文件如下所示: 这样就在页面做一次提交时它访问了二次UsersAction,第一次的作用是向数据库中添加信息,随后又把所有人员信息取出来显示给用户,同样UsersAction还只是调用UsersDao,取数据库的具体操作在UsersDao文件中,他这次调用的是listUser()方法,如下所示: public List listUser() throws HibernateException Session session = HibSessionFactory.currentSession(); Transaction tx = session.beginTransaction(); Query query = session .createQuery(select u from Users as u order by createtime); List list = query.list(); mit(); HibSessionFactory.closeSession(); return list; UsersAction取出从UsersDao中数据,在把它存到request里,然后返回return mapping.findForward(success);在Strutsr的配置文件里返回页是listuser.jsp。所有用户的信息都在这个页中显示出来。如下所示: 浏览人员信息 人员姓名 登陆密码 性别 出生日期 是否管理员 简介 执行操作 0) Iterator it = list.iterator(); while (it.hasNext() Users u = (Users) it.next(); %         a href=selectuser.do?action=selectuser&id=修改  a href=modifyuser.do?action=deleteuser&id=删除 对不起,没有添加人员信息! 在显示页中,从request里面的取出数据,如果有则显示在页面上,使用“list!=null&list.size()0”判断如果在没有数据的情况下,将对用户提示说“对不起,没有添加人员信息!”。这是添加人员信息的整个过程,在这个过程中,有一部分是用于显示人员信息的,就是“user.do?action=listuser”,它是显示人员信息的地址。如果在网页中直接点击这个链接地址,同样也会调用出所有用户的信息。这就是“浏览人员信息”的链接。页面执行后如图5所示。图5 浏览人员信息页面人员信息的列表的最后一列可以对该条记录做删除和修改。删除的链接地址是“modifyuser.do?action=deleteuser&id=”它向Action的实现类提交了两个参数,一个是action=deleteuser是固定不变的,另一个是该用户的id这是根据不同记录取出来的。在UsersAction类中根据action的值可以找到与其相对的方法,如下所示: private ActionForward deleteUser(ActionMapping mapping, ActionForm 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); 在这个方法里得到页面提交过来的用户ID,把这个id存在Users表中的实例中,传给dao的deleteUsers()方法,我们可以看到关于数据库方面的操作都被封装在Dao中。具体的删除操作的代码如下所示: public void deleteUsers(Users users) throws HibernateException Session session = HibSessionFactory.currentSession(); Transaction tx = session.beginTransaction(); session.delete(users); mit(); HibSessionFactory.closeSession(); 删除用户时和添加用户一样都是先得到一个Hibernate的Session,后调用它的delete()方法就可以了,操作完成后千万记得要提交事务,即调用commit()方法,和关闭Session。修改人员的信息时必须先把要修改的人员信息先查找出来,让用户可以直观的根据以前的信息修改。这样在点击修改时也要传给Action一个用户ID,用来查询出用户信息,如下所示:a href=selectuser.do?action=selectuser&id=修改根据页面的链接可以在Struts的配置文件里找到相应的配置信息,如下所示: 它调用了UsersAction类,返回到updateuser.jsp文件,在UsserAction中同前面一样也是根据action的参数来识别出调用selectUser()方法的,方法实现如下所示: private ActionForward selectUser(ActionMapping mapping, ActionForm 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); 这个方法使在调用Dao的loadUsres()的方法后,得到一个Users的返回值,里面存着与此id相对应的人员信息,然后在把它存在request里。loadUsres()方法实现如下所示: public Users loadUsers(long id) throws HibernateException
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!