1、天津师范大学本科毕业论文(设计)题目:基于SSH框架的人力资源管理系统的设计与实现学院:计算机与信息工程学院学生姓名:崔雨哲学号:09509343专业:软件工程年级:2009级完成日期:2013年4月指导教师:夏云龙基于SSH框架的人力资源管理系统的设计与实现摘要:随着计算机,互联网和电业务的快速发展,企业之间的竞争已经从有形市场到互联网。人力资源管理系统出现了信息技术在企业管理中的应用。人力资源管理系统是企业管理平台(EMP)的一个重要功能。它可以提高企业的管理水平。人力资源管理系统设计的目的是为了实现统一管理,人力资源信息,提供决策支持,人力资源信息,让用户及时与对方沟通,并轻松地与其他系
2、统合作。在本文中,人力资源管理系统提出了基于SSH框架结合现代人力资源管理理论和企业的事实。人力资源管理的当前状态进行了分析。本文系统有许多功能,如:员工管理模块,部门管理模块,公告管理模块,工作管理模块,工资管理模块。 HMRS建立的目的是巩固人力资源管理相关的所有信息,形成一个统一的数据资源,帮助人力资源系统管理员进行人力资源的管理和布局。关键词: 人力资源管理系统;SSH框架;mysql数据库The Design and Implementation of Human Resource Management System Based on SSH FrameAbstract :Since
3、 the beginning of the information age, with the increasing development of computer and network technology, e-commerce unprecedented development, competition among enterprises from the physical market to gradually shift the network. While the corresponding enterprise management have gradually entered
4、 the information track - human resources management system also came into being. Human resources management system is an important part of enterprise management platform, the design and development of corporate human resources in order to improve the level of corporate human resources management inf
5、ormation system. The system design goal is to achieve unified management of the enterprise human resources information, human resources information to support decision-making, and timely communication to meet user needs, and work with other systems. The use of modern human resource management theory
6、, combined with the specific circumstances of the corporate status quo points off domestic and international human resources management system, combined with the the SSH framework and mysql database technology, a web-based human resource management system, the main contents: Staff management, bullet
7、in management, departmental management, job management and payroll management. The establishment of the system is designed to unify data and human resource management, the formation of a unified data source, and can help corporate human resources management human resource management and planning.Key
8、 words : Human Resource Management System; SSH frame; mysql目录1.绪论61.1开发背景61.1.1 背景介绍61.2课题的研究意义和主要内容62.系统分析72.1系统需求分析72.1.1 功能需求72.2 系统可行性分析72.2.1 经济可行性72.2.2 技术可行性83 系统设计83.1 业务目标83.2 系统功能分析83.2.1 系统功能需求设计83.2.2 系统功能结构图93.3系统用例图103.3.1普通员工用力图103.3.2普通部门经理用例图103.3.3人事部员工用例图113.3.4人事部经理用例图123.3.5财务部员
9、工用例图123.3.6财务部经理用例图133.3.7总经理用例图143.4 时序图153.4.1 登录时序图153.4.2 个人管理时序图153.4.3 工作管理时序图163.4.4 公告查看时序图163.4.5 工作监督时序图173.4.6公告管理时序图173.4.7 日志管理时序图183.4.8 薪金管理时序图183.4.9 邮箱管理时序图193.4.10 员工管理时序图193.5数据库设计203.5.1 E-R图203.5.2 概念模型213.5.3 物理模型213.6 数据字典223.6.1 部门表(dept)223.6.2 岗位表(job)223.6.3员工表(emp)223.6.4
10、日志(calendar)233.6.5 公告表(bulletin)233.6.6邮件表(mail)233.7 数据库SQL语句234技术背景及其实现264.1 SSH框架264.1.1 SSH框架的介绍264.1.2 SSH中的实现274.2项目实现394.2.1 核心类图395 系统实现435.1系统界面实现435.1.1登录界面435.1.2 主界面功能区分475.1.3 公告管理功能485.1.4 个人管理505.1.5 日志管理与批复日志505.1.6 工作和部门管理525.1.7 邮件管理545.1.8人事管理555.1.9 薪金管理566 致谢571.绪论1.1开发背景1.1.1
11、背景介绍人力资源管理已经近百年的历史。传统的人事管理是伴随着组织的出现。现代意义上的人事管理发展始于工业革命的一代。在发展过程中,它会继续从各种学科,自我升华,从而催生了现代人力资源管理理论体系。现代人力资源管理的强调人力资源和物质资源的区别,强调人的主观能动性,及时性,智力和社会效应。据西方学者,人力资源管理的发展可以分为以下四个阶段:第一阶段(20世纪30年代):在此阶段,这个理论来研究如何提高效率为核心的人类劳动,并且主要集中在两个方面:首先,人体运动和劳动时间研究开发的“标准化”的工作方法;人类选择,培训和实施“刺激”计件工资。科学管理理论成为一门科学的管理经验,提高了劳动效率,从而成
12、为人力资源管理的起点。然而,管理的成分将被过分夸大,完全无视工人的心理需求。因此,人力资源管理仍是一个人事管理的工作,主要内容是招聘和雇用员工,建立工资支付制度,内部分工与合作来。第二阶段(20世纪30年代到20世纪60年代):在这个阶段,行为科学理论和劳资关系学校的人力资源管理理论产生了重大影响。其重点从“事”为中心,以“人”为中心,强调充分发挥人的积极性。劳动人事部门,负责招聘的阶段,是负责协调劳动关系,明确管理人员和工人之间的劳动分工,并开始培训的目的,然后分配适当的工作,根据自己的特点,实施的差别计件工资制。第三阶段(20世纪60年代到20世纪80年代):在此期间,劳动经济学产生了重大
13、影响,人力资源管理理论,该理论认为,必须加强就业保障,通过国家立法,并强调改善就业关系,提高工人的地位,有效和合法的管理活动的重要性,也开始变得越来越重要。第四阶段(20世纪80年代至今):在这个阶段,在企业人力资源管理的角色发生质的变化。在人力资源管理的变化从保护和员工选择企业发展的规划者和变化。同时,随着信息技术日益的成熟和应用,管理者摆脱日常琐碎的工作桎梏中解放出来,专注于科学有效的管理决策的。人力资源管理的已经成为企业运营非常重要的一环。从企业的长期战略,管理人员的角度来看,随着经济全球化,网络化的发展,数字知识经济时代已经来临。商业竞争,从竞争中脱颖而出,在财力,物力和物理资源,智力
14、资源和智力资源的竞争,人力资源的竞争本质的竞争焦点。因此,人力资源管理已成为企业管理的重要组成部分。1.2课题的研究意义和主要内容人力资源管理系统,以提高资源的共享,知识管理功能,具有理论和实践意义。人民群众是该组织最重要的资源,人员的有效管理是企业管理工作中的一个重要功能,以加强竞争力的有力保障。在人才竞争日益激烈的情况下,需要运用现代信息技术支持经理完成各种各样的任务。现代人力资源管理系统由一些不同的结构,不同的加工技术子系统,包括人事管理,薪酬管理,公告管理的核心模块。实际应用中,如何合理分配员工调动员工的积极性,改善工作人员的培训业务,快速发展,已成为最重要的因素。本文介绍了人力资源管
15、理系统。系统需求分析过程中,我们使用的原型用户需求,用例图,确定模块和系统的结构功能,可根据用户需求。系统进行统一管理的员工,公司的每一位员工都可以登录到系统中,在人力资源管理方面增加透明度,和人力资源管理人员从复杂的,重复性的劳动剥离出来,集中时间和精力,整合人力资源规划和决策,并提高其市场竞争力。2.系统分析2.1系统需求分析人事管理系统是一个企事业单位不可缺少的部分,它的内容对于单位决策者和管理者来说都至关重要,所以人事管理系统应该能够为用户提供充足的信息和方便的查询手段。一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低下、保密性差,容易丢失。另外时间一
16、长。将产生大量的文件和数据,这对于信息的查找、更新和维护都带来了不少的困难。 随着科学技术的不断发展,计算机科学的日渐成熟,作为计算机应用的一部分,使用计算机对人事信息进行管理,具有手工管理所无法比拟的优点:查找方便、可靠性高、存储量大、保密性好、成本低等。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理重要条件。因此,开发一个运行稳定,功能完善的人力资源管理系统是十分必要的。2.1.1 功能需求人力资源管理系统需要人力资源管理不受地域的限制,只要人员能够上网,通过验证并登陆系统,便可以随时查看人力资源信息,进行人力资源信息数据的管理和更新。人力资源管理系统具有人员管理、部门
17、管理、岗位管理、公告管理和薪金管理等功能。人力资源管理部门负责添加、修改、删除各类信息。领导和人力资源管理部门发布相关公告,查询员工信心等,员工个人可以查看个人信息,查看公告等。2.2 系统可行性分析2.2.1 经济可行性通过网络化的人力资源管理,大大的提高了企业人才的利用率,使之为企业创造了更大价值。人才利用率的提高,增强了企业的核心竟争力,全面提升了企业的管理能力,从而企业适应了信息时代的网络化管理要求。2.2.2 技术可行性 由于开发此系统需要的环境有操作系统:Windows XP/Windows 7;数据库:My sql;开发工具包:JDK Version1.4.2;开发工具:my e
18、clipse9.0;JSP服务器:Tomcat7.0;编程开发语言Java,需要操作人员熟练使用java语言和SQL语言以及HQL语言;需要操作人员熟练使用进行相关数据库的操作,具有一定的数据库开发功底及编程能力。使用的开发工具把 Java语句、SSH框架 相结合,优美的界面设计再加上Windows 稳定的运行环境的支持和开发人员的过硬技术,从功能和性能上完全都满足系统的要求,因此从技术方面讲此系统是可行的综合以上两点开发此系统是可行的。 3 系统设计 3.1 业务目标人力资源管理系统的使用,应该达到以下目标:(1)系统开发符合企业实际需求,切合实际,能够提高企业人力资源管理水平,提高工作效率
19、,降低成本。(2)用户可以根据自己的实际情况做出修改,并有效的查找相关员工等信息。 (3)系统根据用户实际设计,使用方便,设计统一的人力资源界面。(4)系统运行稳定、安全可靠。3.2 系统功能分析 系统需要能够对员工、部门、公告、岗位等信息进行增删改查。3.2.1 系统功能需求设计编号模块名称功能名称功能描述1部门管理浏览部门信息查看部门相关信息添加部门根据公司需要创建新部门修改部门根据公司需要调整部门信息2岗位管理查看岗位信息人事部门查看岗位信息添加岗位人事部门根据需要添加新岗位修改岗位人事部门根据需要修改岗位信息3人事管理查看员工信息员工查看员工信息添加新员工人事部门录入新员工信息修改员工
20、信息人事部门对员工信息进行变更4通知管理查看通知查看公司通知删除通知人事部门对过期的信息进行删除添加通知人事部门对需要告知全体的通知进行添加5日志管理添加日志员工根据工作内容填写工作日志删除日志将不用的工作日志删除日志回复上级批复员工日志6邮件管理发邮件邮件交流查看邮件查看收到的邮件删除邮件对收件箱和发件箱进行清理7个人管理修改密码修改个人密码查看信息查看个人信息修改信息修改个人基本信息8登录员工登录公司员工登录9薪金管理更改绩效工资财务部根据员工当月工作表现更改员工的绩效工资查看当月薪金查看员工当月薪金3.2.2 系统功能结构图图1-1:系统功能机构图3.3系统用例图3.3.1普通员工用力图
21、普通员工可以正常登录外,还可以使用个人管理、薪金管理、邮件管理、通知管理、日志管理五个基本功能。个人管理可以修改登录时的密码、查看个人信息、对个人信息如联系方式等进行修改。薪金管理对于普通员工来说,则只能查询自己的基本工资和当月的绩效工资。邮件管理用于公司员工之间的工作交流,普通员工可以收发邮件、删除已读邮件。普通员工在通知管理只能查看公司最新发布的相关通知。日志管理用于记录工作相关的信息,并提交给员工所在部门的上级领导,普通员工可以添加日志,查看日志及其批复,以及删除日志。(图1.1:普通员工用例图)3.3.2普通部门经理用例图普通部门经理可以正常登录外,还可以使用个人管理、薪金管理、邮件管
22、理、通知管理、日志管理五个基本功能。除日志管理模块外,其他管理模块的使用与普通员工相同。而普通部门经理在使用日志模块的时候,同普通员工一样,可以添加新的工作日志,删除日志,查看日志及其批复外,还可以查看所属部门的所有员工需批复的日志,以及对需要批复的员工日志进行批复。(图1.2:普通经理用例图)3.3.3人事部员工用例图人事部员工可以使用个人管理、薪金管理、邮件管理、通知管理、日志管理五个基本功能外,还可以进行人事管理。除人事管理模块和通知模块外,其他的使用同普通员工。而人事模块主要用于处理公司的人事工作,如对于员工除薪金信息外的增删改查。而通知模块则不同于普通员工,除查看通知外,人事部门有权
23、对公司的公告进行添加和删除。(图1.3:人事部员工用例图)3.3.4人事部经理用例图人事部经理功能除日志日志模块外和部门管理模块与人事部员工基本相同。而人事经理的日志模块除了能添加删除查看工作日志外,还要对需要进行批复的日志进行批复。除此之外,人事部经理还可以对公司部门的信息进行查看和修改;对公司的岗位信息进行增删改查。(图1.4:人事部经理用例图)3.3.5财务部员工用例图财务部员工除了薪金管理模块外,其他功能与普通员工相同。而在薪金管理方面,财务部门的员工除了可以查看自己的薪金外,可以应上级要求或其他相应的工资条例修改员工绩效工资。(图1.5:财务部员工用例图)3.3.6财务部经理用例图财
24、务部经理功能除日志日志模块外与财务部员工基本相同。而财务经理的日志模块除了能添加删除查看工作日志外,还要对需要进行批复的日志进行批复。(图1.6:财务部经理用例图)3.3.7总经理用例图总经理相当于一个超级管理员,除了普通经理的可以使用的基本功能外,还可以对薪金、部门、岗位进行增删改查。(图1.7:总经理用例图)3.4 时序图3.4.1 登录时序图(图7.1:登录时序图)3.4.2 个人管理时序图(图7.2:个人管理时序图)3.4.3 工作管理时序图人事部门员工工作管理时序图:(图7.3:工作管理时序图)3.4.4 公告查看时序图普通用户查看公告时序图:(图7.4:公告查看时序图)3.4.5
25、工作监督时序图部门经理及总经理工作监督时序图:(图7.5:工作监督时序图)3.4.6公告管理时序图人事部用户公告管理时序图(图7.6:公告管理时序图)3.4.7 日志管理时序图(图7.7:日志管理时序图)3.4.8 薪金管理时序图财务部用户薪金管理:(图7.8:薪金管理时序图)3.4.9 邮箱管理时序图(图7.9:邮箱管理时序图)3.4.10 员工管理时序图人事部用户员工管理:(图7.10:员工管理时序图)3.5数据库设计3.5.1 E-R图(图2.1:E-R图)在人力资源管理系统中,对应的实体关系图如上图所示。存在的实体(entity)有:部门、工作、员工、公告、日志、邮件。每个实体对应多种
26、属性(attribute)。其中每种属性对应的编号,如员工编号、部门编号等,是对应属性的主键,即码(key)。实体之间存在着联系:一个部门有多个员工,故而部门:员工之间是一个1:n的关系;同理,一个岗位工作上有许多人一起共事,所以工作:员工也是一个1:n的关系;每个拥有各自权限的员工都可以写多篇日志、邮件、公告,故而员工和这些实体之间都存在着一对多的关系。上图所示是按照关系模型对抽象的现实世界经行的概括。3.5.2 概念模型(图2.2:概念模型)3.5.3 物理模型(图2.3:物理模型)3.6 数据字典根据数据模型,每个实体(entity)对应一张数据表,每个实体的属性(attribute)形
27、成每个数据表的字段。所有码(key)即为主键,所有主键的约束均为主键、非空、自增长。其余属性字段按照现实要求实现各自的约束。3.6.1 部门表(dept)字段代码字段名称字段类型相关约束dept_id部门编号int主键,自增长,非空dept_name部门名称var char20非空dept_desc部门描述text3.6.2 岗位表(job)字段代码字段名称字段类型相关约束job_id工作编号int主键,自增长,非空job_name岗位名称var char20非空job_desc岗位描述text3.6.3员工表(emp)字段代码字段名称字段类型相关约束emp_id员工idint主键,自增长,非
28、空emp_code员工编号int非空emp_pwd员工登录密码var char6非空job_id员工岗位编号int外键 job表dept_id员工部门编号int外键 dept表emp_joindate员工入职时间date非空emp_name员工姓名var char20非空emp_sal员工工资decimal(8,2),非空emp_comm员工绩效工资decimal(8,2),非空emp_mgr员工上级编号int非空emp_tel员工行动电话var char11非空emp_birthday员工生日date非空3.6.4日志(calendar)字段代码字段名称字段类型相关约束calendar_id
29、日志编码int主键,自增长,非空emp_id写日志员工idint外键em_id,非空calendar_title日志标题var char20非空calendar_content日志内容text非空calendar_time日志创建时间timestamp非空calendar_responseid日志批复人idint外键 emp_mgrcalendar_response日志批复内容textcalendar_isresponse日志是否已批复byte2缺省03.6.5 公告表(bulletin)字段代码字段名称字段类型相关约束bulletin_id公告编号int主键,自增长,非空emp_id发表人i
30、dint外键emp_idbulletin_title公告标题var char20非空bulletin_content公告内容text非空bulletin_buildtime公告发布时间timestamp非空bulletin_filepath公告附件路径text3.6.6邮件表(mail)字段代码字段名称字段类型相关约束mail_id邮件编码int主键,自增长,非空emp_id发件方idint外键 emp_idmail_toid邮件收件方idint外键 emp_idmail_title邮件标题var char20非空mail_content邮件内容text非空mail_sandtme邮件发送时间
31、timestamp非空mail_isread邮件是否已读byte2缺省 03.7 数据库SQL语句drop table if exists bulletin;drop table if exists calendar;drop table if exists dept;drop table if exists emp;drop table if exists job;drop table if exists mail;create table bulletin( bulletin_id int not null auto_increment, emp_id int not null, bull
32、etin_title varchar(20) not null, bulletin_content text not null, bulletin_buildtime timestamp not null, bulletin_filepath text, primary key (bulletin_id);create table calendar( calendar_id int not null auto_increment, emp_id int not null, calendar_title varchar(20) not null, calendar_content text no
33、t null, calendar_time timestamp not null, calendar_responseid int not null, calendar_response text, calendar_isresponse tinyint not null, primary key (calendar_id);create table dept( dept_id int not null auto_increment, dept_name varchar(20) not null, dept_desc text, primary key (dept_id);create tab
34、le emp( emp_id int not null auto_increment, dept_id int not null, job_id int not null, emp_code int not null, emp_name varchar(20) not null, emp_pwd varchar(6) not null, emp_joindate timestamp not null, emp_sal decimal(8,2) not null, emp_comm decimal(8,2) not null, emp_mgr int not null, emp_tel varc
35、har(11) not null, emp_sex varchar(4) not null, emp_birthday date not null, primary key (emp_id);create table job( job_id int not null auto_increment, job_name varchar(20) not null, job_desc text, primary key (job_id);create table mail( mail_id int not null auto_increment, emp_id int not null, mail_t
36、oid int not null, mail_title varchar(20) not null, mail_content text not null, mail_sendtime timestamp not null, mail_isread tinyint, primary key (mail_id);alter table bulletin add constraint FK_emp_bulletin foreign key (emp_id) references emp (emp_id) on delete restrict on update restrict;alter tab
37、le calendar add constraint FK_emp_calendar foreign key (emp_id) references emp (emp_id) on delete restrict on update restrict;alter table emp add constraint FK_emp_dept foreign key (dept_id) references dept (dept_id) on delete restrict on update restrict;alter table emp add constraint FK_emp_job for
38、eign key (job_id) references job (job_id) on delete restrict on update restrict;alter table mail add constraint FK_emp_mail foreign key (emp_id) references emp (emp_id) on delete restrict on update restrict;4技术背景及其实现4.1 SSH框架4.1.1 SSH框架的介绍SSH 为 struts、spring、hibernate构成的一个开源集成框架。SSH框架系统从职能上分为4个部分:表示
39、层、业务逻辑层、数据持久层和域模块层。其中使用Struts作为系统的整体基础架构,负责MVC(Model + View + Control)的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管
40、理struts和hibernate。(图4-1-1-1 经典MVC结构)(图4-1-1-2 struts2【web work】对MVC的实现 )系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将Action Servlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring LOC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容
41、器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。Struts2的Action属于MVC模型层,Action中的方法代表业务逻辑,Action中的属性代表请求中的参数,当页面请求参数较多的时候,把过多的参数对象的属性定义在Action中不太符合Struts所倡导的松耦合原则,所以我们推荐单独用JavaBean来封装参数,在Action中为JavaBean赋值,这就是ModelDriven的Action。模型驱动的Action要求Action实现ModelDriven接口,假如登录页面需要传输参数username和userpass,我们把这2个参数封装在一个数据的JavaBean中,然后在Action中定义该JavaBean为Model即可。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。(图4-1-1:SSH框架介绍图)4.1.2 SSH中的实现1、struts的配置文件: package name=actions extends=struts-def