基于JAVA的人事管理系统设计与实现Word下载.docx
《基于JAVA的人事管理系统设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《基于JAVA的人事管理系统设计与实现Word下载.docx(64页珍藏版)》请在冰豆网上搜索。
1.2课题的研究背景
人事管理系统的发展历史可以追溯到20世纪60年代末期。
由于当时计算机技术已经进入实用阶段,同时大型企业用手工来计算和发放薪资既费时费力又非常容易出差错,为了解决这个矛盾,第一代的人事管理系统应运而生。
当时由于技术条件和需求的限制,用户非常少,而且那种系统充其量也只不过是一种自动计算薪资的工具,既不包含非财务的信息,也不包含薪资的历史信息,几乎没有报表生成功能和薪资数据分析功能。
但是,它的出现为人事管理的管理展示了美好的前景,即用计算机的高速度和自动化来替代手工的巨大工量,用计算机的高准确性来避免手工的错误和误差,使大规模集中处理大型企业的薪资成为可能。
第二代的人事管理系统出现于20世纪70年代末。
由于计算机技术的飞速发展,无论是计算机的普及性,还是计算机系统工具和数据库技术的发展,都为人事管理系统的阶段性发展提供了可能。
第二代人事管理系统基本上解决了第一代系统[1]引用计算机毕业设计专业站:
的主要缺陷,对非财务的人事管理信息和薪资的历史信息都给予了考虑,其报表生成和薪资数据分析功能也都有了较大的改善。
但这一代的系统主要是由计算机专业人员开发研制的,未能系统地考虑人事管理的需求和理念,而且其非财务的人事管理信息也不够系统和全面。
人事管理系统的革命性变革出现在20世纪90年代末。
由于市场竞争的需要如何吸引和留住人才,激发员工的创造性、工作责任感和工作热情已成为关系企业兴衰的重要因素,人才已经成为企业最重要的资产之一。
"
公正、公平、合理"
的企业管理理念和企业管理水平的提高,使社会对人事管理系统有了更高的需求;
同时由于个人电脑的普及,数据库技术、客户/服务器技术,特别是Internet/Intranet技术的发展,使得第三代人事管理系统的出现成为必然。
第三代人事管理系统的特点是从人事管理的角度出发,用集中的数据库将几乎所有与人事管理相关的数据统一管理起来,形成了集成的信息源。
友好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得人事管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人事管理规划和政策。
[2]
1.3课题的研究目的
随着网络技术的发展,传统的人工管理模式已经不适应当前企业的发展,这种管理方式存在着许多缺点,如:
效率低、保密性差、数据量大、查询等都不方便,而且还会影响企业的发展。
但人事管理系统是一个企业单位不可缺少的部分,所以一个好的人事管理系统会给企业带来更大的发展。
基于WEB模式的人事管理系统适应了当前发展的潮流,作为计算机应用的一部分,使用计算机对人事信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
从另一方面推动了企业的向前发展。
课题的目的是:
针对企事业对人事管理的需求,开发人事管理系统,力求方便快捷实现人事档案的管理,推动企业的向前发展。
2需求分析
格说明书是对系统的功能和行为完整的描述。
系统设计将来自于需求分析的抽象规格说明转变为面向真实世界的设计。
一旦构建完成,该系统就会投入使用,同时会不可避免地产生更多的新需求。
同时,需求过程与分析活动之间有相当程度的重叠,分析建模对于设定工作的范围和其他一些事来说是必要的,所以我们利用分析模型来描述需求过程,随着开发工作的继续,分析活动在工作中占的比例将变得越来越大,直到所有需求都已知。
2.1可行性分析
该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。
我们在这里主要从技术可行性、经济可行性和运行可行性等方面进行分析。
2.1.1经济可行性
开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。
而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。
所以,从经济的角度来看,该系统可行。
2.1.2技术可行性
技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。
本系统用的是JSP+JAVA开发语言,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。
软件方面:
由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。
2.1.3运行可行性
运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。
当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。
[1]引用藩编著.软件工程导论[M].清华大学出版社出版,2003,1-173.
2.2系统需求
随着企业规模的进一步扩大,企业职工的数量越来越多,管理制度也越来越变的严密复杂,传统的人工管理方式或C/S架构的管理软件的缺陷逐渐显露出来,为了提高企业人事管理系统的效率和正确性,方便职工对个人基本信息的查询,同时也为了降低管理系统的维护费用,所以决定开发基于B/S的人事管理系统。
2.3功能需求
基于系统需求分析,该人事管理系统实现下面的功能:
系统分两种身份:
员工,管理员,登陆时根据选择角色进入功能界面。
管理员:
1)员工资料管理:
包括查看职工列表、添加职工、修改职工信息等。
2)部门管理:
包括查看部门列表、修改部门信息及添加新部门等。
3)职工考勤管理:
添加、修改、删除职工考勤信息。
4)职工加班管理:
包括个人加班信息查询及添加新的加班记录等。
5)假期情况管理:
主要用来处理职工的请假申请。
6)职工工资管理:
主要用来处理职工的工资情况。
员工:
1)职工登陆后查询个人基本的信息。
2)职工还可以查询个人考勤记录。
3)职工可以查询个人请假信息。
4)职工可以修改个人密码。
5)职工可以在线请假
2.4性能需求
1)硬件环境
推荐配置为:
·
处理器:
Intel奔腾Ⅲ 或更高
内存:
512M
硬盘空间:
80GB
显卡:
Geforce系列显示适配器或更高。
2)软件环境
操作系统:
windowsXP
数据库:
MYSQL5.0
开发平台:
MyEclipse
3概要设计
3.1系统开发环境
1)JDK1.6
2)MYSQL5.0数据库
3)Tomcat6.0服务器
3.2JDK1.6和Tomcat6.0服务器配置
安装好JDK和Tomcat后,要对系统的环境变量进行配置才能运行。
点“我的电脑”右键——>
属性,选择“高级”——>
环境变量,在系统变量中新建下面几个变量。
如图所示:
JAVA_HOMEvaule为c:
\ProgramFiles\Java\jdk1.6.0_02
CLASSPATHvaule为.;
c:
\ProgramFiles\Java\JDBC\msbase.jar;
\ProgramFiles\Java\JDBC\mssalserver.jar;
\ProgramFiles\Java\JDBC\msutil.jar接着把编辑PATH变量设置我们需要的值如下vaule为
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem:
%java_home%\bin;
%java_home%\jre\bin;
%JAVA_HOME%\bin;
%CATALINA_HOME%\bin;
\ProgramFiles\Java\JDBC\msutil.jar;
\ProgramFiles\Java\jdk1.6.0_02\bin;
%SystemRoot%\System32\Wbem;
C:
\ProgramFiles\CommonFiles\ThunderNetwork\KanKan\Codecs;
\ProgramFiles\MySQL\MySQLServer5.0\bin设置完以后重新启动tomcat,打开浏览器,在地址栏中输入http:
//localhost:
8080进行验证配置是否成功。
图1环境配置
3.3系统结构图
图2系统功能
3.4管理端流程图
职工
图3管理端流程
3.5客户端流程图
图4客户端流程
3.6数据库设计
数据库的设计是系统设计的关键部分,好的数据库设计不仅能够提高系统的整体性能,也会在很大程度上影响整个项目的后续开发工作。
因此需要正确无误的操作。
3.6.1数据库E-R图设计
图5数据库E-R图
3.6.2实体图设计
该人事管理系统中的实体主要包括部门、职工、请假信息、考勤信息、加班信息、工资信息、用户登录信息,下面将依次给出各实体图。
(1)部门实体图
(2)职工实体图
(3)考勤信息实体图
(4)请假信息实体图
(5)加班信息实体图
(6)工资信息实体图
(7)用户登录信息实体图
(8)管理员信息实体图
3.6.3数据库表设计
该人事管理系统中的表主要有7张,包括部门、职工、请假信息、考勤信息、加班信息、工资信息、用户登录信息,下面将依次给出各表。
1)部门信息表:
(dept)主要包括部门编号、部门名称、部门负责人、部门电话。
名称
字段名称
数据类型
字段大小
部门编号
deptId
varchar
5
部门名称
deptName
20
部门负责人
manager
部门电话
phone
(1)部门信息表(dept)
2)职工信息表:
(employee)主要包括职工编号、职工姓名、性别、生日、学历、工资、部门编号。
职工编号
empId
职工姓名
emName
性别
sex
10
生日
birth
date
N/A
学历
education
工资
wages
double
(2)职工信息表(employee)
3)考勤信息表:
(attendance)主要包括时间、考勤类型、职工编号。
时间
empdate
datetime
考勤类型
status
30
(3)考勤信息表(attendance)
4)请假信息表:
(leaves)主要包括请假时间、离开原因、请假原因、0不同意,1同意、职工编号。
请假时间
dates
离开时间
leaveTime
int
请假原因
reason
1024
0不同意,1同意
isApprove
100
(4)请假信息表(leaves)
5)加班信息表:
(overtime)主要包括加班时间、加班小时、加班工资、职工编号。
加班时间
加班小时
howlong
加班工资
jbWages
(5)加班信息表(overtime)
6)工资信息表:
(wage)主要包括发工资时间、基本工资、加班工资、总工资、职工编号。
发工资时间
monthsWages
基本工资
总工资
TotalWages
(6)工资信息表(wage)
7)用户登录信息表:
(emplogin)主要包括用户名、用户密码、职工编号。
用户名
userName
用户密码
pwd
(7)用户登录信息表(emplogin)
8)管理员登录信息表:
(adminlogin)主要包括管理员名、密码。
管理员名
密码
(8)管理员登录信息表(adminlogin)
4详细设计
4.1登陆界面设计
服务器端界面管理员输入的帐号和密码后就进入到管理界面。
如果输入的用户名和密码都正确,则进入管理界面;
如果输入的用户名或密码两者其中有一个错误,则返回到login.jsp界面进行重新登录。
而其实现方法则是通过check方法来检查用户名和密码是否正确,并将错误的用户名或密码指示出来。
客户端的用户登录也是同样的方法。
其登录的窗口如下:
图6登陆界面
Stringsql="
select*fromadminLoginwhereuserName='
+username
+"
'
;
Statementstmt=DB.getStatement(conn);
ResultSetrs=DB.getResultSet(stmt,sql);
u=newAdminLogin();
u.setId(rs.getInt("
id"
));
u.setUserName(rs.getString("
userName"
u.setPwd(rs.getString("
pwd"
4.2部门管理模块设计
部门管理主要是对部门进行添加、删除和修改操作,实现了部门的录入等功能。
管理员可以在此模块上查看部门信息,及负责人的信息。
图7部门管理界面
insertintodeptvalues(null,?
?
)"
PreparedStatementpstmt=DB.prepare(conn,sql);
try{
pstmt.setString(1,d.getDeptId());
pstmt.setString(2,d.getName());
pstmt.setString(3,d.getManager());
pstmt.setString(4,d.getPhone());
pstmt.executeUpdate();
4.3职工管理模块设计
4.3.1职工列表模块设计
其主要的功能是对职工的信息进行添加、删除、职工信息更新。
此模块实现了职工信息的录入。
职工可以在客户端登录后查看个人的所有信息。
图8添加管理界面
insertintoemployeevalues(null,?
?
pstmt=DB.prepare(conn,sql);
pstmt.setString(1,p.getEmpId());
pstmt.setString(2,p.getName());
pstmt.setString(3,p.getSex());
pstmt.setString(4,p.getBirth());
pstmt.setString(5,p.getEducation());
pstmt.setDouble(6,p.getWages());
pstmt.setString(7,p.getDeptId());
4.3.2职工查询模块设计
图9搜索界面
本模块可以用来搜索职工。
其操作可以通过职工编号搜索,可以通过职工姓名搜索,可以职工部门编号搜索等。
通过不同的方法实现了对职工的查询。
StringqueryStr="
wherep.deptId="
+deptId;
returndao.find(employees,pageNo,pageSize,queryStr);
}
StringqueryStr="
wherep.empIdlike'
%"
+keyword+"
%'
orp.empNamelike'
orp.deptIdlike'
+keyword+"
4.4事务管理设计
4.4.1考勤管理模块设计
其主要的功能是对职工的考勤信息进行添加、删除和更新。
此模块实现了对职工考勤信息的管理,可以很明确的使管理人员对职工的考勤信息进行查看。
图10考勤管理界面
Stringsql="
insertintoattendancevalues(null,now(),?
;
pstmt=DB.prepare(conn,sql);
//pstmt.setDate(1,(Date)attendance.getDate());
pstmt.setString(1,attendance.getStatus());
pstmt.setString(2,attendance.getEmpId());
4.4.2请假管理模块设计
其主要的功能是对职工的请假信息进行添加、删除、更新,同时也处理职工在线请假信息。
首先,职工在线请假后,其是否同意的值为空。
然后通过数据库将其请假信息返回到管理端。
最后管理员可以查看其请假信息,并做出是否同意其请假的判断。
图11请假管理界面
insertintoleavesvalues(null,now(),?
//pstmt.setDate(1,(Date)leave.getDate());
pstmt.setInt(1,leave.getLeaveTimes());
pstmt.setString(2,leave.getReason());