• 【毕业设计】基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统


    基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现(毕业论文+程序源码)

    大家好,今天给大家介绍基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。

    文章目录:

    1、项目简介

    1. 本文主要介绍人力资源管理系统,采用自顶向下的结构化系统分析方法,系统是基于MyEclipse来设计开发的,数据库采用MySQL。系统分为前台和后台两个部分,前台实现了员工的个人薪酬查询,月度考核查询及参与公司调查功能;后台实现了管理员的个人密码管理,员工信息管理,绩效考核管理,薪酬福利管理,调查项目管理和月度考核管理功能。
    2. 人力资源管理系统可使企业降低人工成本,提高人事管理的效率,具有管理方便、可靠性高、存储量大等优点,为企业的职员信息管理提供实用的管理工具。

    2、资源详情

    项目难度:中等难度
    适用场景:相关题目的毕业设计
    配套论文字数:35952个字69页
    包含内容:整套源码+完整毕业论文+答辩PPT+任务书


    3、关键词:

    人力资源;绩效考核;薪酬福利;管理工具;jsp;mysql ;bs;java

    4、毕设简介:

    提示:以下为毕业设计的简略介绍,项目源码及完整毕业论文下载地址见文末。

    绪论
    1.1 系统开发的背景
    省略

    因此,越来越多的企业利用人力资源管理系统这个工具,企业通过人力资源管理系统统一管理职工各方面的信息,提高办公效率,对人力资源做到有效的利用和开发,满足了现代企业的管理需求。

    1.2 系统开发的目的
    省略

    1.3 国内外研究现状
    省略

    现行人力资源管理系统仍存在诸多缺点,如:如数据存储量巨大,系统运行不流畅,工资算法多样导致存储起来会碰到困难等。

    1.4 本文主要研究内容
    本文研究的主要内容包括:
    (1)介绍了公司人力资源管理系统的背景和现状,阐述了人力资源对公司人力资源管理系统的需求已经到了白热化的程度。

    (2)对人力资源管理系统的可行性进行了三个方面的分析,分别对技术可行性、经济可行性和社会可行性进行研究。

    (3)在B/S (Browser/Server浏览器/服务器)模式下运行,确定系统开发语言为JSP,后台数据库为MySQL。

    (4)在对公司职员信息管理流程详细分析的基础上,提出了系统的功能需求和系统

    (5)对系统进行界面设计,分别对系统登录、员工信息管理、绩效考核管理、薪酬福利管理、月度考核管理、调查项目管理等相关功能做了描述和实现。

    (6)对该系统的总结与展望,提出了一些不足和以后的改进方向。

    1.5 本文结构
    本文的结构是先阐述系统开发的背景、目的,然后对人力资源管理系统按照软件开发流程进行需求分析、概要设计、详细设计、编码及测试,重点阐述需求分析、概要设计和详细设计。

    2 系统分析
    2.1 可行性分析
    2.1.1 技术可行性
    省略

    2.1.2 经济可行性
    省略

    2.1.3 社会可行性
    省略

    2.2 需求分析
    2.2.1 需求分析的任务
    省略

    2.2.2 系统需求
    省略

    2.3 系统性能分析
    省略

    3 系统概要设计
    3.1 系统设计总体思想
    用户根据自己的用户名和密码进行登录,如果输入的用户名或者密码错误,系统都会自动给出提示框提示登录错误。如果登录成功,根据不同用户的操作权限,登录到页面时有不同的功能。以管理员身份登录的用户可以对密码进行修改、增加或删除系统管理员、对员工信息进行管理并可为新增加的员工分配普通员工的账号和密码、对绩效考核进行管理、对薪酬福利进行管理、对调查项目进行管理、管理员工年月度考核信息。而以普通员工身份登录的用户则只可以查看自己的薪酬、查看自己的考核信息、参与公司的调查。

    (1)系统采用B/S模式
    B/S(Browser/Server)模式即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、速度快、效果优。

    (2)系统采用三层结构开发模式
    三层结构通常是指数据访问层、业务逻辑层和表示层,各层之间相互依赖。三层结构是基于模块化程序设计的思想,为实现分解应用程序的需求而形成的一种标准模式的模块划分方法。三层结构的优点在于不必为了业务逻辑上的微小变化修改整个程序,只需要修改业务逻辑层的一个函数或者一个过程;增强了代码的可重用性;便于不同层次的开发人员之间的合作,只要遵循一定的接口标准就可以进行并行开发了。

    (3)功能实用、操作简单、易于维护和管理模式简洁
    系统应保证数据可靠、完整,安装调试方便,系统与环境的适应性、可调整性与系统的稳定性相结合。在设计系统界面时力求简洁明了且带有必要的操作提示,以方便用户使用。

    (4)数据的可靠性、易维护性和安全性
    较好的服务器产品、大型数据库的使用,为数据的可靠性提供了良好的保证。数据库结构的合理设计以及MySQL方便的应用,在很大程度上解决了对数据维护、整理和处理的难题,又能方便查询数据来源。本系统是基于B/S方式的应用系统,在安全性方面有更高的要求,应该从系统设计和用户权限管理等方面保证系统的数据安全。

    (5)友好的用户界面及操作的灵活性
    系统界面设计友好,功能尽可能细化和分离,采用模块化设计,数据库结构中尽量提高数据的独立性。这些措施的采用,使得本系统具有了较强的可操纵性,无需计算机专业人员即可使用,减少了人员培训过程及开销;系统具有了较强的可扩展性,可根据实际情况和管理的需要对系统进行扩充;系统具有了较强的可塑性,可根据管理方式或不同企业的管理特点对系统进行必要的修改,以适应各种变革带来的不同的需要。

    3.2 系统开发平台
    处理器:Intel® Core™i5
    内存:4G
    硬盘:500G
    操作系统:Windows 7
    数据库:MySQL
    开发语言:JSP
    Web服务器:Tomcat 6.0

    3.3 系统数据库设计
    3.3.1 关系的完整性
    省略

    3.3.2 数据库完整性
    省略

    3.3.3 数据库的设计原则
    省略

    3.3.4 概念结构设计
    省略

    概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。描述概念模型的有力工具是E-R模型。E-R图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。它是按照用户的观点来对数据和信息进行建模,利用实体关系图来实现。它描述系统中的各个实体以及相关实体之间的关系,是系统特性的静态描述,是系统进一步开发的基础,是整个系统设计的关键。根据系统分析的结果,具体分析不同实体用户,描述不同实体之间的关系,得出本系统数据实体图和E-R图。

    人力资源管理系统E-R图,如图3-1所示。

    在这里插入图片描述

    首先确定职员业绩信息管理工作的实体,通过分析,实体可以分为:员工实体、绩效实体、考核实体、薪酬实体、调查实体、调查结果实体。

    员工实体含有的属性有:编号、姓名、性别、年龄、电话、地址、备注、职位、证件号、入职年份、权限、登录名、登录密码。

    员工实体图如图3-2所示。
    在这里插入图片描述

    绩效实体含有的属性有:编号、月份、员工编号、奖金、迟到、备注。考核实体含有的属性有:编号、月份、员工编号、能力、技术能力、综合能力、态度、主动性态度、责任感态度、纪律性态度、协作性态度、备注。薪酬实体含有的属性有:编号、员工编号、月份、基本工资、岗位工资、车补、餐补、业绩奖金、绩效奖金、个人税、薪酬、备注。调查实体含有的属性有:编号、名称、时间、备注。调查结果实体含有的属性有:编号、调查编号、员工编号、答案、时间。

    这些实体之间的联系如下:
    (1)一个员工可以获得多条薪酬信息,而一条薪酬信息只能属于一个员工,因此员工和薪酬之间是一对多的关系。

    (2)一个员工可以获得多条绩效信息,而一条绩效信息只能属于一个员工,因此员工和绩效之间是一对多的关系。

    (3)一个员工可以获得多条考核信息,而一条月度考核信息只能属于一个员工,因此员工和考核之间是一对多的关系。

    (4)一个员工可以做多个调查,每一个调查又能被多个员工做,因此员工和调查之间是多对多的关系。

    (5)一个调查有多个调查结果,而一个调查结果只能属于一个调查,因此调查和调查结果之间是一对多的关系。

    (6)一个考核信息对应一个薪酬信息,所以考核与薪酬是一对一的关系。

    (7)一个绩效信息对应一个薪酬信息,所以绩效与薪酬是一对一的关系。

    3.3.5 主要数据表的设计
    (1)系统管理员信息表
    该表用来存储系统管理员的基本信息。在该表中包括三个字段,用户编号、用户名、用户密码,只有输入正确的用户名和密码才能进入该系统,其表结构如表3.1所示。

    在这里插入图片描述

    (2)月度考核信息表
    该表用于存储员工的月度考核的信息。该表的主要字段有考核编号、考核月份、员工编号、能力总分、技术能力得分、综合能力得分、态度总分、主动性得分、责任感得分、纪律性得分、协作性得分,其表结构如表3.2所示。
    在这里插入图片描述

    (3)绩效考核信息表
    该表用于存储员工的绩效考核的信息。此表的主要字段有绩效编号、绩效考核的月份、员工编号、迟到次数、奖金、备注。其中员工编号是员工信息表中的主键,其表结构如表3.3所示。
    在这里插入图片描述

    (4)薪酬信息表
    该表用于存储员工的薪酬信息。该表主要字段有薪酬编号、员工编号、月份、基本工资、岗位工资、车补、餐补、业绩奖金、绩效奖金、个人税、薪酬、备注。其中员工编号是员工信息表中的主键,其表结构如表3.4所示。
    在这里插入图片描述

    (5)员工信息表
    该表用于存储员工的基本信息。该表主要字段有员工编号、姓名、性别、年龄、电话、地址、职位、银行卡号、入职年份、权限,其表结构如表3.5所示。

    在这里插入图片描述
    (6)调查表
    该表用于存储公司发起的对员工某项调查的基本信息。该表主要字段有调查编号、调查名称、调查时间、备注,其表结构如表3.6所示。
    在这里插入图片描述
    (7)调查结果表
    该表用于存储对员工某项调查结果的基本信息。该表的主要字段有调查结果编号、调查编号、员工编号、答案、时间。其中调查编号是调查表中的主键,员工编号是员工信息表中的主键,其表结构如表3.7所示。
    在这里插入图片描述

    3.4 模块功能设计
    人力资源管理管理系统普通员工具有系统属性查询、我的薪酬查询功能、我的月度考核查询、参与公司的调查,普通员工功能结构图如图3-3所示。

    在这里插入图片描述

    以管理员身份登录的用户可以查看系统属性、对密码进行修改、增加或删除系统管理员、对员工信息进行管理并可为新增加的员工分配普通员工的账号和密码、对绩效考核进行管理、对薪酬福利进行管理、对调查项目进行管理、录入员工年月度考核信息。
    ,其功能结构图如图3-4所示。

    在这里插入图片描述

    3.5 界面需求
    3.5.1 用户界面
    省略

    3.5.2 输入设计
    省略

    3.5.3 输出设计
    省略

    3.6 运行设计
    3.6.1 运行模块的组合
    JSP的执行过程主要为:客户端发出请求,Web容器将JSP中的Form表单中的action转译,执行Servlet源代码,Web容器将产生的源代码进行编译,Web容器加载编译后的代码并执行,最后把执行结果响应至客户端。

    3.6.2 运行控制
    省略

    3.6.3 运行时间
    省略

    3.7 出错处理设计
    3.7.1 出错输出信息
    省略

    3.7.2 出错处理对策
    省略

    4 系统详细设计
    4.1 详细设计目的
    详细设计的目的是使开发人员在完成概要设计说明书的基础上完成概要设计规定的各项模块的具体实现的设计工作。

    4.2 系统模块的设计
    4.2.1 功能描述及实现的界面
    (1)用户登录
    可分为普通员工登录和管理员登录,普通员工登录可查询我的薪酬、参与公司调查和查询我的月度考核;管理员登录可修改个人密码、管理员工信息、管理绩效考核信息、管理薪酬福利信息、管理调查项目和管理员工月度考核信息。其界面如图4-1所示。
    在这里插入图片描述

    核心代码:

    if(userType==0)         //系统管理员登陆
    		{
    			String sql="select * from t_admin where userName=? and userPw=?";
    			Object[] params={userName,userPw};
    			DB mydb=new DB();
    			mydb.doPstm(sql, params);
    			try 
    			{
    				ResultSet rs=mydb.getRs();
    				boolean mark=(rs==null||!rs.next()?false:true);
    				if(mark==false)
    				{
    					 result="no";
    				}
    				else
    				{
    					 result="yes";
    					 TAdmin admin=new TAdmin();
    					 admin.setUserId(rs.getInt("userId"));
    					 admin.setUserName(rs.getString("userName"));
    					 admin.setUserPw(rs.getString("userPw"));
    					 WebContext ctx = WebContextFactory.get(); 
    					 HttpSession session=ctx.getSession(); 
    					 session.setAttribute("userType", 0);
    		            session.setAttribute("admin", admin);
    				}
    				rs.close();
    			} 
    			catch (SQLException e)
    			{
    				System.out.println("登录失败!");
    				e.printStackTrace();
    			}
    			finally
    			{
    				mydb.closed();
    			}
    
        if(userType==1)         //员工登陆
    		{
    			System.out.println("ddddddddddd");
    			String sql="select * from t_yuangong where del='no' and loginName=? 
                    and loginPw=?";
    			Object[] params={userName,userPw};
    			DB mydb=new DB();
    			mydb.doPstm(sql, params);
    			try 
    			{
    				ResultSet rs=mydb.getRs();
    				boolean mark=(rs==null||!rs.next()?false:true);
    				if(mark==false)
    				{
    					 result="no";
    				}
    				else
    				{
    					 result="yes";
    					 Yuangong yuangong=new Yuangong();
    					 yuangong.setId(rs.getInt("id"));
    					 yuangong.setName(rs.getString("name"));
    					 yuangong.setSex(rs.getString("sex"));
    					 yuangong.setAge(rs.getString("age"));
    					 yuangong.setTel(rs.getString("tel"));
    					 yuangong.setAddress(rs.getString("address"));
    					 yuangong.setZhiwei(rs.getString("zhiwei"));
    					 yuangong.setQuanxian(rs.getInt("quanxian"));
    					 yuangong.setLoginName(rs.getString("loginName"));
    					 yuangong.setLoginPw(rs.getString("loginPw"));	 
    					 WebContext ctx = WebContextFactory.get(); 
    					 HttpSession session=ctx.getSession(); 
    					 session.setAttribute("userType", 1);
    		            session.setAttribute("yuangong", yuangong);		
    				}
    				rs.close();
    			} 
    			catch (SQLException e)
    			{
    				System.out.println("登录失败!");
    				e.printStackTrace();
    			}
    			finally
    			{
    				mydb.closed();
    			}
    		}
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86

    (2)我的薪酬查询
    员工可输入账号和密码,并选择自己的身份登录人力资源管理系统,便可查询自己每月的薪酬。其界面如图4-2所示。
    在这里插入图片描述

    核心代码:

    数据库查询语句 
    String sql="select * from t_xinchou where del='no'
          and yuangongId="+Integer.parseInt(req.getParameter("yuangongId"));
    
    • 1
    • 2
    • 3

    (3)参与公司调查
    员工登录后可参与公司调查,点击“参与调查”,可匿名发表自己的评价。其界面如图4-3所示。
    在这里插入图片描述

    核心代码:

    public void diaochajieguoAdd(HttpServletRequest req,HttpServletResponse res)
    	{                       //参与调查后,调查结果会加入数据库调查表中
    		int diaocha_id=Integer.parseInt(req.getParameter("diaocha_id"));
    		int yuangong_id=Integer.parseInt(req.getParameter("yuangong_id"));
    		String daan=req.getParameter("daan");
    		String shijian=new Date().toLocaleString();
    		String sql="insert into t_diaochajieguo(diaocha_id,yuangong_id,
                  daan,shijian) values(?,?,?,?)";
    		Object[] params={diaocha_id,yuangong_id,daan,shijian};
    		DB mydb=new DB();
    		mydb.doPstm(sql, params);
    		mydb.closed();
    
    		req.setAttribute("msg", "操作成功");
           String targetURL = "/common/msg.jsp";
    		dispatch(targetURL, req, res);	
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    (4)我的月度考核
    员工登录后可查询自己的月度考核。其界面如图4-4所示。
    在这里插入图片描述

    核心代码:

    数据库查询语句 
    String sql="select * from t_yuedukaohe where del='no' order by yuefen";
    
    • 1
    • 2

    (5)修改个人密码
    管理员可输入账号和密码,并选择自己的身份登录人力资源管理系统,便可修改个人密码。其界面如图4-5所示。
    在这里插入图片描述

    核心代码:

    public String adminPwEdit(String userPwNew)//修改个人密码
    {
    	System.out.println("DDDD");
    	try 
    	{
    		Thread.sleep(700);
    	} 
    	catch (InterruptedException e)
    	{
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    
    	WebContext ctx = WebContextFactory.get();
    	HttpSession session=ctx.getSession(); 
    	TAdmin admin=(TAdmin)session.getAttribute("admin");
    	String sql="update t_admin set userPw=? where userId=?";
    	Object[] params={userPwNew,admin.getUserId()};
    	DB mydb=new DB();
    	mydb.doPstm(sql, params);
    	return "yes";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    (6)员工信息管理
    管理员登录后,可添加、删除员工信息,并可以给员工分配登录此系统的账号。其界面如图4-6和图4-7所示。
    在这里插入图片描述

    核心代码:

     public void yuangongMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException                                   //员工管理
    	{   List yuangongList=new ArrayList();
    		String sql="select * from t_yuangong where del='no'";
    		Object[] params={};
    		DB mydb=new DB();
    		try
    		{
    			mydb.doPstm(sql, params);
    			ResultSet rs=mydb.getRs();
    			while(rs.next())
    		  {
    			Yuangong yuangong=new Yuangong();
    			yuangong.setId(rs.getInt("id"));
    			yuangong.setBianhao(rs.getString("bianhao"));
    			yuangong.setName(rs.getString("name"));
    			yuangong.setSex(rs.getString("sex"));
    			yuangong.setAge(rs.getString("age"));
    			yuangong.setTel(rs.getString("tel"));
    			yuangong.setAddress(rs.getString("address"));
    			yuangong.setZhiwei(rs.getString("zhiwei"));
    			yuangong.setCard(rs.getString("card"));
    			yuangong.setRuzhinianfei(rs.getInt("ruzhinianfei"));
    		   	yuangong.setGongling(new Date().getYear()+1900-rs.getInt("ruzhinianfei"));
    			yuangong.setQuanxian(rs.getInt("quanxian"));
    			yuangong.setLoginName(rs.getString("loginName"));
    			yuangong.setLoginPw(rs.getString("loginPw"));
    			yuangongList.add(yuangong);
    		     }
    			rs.close();
    	     }
    		 catch(Exception e)
    		 {
    			e.printStackTrace();
    		 }
    
    		mydb.closed();
    
    		req.setAttribute("yuangongList", yuangongList);
    		req.getRequestDispatcher("admin/yuangong/yuangongMana.jsp").forward(req, res);
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    在这里插入图片描述

    图4-7 员工添加界面

    核心代码:

       public void yuangongAdd(HttpServletRequest req,HttpServletResponse res)
    	{                                                   //员工添加
    		String bianhao=req.getParameter("bianhao");
    		String name=req.getParameter("name");
    		String sex=req.getParameter("sex");
    		String age=req.getParameter("age");
    		String tel=req.getParameter("tel");
    		String address=req.getParameter("address");
    		String zhiwei=req.getParameter("zhiwei");
    		String card=req.getParameter("card");
    		int ruzhinianfei=Integer.parseInt(req.getParameter("ruzhinianfei"));
    		String sql="insert into t_yuangong(bianhao,name,sex,age,tel,address,zhiwei,
                 card,ruzhinianfei,quanxian,loginName,loginPw,del) 
                        values(?,?,?,?,?,?,?,?,?,?,?,?,?)";		
           Object[] params={bianhao,name,sex,age,tel,address,
                 zhiwei,card,ruzhinianfei,0,"","","no"};
    		DB mydb=new DB();
    		mydb.doPstm(sql, params);
    		mydb.closed();
    		req.setAttribute("message", "操作成功");
    		req.setAttribute("path", "yuangong?type=yuangongMana");
           String targetURL = "/common/success.jsp";
    		dispatch(targetURL, req, res);            
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    (7)员工信息查询
    管理员登录后,在员工信息管理中可根据员工姓名或编号快速查询员工信息。其界面如图4-8所示。
    在这里插入图片描述

    核心代码:

    public void yuangongSearch(HttpServletRequest req,HttpServletResponse res)
                 throws ServletException, IOException      //按员工姓名查询
    	{                                                     
    		String name=req.getParameter("name");
    		List yuangongList=new ArrayList();
    		String sql="select * from t_yuangong where del='no' and
                   name like '%"+name.trim()+"%'";
    		Object[] params={};
    		DB mydb=new DB();
    		try
    		{
    			mydb.doPstm(sql, params);
    			ResultSet rs=mydb.getRs();
    			while(rs.next())
    			{
    			  Yuangong yuangong=new Yuangong();
    			  yuangong.setId(rs.getInt("id"));
    			  yuangong.setBianhao(rs.getString("bianhao"));
    			  yuangong.setName(rs.getString("name"));
    			  yuangong.setSex(rs.getString("sex"));
    			  yuangong.setAge(rs.getString("age"));
    			  yuangong.setTel(rs.getString("tel"));
    			  yuangong.setAddress(rs.getString("address"));
    			  yuangong.setZhiwei(rs.getString("zhiwei"));
    			  yuangong.setRuzhinianfei(rs.getInt("ruzhinianfei"));
    			  yuangong.setCard(rs.getString("card"));
    			  yuangong.setGongling(new Date().getYear()+1900-rs.getInt("ruzhinianfei"));
    			  yuangong.setQuanxian(rs.getInt("quanxian"));
    			  yuangong.setLoginName(rs.getString("loginName"));
    			  yuangong.setLoginPw(rs.getString("loginPw"));
    			  yuangongList.add(yuangong);
    			 }
    			rs.close();
    		 }
    		catch(Exception e)
    		{
    			e.printStackTrace();
    		}
    		mydb.closed();
    		
    		req.setAttribute("yuangongList", yuangongList);
    		req.getRequestDispatcher("admin/yuangong/yuangongMana.jsp").forward(req, res);
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    按员工编号查询SQL语句:
    String sql=“select * from t_yuangong where del=‘no’ and
    bianhao like '%”+bianhao.trim()+“%'”;

    (8)绩效考核管理
    管理员登录后,可对员工的绩效考核信息进行添加和删除。其界面如图4-9和图4-10所示。
    在这里插入图片描述

    核心代码:

    public void jixiaoMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException                               //绩效考核管理
    	{
    		List jixiaoList=new ArrayList();
    		String sql="select * from t_jixiao where del='no'";
    		Object[] params={};
    		DB mydb=new DB();
    		try
    		{
    			mydb.doPstm(sql, params);
    			ResultSet rs=mydb.getRs();
    			while(rs.next())
    		 {
    			Jixiao jixiao=new Jixiao();	
    			jixiao.setJixiao_id(rs.getInt("jixiao_id"));
    			jixiao.setJixiao_yufen(rs.getString("jixiao_yufen"));
    			jixiao.setJixiao_yuangong_id(rs.getInt("jixiao_yuangong_id"));
    		   	jixiao.setJixiao_yaungong_chidao(rs.getInt("jixiao_yaungong_chidao"));
    			jixiao.setJixiao_jiangjin(rs.getInt("jixiao_jiangjin"));
    	       jixiao.setJixiao_yuangong_Name(yuangongService.getYuangongName
                    (rs.getInt("jixiao_yuangong_id")));
    			jixiaoList.add(jixiao);
    		    }
    			rs.close();
    		}
    
    		catch(Exception e)
    		{
    			e.printStackTrace();
    		}
    
    		mydb.closed();
    		req.setAttribute("jixiaoList", jixiaoList);
    		req.getRequestDispatcher("admin/jixiao/jixiaoMana.jsp").forward(req, res);
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    在这里插入图片描述

    图4-10 绩效考核添加界面

    核心代码:

    public void jixiaoAdd(HttpServletRequest req,HttpServletResponse res)
    {                                              //绩效考核添加
    	String jixiao_yufen=req.getParameter("jixiao_yufen");
    	int jixiao_yuangong_id=Integer.parseInt(req.getParameter("jixiao_yuangong_id"));
    	String jixiao_yaungong_chidao=req.getParameter("jixiao_yaungong_chidao");
    	int jixiao_jiangjin=500-Integer.parseInt(jixiao_yaungong_chidao)*50;
    	String del="no";
    	boolean b=jixiaoService.shifoulurujixiao(jixiao_yuangong_id, jixiao_yufen);
    	System.out.println(b+"^^^");
    	if(b==true)
    	{
    		req.setAttribute("message", "该员工在此月份的绩效考核信息已录入。
                              请不要重复操作");
    		req.setAttribute("path", "jixiao?type=jixiaoMana");
           String targetURL = "/common/success.jsp";
    		dispatch(targetURL, req, res);
    	}
    	else
    	{
    		String sql="insert into t_jixiao(jixiao_yufen,jixiao_yuangong_id,
                jixiao_yaungong_chidao,jixiao_jiangjin,del) values(?,?,?,?,?)";
    		Object[] params={jixiao_yufen,jixiao_yuangong_id,
                jixiao_yaungong_chidao,jixiao_jiangjin,del};
    		DB mydb=new DB();
    		mydb.doPstm(sql, params);
    		mydb.closed();
    		req.setAttribute("message", "操作成功");
    		req.setAttribute("path", "jixiao?type=jixiaoMana");
           String targetURL = "/common/success.jsp";
    		dispatch(targetURL, req, res);
    	}	
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    (9)薪酬福利管理
    管理员登录后,可对员工每月的薪酬福利进行添加和删除。其界面如图4-11和图4-12所示。
    在这里插入图片描述

    在这里插入图片描述

    (10)调查项目管理
    管理员登录后,可添加和删除调查项目,并可以查看调查结果。其界面如图4-13和图4-14所示。

    在这里插入图片描述
    在这里插入图片描述

    (11)月度考核管理
    管理员登录后,可对员工的月度考核进行添加和删除。其界面如图4-15和图4-16所示。
    在这里插入图片描述

    在这里插入图片描述

    核心代码:

    public void yuedukaoheAdd(HttpServletRequest req,HttpServletResponse res)
    {      //月度考核添加
    		String yuefen=req.getParameter("yuefen");
    		int yuangong_id=Integer.parseInt(req.getParameter("yuangong_id"));
    		int nengli1=Integer.parseInt(req.getParameter("nenglijishu111"))+
    		            Integer.parseInt(req.getParameter("nenglizonghe12"));
    		int nenglijishu111=Integer.parseInt(req.getParameter("nenglijishu111"));
    		int nenglizonghe12=Integer.parseInt(req.getParameter("nenglizonghe12"));
    		
    		int taidu2=Integer.parseInt(req.getParameter("taiduzhudongxing21"))+
    		           Integer.parseInt(req.getParameter("taiduzerengan22"))+
    		           Integer.parseInt(req.getParameter("taidujiluxing23"))+
    		           Integer.parseInt(req.getParameter("taiduxiezuoxing24"));
    		int taiduzhudongxing21=Integer.parseInt
                     (req.getParameter("taiduzhudongxing21"));
    		int taiduzerengan22=Integer.parseInt(req.getParameter("taiduzerengan22"));
    		int taidujiluxing23=Integer.parseInt(req.getParameter("taidujiluxing23"));
    		int taiduxiezuoxing24=Integer.parseInt(req.getParameter("taiduxiezuoxing24"));
    		String del="no";
    		String sql="insert into t_yuedukaohe(yuefen,yuangong_id,nengli1,
                      nenglijishu111,nenglizonghe12,taidu2,taiduzhudongxing21,
                      taiduzerengan22,taidujiluxing23,taiduxiezuoxing24,del) 
                      values(?,?,?,?,?,?,?,?,?,?,?)";
    		Object[] params={yuefen,yuangong_id,nengli1,nenglijishu111,
                      nenglizonghe12,taidu2,taiduzhudongxing21,taiduzerengan22,
                      taidujiluxing23,taiduxiezuoxing24,del};
    		DB mydb=new DB();
    		mydb.doPstm(sql, params);
    		mydb.closed();
    		
    		req.setAttribute("message", "操作成功");
    		req.setAttribute("path", "yuedukaohe?type=yuedukaoheMana");
    		
           String targetURL = "/common/success.jsp";
    		dispatch(targetURL, req, res);
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    4.2.2 程序流程
    此人力资源管理系统分为前台和后台两部分,员工和管理员登录系统可进行的操作是不同的,系统程序流程图如下。
    (1)员工如未登录成功,即显示密码错误,可重新登录;登录成功后,可进行我的薪酬查询、参与公司调查和我的月度考核操作。其程序流程图如图4-17所示。
    在这里插入图片描述
    (2)管理员如未登录成功,即显示密码错误,可重新登录;登录成功后,可进行的操作有修改个人密码、员工信息管理、绩效考核管理、薪酬福利管理、调查项目管理和月度考核管理。其程序流程图如图4-18所示。

    在这里插入图片描述

    5 系统连调与测试
    5.1 编码分析
    省略

    5.2 软件测试的过程及重要性
    省略

    5.3 测试实例的研究与选择
    省略

    5.4 系统运行情况
    通过对系统的全面测试,所有测试条目都已经通过,实现了基本要求,系统可以正常运行。系统调试结果显示,本系统基本完成了功能需求,界面美观友好,操作方便。

    5.5 系统评价
    系统评价是指系统在正式运行了一段时间之后,对它在功能上、技术上和经济上所进行的审核评价。针对本系统的评价如下:
    (1)系统功能评价
    根据本系统开发前所确定的目标,在系统完成后经过测试运行,该系统达到了预定的开发目标,在实际使用中的功能可以满足用户需求。
    (2)系统技术评价
    本系统设计合理,功能达到了预期目标,且系统运行后稳定可靠,安全性高,具有实用性,大大提高了职员业绩信息管理工作效率。
    (3)系统经济评价
    在规定时间内,该系统完成了系统分析时所确定的系统开发目标,达到了设计要求,投入使用后为用户节省了大量人力物力财力,提高了科学管理水平。

    6 总结与发展前景
    6.1 总结
    本公司人力资源管理系统是运用计算机技术,在分析公司职员信息管理流程的基础上,开发的一个具有职员信息管理功能的管理信息系统,旨在简化公司的职员信息管理工作,提高工作效率。本系统运用了结构化的方法进行系统的开发。用JSP和MySQL设计并实现了公司的人力资源管理系统。

    本次系统设计与实现的过程中:
    (1)通过对公司的调研,先对项目的可行性进行了分析。
    (2)当确定了系统具有可行性之后,接下来就是需求分析、业务流程分析、数据流程分析、系统性能分析。
    (3)然后在分析的基础上,对系统进行概念结构设计,得到系统的E-R图,并同时对系统进行数据库的设计,设计出数据库的基本表,包括基本表有哪些属性以及各个表之间的联系,然后设计了系统的功能模块结构。
    (4)最后对系统进行界面设计和程序设计。
    通过以上步骤最终得到了本公司人力资源管理系统。

    但由于时间仓促加上缺乏系统开发经验,系统在设计过程中不可避免地遇到了各种各样的问题,如:
    第一,有些数据输入时没有及时的进行数据格式校验,不能保证数据绝对正确性。
    第二,由于时间关系,系统功能实现不够完善,使用不是很方便。
    第三,由于时间关系,年度考核的功能尚未实现。
    第四,由于对财务知识的匮乏,遗漏了五险一金的扣除。
    与目前市场上主流的强大的公司人力西游管理系统软件相比还有很大的差距,还有许多需要改进的地方。本系统的开发设计针对于当前公司的实际需要设计了一些模块供使用,但是在未来随着公司的不断发展,对于职员信息管理的进一步完善,还可以开发更多的功能模块来满足企业的需求。在实际操作方面,随着业务量的不断增加,系统的操作将越来越人性化,使用户可以迅速上手。相信企公司人力资源管理系统将成为企业发展过程中划时代的一步。

    6.2 现状与发展前景
    省略

    结 论
    省略

    参考文献
    [1] 龙虹.管理信息系统[M].北京理工大学出版社,2007.10~23
    [2] 邬锦雯.人力资源管理信息化[M].北京交通大学出版社,2006.121~126
    [3] 郝杰忠.管理信息系统的开发与应用[M].机械工业出版社,2006.45~49
    [4] 刘腾红,刘婧珏.信息系统分析与设计[M].清华大学出版社,2010.11~15
    [5] 张智强,孙福兆,余健等.SQL Server 2000 课程设计案例精编[M].
    清华大学出版社,2009.156~162
    [6] 王珊,萨师煊.数据库系统概论[M].高等教育出版社,2006.33~37
    [7] 陈佳.信息系统开发方法教程[M].清华大学出版社,2009.12~15
    [8] [美]Adobe公司.Adobe Dreamweaver CS5.人民邮电出版社,2011.283~293
    [9] Paul Wilton,John Colly.SQL入门经典[M].敖富江,译.清华大学出版社,2006.55~68
    [10] Joshua Bloch.Effective Java[M].杨春华,余黎敏,译.机械工业出版社,2009.131~138
    [11] Kathy Sierra,Bert Bates.Head First Java[M].O’Reilly Media,Inc,USA,2005.23~25

    致 谢
    省略

    附录 外文翻译
    英文原文
    省略

    中文翻译
    省略


    5、源码下载:

    本项目源码及论文如下,有需要的朋友可以点击进行下载

  • 相关阅读:
    【第三部分 | 移动端开发】4:Rem布局
    C++核心编程之类和对象---C++面向对象的三大特性--封装
    信息安全工程实践笔记--Day2 暴力破解
    mac电脑任务管理器 Things3 for Mac中文
    go语言|数据结构:单链表(2)
    【示波器专题】示波器一些自动测量项说明
    十年回望,中国物联网平台消亡史
    C#中ManualResetEvent的Reset,Set,WaitOne
    传智教育|git实战技巧-本地刚做出的修改、暂存和提交如何进行撤销
    C++中的deque容器
  • 原文地址:https://blog.csdn.net/m0_66238867/article/details/125472212