1、 摘 要随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件;计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。不同的企业具有不同的人事管理制度,这就决定了不同的企业需要不同的人事管理系统。经过分析,我使用myeclipse开发工具,采用struts2框架,JSP技术,SQL SE
2、RVER 2000数据库,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。论文从人事管理系统的初步调查开始,详细介绍人力资源管理信息系统的系统总体分析与设计、数据库设计,并进行了系统详细设计及实现、系统总体功能测试。 关键字:管理系统,Struts2,JSP, 数据库AbstractWith the rapid development of computer technology, computer applications in the popularity of enterprise management, personnel
3、management of enterprises using computers is imperative. For medium and large enterprises, the use of computer support companies high efficient completion of labor and personnel management of daily affairs, is to adapt to the modern enterprise system, the labor and personnel management to the scient
4、ific enterprise, standardization of the necessary conditions; computer incomparable advantage searching management quickly find convenient, high reliability, large memory capacity, confidentiality, long life and low cost. These advantages can greatly improve the efficiency of personnel management an
5、d also corporate scientific and standardized management, an important condition for integration with the world. Different companies have different personnel management system, which determines the different companies need different personnel management system. After analysis, I use myeclipse develop
6、ment tools, using struts2 framework, JSP technology, SQL SERVER 2000 database, the first prototype application system in a short time, then, the initial prototype of the system needs to constantly revise and improve until the formation a viable system of customer satisfaction. Papers from the person
7、nel management system of the initial investigation began, detailed human resources management information system of the overall system analysis and design, database design, and conduct detailed design and implementation of system, system general function tests. Key: Management System, Struts2, JSP,
8、Database 目 录第一章 概述11.1项目简介11.2主要开发技术及工具简介11.3可行性分析21.4项目内容3第二章 需求分析42.1项目需求42.2功能需求42.2.1管理员管理42.2.2员工管理42.2.3考勤管理42.2.4工资管理42.2.5考评管理42.3系统开发环境需求4第三章 总体设计53.1系统功能模块的化分53.1.1系统模块的总体设计53.2数据库逻辑结构设计83.3数据流图10第四章 详细设计124.1 数据库的实现124.2 主界面详细设计134.3功能模块详细设计144.3.1登录模块144.3.2管理员管理模块154.3.3员工管理模块174.3.4考勤管
9、理模块204.3.5工资管理模块214.3.6考评管理模块224.3.7系统管理模块22第五章 系统总体功能测试235.1测试指导思想及方案235.1.1软件测试指导思想235.1.2测试方案235.2测试阶段245.2.1代码审查245.2.2单元测试245.2.3集成测试245.2.4验收测试245.3部分测试结果24第六章 总 结29谢 辞30参考文献31大连交通大学2010届本科生毕业设计(论文)第一章 概述1.1项目简介人事管理信息系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起资料一致性和完整性强、资料安全性好的数据库
10、。而对于后者则要求应用程序功能完备,易使用等特点。本系统主要是基于Windows操作平台,主要使用JAVA SERVER PAGE来设计开发,该开发环境能很好的兼容其他的开发语言(如,SOL,Select等语言),不仅提供了大量的生成器,表设计器,更显著的是它还提供了各种各样的向导。因此,开发起来将极为方便,快捷!人事管理系统是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据
11、,这对于查找、更新和维护都带来了不少的困难。人事档案管理系统一般包括对人事档案的统计、查询、更新、报表输出等功能。如果人工直接统计的话,工作量将十分庞大,特别是,如果企业员工有几万或几十万人时,人工统计将变得不可能想象。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。用计算机可使人们从繁重而又单调的统计运算中解脱出来,仅用一些简单的操作便可及时准确地获得需要的信息。作为计算机应用的一部分,使用计算机对人事信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低
12、等。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一个管理软件成为很有必要的事情, 在设计一个系统时,首先要做好需求分析。合理地运用好JAVA SERVER PAGE的基本方法,建立一个适合企业的人事管理系统。1.2主要开发技术及工具简介MyEclipse是一个专门为Eclipse设计的商业插件和开源插件的完美集合。MyEclipse为Eclipse提供了一个大量私有和开源的Java工具的集合,很大程度上解决了各种开源工具的不一致和缺点问题,并大大提高了Java和JSP应用开发的效率。MyEclipse的实际价值来自其发布的大量的可视化
13、开发工具和实用组件。如CCS/JS/HTML/XML的编辑器,帮助创建EJB和Struts项目的向导并产生项目的所有主要的组件如Action/Session Bean/Form等,此外还包含编辑Hibernate配置文件和执行SQL语句的工具。和.NET平台开发工具VS20003/VS2005以及以前的快速开发RAD工具Delphi,PowerBuilder等相比,Java/JSP应用开发的低效率一直是个缺陷。直到Eclipse和MyEclispe等出现后,情况才有所改观(尤其是MyEclispe等可视化开发插件),大大提高了开发效率。新版本的MyEclipse提供了AJAX、Struts D
14、evelopment、Hibernate Tools、Spring IDE Integration等功能。这些功能毫无疑问可以简化Web应用开发,并对Struts、Hibernate、Spring等开发框架的广泛应用起到了非常好的促进作用。此外MyEclipse还包含大量由其他组织开发的开源插件,Genuitec增强了这些插件的功能并且撰写了很多实用文档便于开发者学习。综上所述,MyEclipse插件对加速Eclipse的流行起到了很重要的作用,并大大简化了复杂Java/JSP应用的开发。1.3可行性分析可行性分析是为了弄清所定义的项目是不是可能实现和值得进行。分析的过程,实际上是一次大大简化
15、了的系统分析和系统设计的过程。但是,这个过程的目的不是解决用户提出的问题,仅是确定这个问题是否值得去解决,分析存在着哪些风险。换句话说,在投入大量资金前研究成功的可能性,减小所冒的风险。即使研究的结论是不值得进行,花在可行性研究上的精力也不算白费,因为它避免了一次更大的浪费。(1) 技术可行性分析本系统采用的是JSP、Servlet和SQL SERVER开发,Windows XP Professional操作系统,用Dreamweaver进行前台网页界面设计、采用Hibernate方式与后台数据库进行连接,完成数据的添加、修改、删除、查询等功能。由于JSP、Servlet功能强大,而SQL S
16、ERVER灵活易维护在开发方面具有方便快捷、使用灵活的特点,以及目前的广泛实际应用,因此使用JSP、Servlet、SQL SERVER是开发轻平台的最佳组合从而说明本系统在技术方面可行。(2)经济可行性分析由于SQL SERVER数据库和Tomcat服务器都是开源的免费的开发学习工具,而且,本系统使用灵活方便,所需的开发人员不多,技术也不是很复杂,开发周期较短,因此开发成本较低。市场前景非常看好,所以说经济方面可行。(3)运行可行性分析本系统界面设计清晰友好,操作简洁,功能完善,有一定的异常处理机制和提示信息,用户无须学习即可使用,因此使用方面可行。(3)社会可行性分析1.4项目内容长河实业
17、人事管理系统的设计与实现的开发分为:系统管理员管理,员工管理,考勤管理,工资管理,考评管理五部分。具体内容如下:(1) 系统管理员管理超级管理员对普通管理员进行管理,包括对用户的添加,修改,删除和查询。(2) 员工管理管理员对员工信息,包括对员工的基本信息添加,查询,修改和删除,此外还能对员工的照片进行上传,修改。(3) 考勤管理主要是对用户上下班的管理,包括打卡信息的添加,修改,查询和删除。(4) 工资管理对员工工资的管理。(5) 考评管理 对员工培训的管理。第二章 需求分析2.1项目需求需求分析是系统开发工作中的最重要的环节之一。其任务是结合组织目标、业务现状、技术水平、投资能力等因素,对
18、用户提出的需求从信息系统目标、宏观结构、业务功能、技术性能、系统风险等方面进行深入分析,最后制定出全面、合理、可行的信息系统需求。需求分析过程是对用户需求的合理化过程,实事求是的全面调查研究是分析与设计的基础,也就是说这一工作的质量对于整个开发工作的成败来说是决定性,它的质量将直接影响到未来整个数据库系统应用的质量。本毕业设计的题目是基于长河实业人事管理系统的设计与实现,根据需求,得知此系统分为五部分:系统管理员管理,员工管理,考勤管理,工资管理,考评管理 2.2功能需求2.2.1管理员管理最高管理员将对管理员信息进行管理,如查询、增加、删除、修改等功能2.2.2员工管理员工管理:管理员信息进
19、行管理,如查询、增加、删除、修改等功能2.2.3考勤管理考勤管理对员工考勤进行管理,如查询、增加、删除、修改等功能2.2.4工资管理工资管理对员工工资进行管理,如查询、增加、删除、修改等功能2.2.5考评管理考评管理对员工考评进行管理,如查询、增加、删除、修改等功能 2.3系统开发环境需求整个系统采用windowsXP作为操作系统。机器配置为:PM1.5MHZ,1G内存。服务器采用Tomcat6.0免安装版,直接解压即可,端口为8080。JDK使用JDK1.6版。开发工具使用myeclipse5.5完全版无需加载其他包。数据库使用MYSQL5.0版。JDK的环境变量配置如下:JAVA_HOME
20、:C:jdk6Path:%JAVA_HOME%bin;Classpath:.;C:jdk6libtools.jar;C:jdk6libdt.jar;C:jdk6bin;Myeclipse中加载tomcat方法如下:windows-preferences-Myeclipse-Applicatio Servers-Tomcat-Tomcat 6.x。在其中写入tomcat安装目录即可。第三章 总体设计3.1系统功能模块的化分本项目的系统功能模块图如图3-1所示: 图3-1 系统功能图3.1.1系统模块的总体设计根据需求分析所列出的功能,按照B/S模式的方法,对整个系统做出总体设计。登录页面主要对用
21、户进行验证,是网站的第一层安全道,因此在这里进行严格验证,不是系统用户能进入系统。管理员将对管理员信息,员工管理、考勤管理、工资管理、考评管理,分别拥有相类似的基本管理功能,如查询、增加、删除、修改等功能;超级管理员对系统进行统一的管理,包括对六大功能模块的管理。普通管理员除了不能对系统管理员进行管理外,可以管理其他的。这些模块都是实现该系统的核心模块,模块之间的耦合程度非常低,这几个模块的消息传递是通过JSP内置对象session来实现的。管理用户及其他管理员通过验证后,就进入了管理系统了,分别得到各个子系统的功能用例图,如下图所示:图3-2 管理员功能用例图其他的用例图类似,因此不重复画出
22、来了。各个模块的设计:依照需求,本节对各个子系统按照功能进行了模块的细化。管理员信息管理管理员信息管理子系统管理员对管理员和普通管理员具体管理的平台,总共分为四大模块。查询模块,查询对所有的用户信息从数据里进行查询出来,然后进行分页处理,显示于页面。修改管理员信息,通过选择一个想要修改的管理用户的信息,然后填写管理用户信息,最后保存信息。添加管理用户信息,是通过新增一条信息,填写信息后,保存信息就添加了一个新管理用户的信息。删除管理用户信息,是通过选择一个管理用户选项,然后删除管理用户。下图是整个管理用户子系统的流程图图3-3 管理人管理流程图员工管理员工管理子系统是一个对员工信息进行具体管理
23、的平台,总共分为四大模块。添加员工信息,填写员工详细信息后,保存信息就添加了一个新员工信息。员工档案信息查询模块,查询可以通过关键字查询,得到用户想要的员工信息的详细信息,如果没有输入关键字,得到的是所有员工信息,信息多的话,将进行分页处理。通过员工档案信息查询,就能了解详细员工基本信息。修改员工档案基本信息,通过选择一个想要修改的员工档案信息,然后填写员工档案信息,包括附件,最后保存员工档案信息。删除员工信息,是通过选择一个员工信息选项,然后删除员工信息。流程图类似不举例了。考勤管理考勤信息管理子系统是一个对考勤信息具体管理的平台,总共分为四大模块。添加考勤信息,管理填写上下班信息后,保存考
24、勤信息就添加了一个新考勤信息。考勤信息查询模块,查询可以通过关键字查询,得到用户想要的考勤信息的详细信息,如果没有输入关键字,得到的是所有考勤信息,信息多的话,将进行分页处理。通过考勤信息查询,就能了解详细考勤基本信息。修改考勤信息,通过选择一个想要修改的考勤信息,然后填写考勤信息,包括附件,最后保存考勤信息。删除考勤信息,是通过选择一个考勤信息选项,然后删除考勤信息。流程图类似不举例了。工资管理和考评管理功能类似。这里不例举了。3.2数据库逻辑结构设计系统中存在的数据对象较多,所以为了使数据库设计更加合理,设计更加规范,在这里采取自上而下的数据库设计方法。这种自上而下的数据库设计方法从建立只
25、包含少量高层实体和联系的数据模型开始,然后使用连续的自上而下的精化来确认底层实体,联系和相关属性。自上而下的方法使用实体联系模型(ER模型)来实现。图3-4 各实体间E-R关系图本项目数据库taiyizhe使用了7个表,各个表的逻辑结构如下管理员信息表如表3-1所示:表3-1 管理员信息表字段名数据类型可否为空键默认值其他idintNot nullPRI编号usernamevarchar (20)Not null用户名passwordvarchar (128)Not null密码nameVarchar(100)Not null姓名telphonevarchar(15)Not null电话ema
26、ilvarchar(30)Not null邮箱birthdaydatetimeNot null生日pidvarchar(30)Not nullUNI身份证号autorityintNot null权限sexvarchar(2)Null 性别notevarchar(200)Null 备注表3-2 员工信息表字段名数据类型可否为空键默认值其他idint(4)Not nullPRI编号userNamevarchar(20)Not null用户名trueNamevarchar(20)Not null姓名passWordvarchar(20)Not null密码cityvarchar(20)Not nul
27、l城市addressvarchar(200)Not null地址postcodevarchar(20)Not null邮编telvarchar(20)Not null电话emailvarchar(20)Not null邮箱freezeint冻结标记表3-3 考勤信息表字段名数据类型可否为空键默认值其他OrderIDint(4)Not nullPRI编号usernamevarchar(20)Not null用户名Truenamevarchar(20)Not null姓名addressvarchar(20)Not null地址postcodevarchar(20)Not null邮编telvarc
28、har(20)Not null电话payvarchar(20)Not null付款方式carryvarchar(20)Not null运输方式bzvarchar(200)Not null备注表3-4 工资表字段名数据类型可否为空键默认值其他IDint(4)Not nullPRI编号titlevarchar(100)Not null标题contentvarchar(4000)Not null内容INTimedatetimeNot null发布时间表3-5 考评表字段名数据类型可否为空键默认值其他IDint(4)Not nullPRI编号titlevarchar(100)Not null标题con
29、tentvarchar(4000)Not null内容INTimedatetimeNot null发布时间3.3数据流图1.顶层数据流图如图3.1所示:图3-5顶层数据流图 2.第二层数据流图如图3.6所示: 图3-6第二层数据流图第四章 详细设计依照总体设计,详细设计中需要对每个模块做出具体实现方法的计划,并写出关键代码。4.1 数据库的实现在这里数据库的连接是利用hibernate技术来实现的,其本质封装了JDBC。JDBC(Java Database Connectivity)由一些Java语言编写的类、界面组成,可用于执行SQL语句的Java API,使数据库开发人员可以用纯Java语
30、言编写完整的数据库应用程序;JDBC是独立于数据库的统一的API,支持由Java String表示的数据库查询语句转换成访问实际数据库的调用,可直接调用SQL命令。使用JDBC,开发人员可以很方便的将SQL语句传送给任何一种数据库。因此在这里利用了JDBC来进行数据库的连接。数据库连接代码如下:/驱动名/数据库URL/用户名/密码org.hibernate.dialect.SQLServerDialect/数据库方言com/bean/Member.hbm.xmlcom/bean/Person.hbm.xmlcom/bean/Attendance.hbm.xmlcom/bean/Salary.h
31、bm.xmlcom/bean/Train.hbm.xml4.2 主界面详细设计由于本系统采用Spring框架,所以整个系统UI层由JSP负责,控制层由Spring中的servlet负责,其中表单信息由bean负责,其中BPO处理有action类进行承担了解。其实就是MVC的处理方式。用户进入系统后,在index页面采取框架结构,顶部top.jsp包括管理系统名称标语,系统时间的显示。下面左边是left管理菜单最高管理员则有六个子菜单:用户管理模块、员工管理模块、考勤管理、工资管理模块、考评管理模块、系统管理。如下图所示图4-1 网站首页图 4.3功能模块详细设计4.3.1登录模块登录页面通过输
32、入身份、用户名和密码进行后台验证,如果不对,在当前页面进行报错提示,以方便用户正确登录。效果图如下:图4-2登录页面核心代码是password.equals(member.getPassword()&Integer.parseInt(autority.toString()= Integer.parseInt(member.getAutority().toString()/密码,权限,用户名进行验证4.3.2管理员管理模块管理员管理是超级管理员用对管理员的具体管理,管理员的查询是用用户的信息进行查询,这里通过关键字进行查询相应的用户或者默认查询全部用户,关键字查询是通过hibernate自动查询
33、的,然后由list封装数据把数据返回页面。效果图如下:图4-管理员查询图其中的关键代码如下:Session session=getSession();/取得sessionQuery query=session.createQuery(hql);/查询hqlquery.setFirstResult(0);/取第一项query.setMaxResults(10);/最多取条信息List list=query.list();/取得listsession.close();/关闭sessionreturn list;/返回list然后对用户进行管理,包括对用户进行新增,修改,删除。 下面是新增一个用户图
34、4-新添管理员图功能的核心代码如下:Member member=new Member();member.setAutority(autority);member.setBirthday(birthday);member.setEmail(email);member.setName(name);member.setNote(note);member.setPassword(password);member.setPid(pid);member.setTelphone(telphone);member.setUsername(username);member.setSex(sex);/将用户的信息
35、存在bean里service.save(member);/保存bean到数据库里修改用户信息,将用户的信息进行修改,选中一个用户,然后单击修改,就将选中的用户的信息显示在下面,然后就可以进行修改用户的信息。这里造句刚刚新增的“李红”效果图如下图图4-5修改用户信息页面删除用户信息,选中想删除的一条用户的信息,然后单击删除,就可以对用户进行删除。效果图在此不显示了。4.3.3员工管理模块员工管理模块是对员工信息进行添加,修改,查询和删除。添加对是员工基本信息进行添加。进入添加页面后,点保存按钮,将进行添加员工,添加功能就是将填写好的信息封装到bean里然后存入数据库,实现后的效果图如下:图4-6
36、添加员工信息其核心代码是:Person person =new Person();person.setName(name);person.setName(name);person.setSex(sex); /封装到bean service.save(person);/将bean存入数据库里如果要上传员工的照片,可以选择上传员工照片,如下图所示:图4-添加员工照片核心代码如下:copy(myFile, imageFile); / 将图片上传至服务器 Imagefile imagefile=new Imagefile();imagefile.setUploadname(uploadname); i
37、magefile.setUploadtime(dateToMM(new Date(); imagefile.setVerion(verion); imagefile.setItemnno(itemnno); imagefile.setItemname(itemname); imagefile.setItemcontent(itemcontent); imagefile.setName(name); imagefile.setImageuploadname(String)request.getSession().getAttribute(name); service.save(imagefile
38、);/文字信息保存到数据库里其中修改员工照片也与添加类似。员工查询是用员工的信息进行查询,这里通过关键字进行查询相应的员工或者默认查询全部员工,关键字查询是通过hibernate自动查询的,然后由list封装数据把数据返回页面。效果图如下:图4-查询员工信息实现查询的关键代码如下:int totalPage=countPage();/查询总职工数List mlist=service.getPerson(hql.toString();/查询职工信息request.setAttribute(currPage, 1);/request.setAttribute(previous, 1);/reque
39、st.setAttribute(next, new Integer(1totalPage)?2:totalPage);/request.setAttribute(totalPage, String.valueOf(totalPage);/request.setAttribute(mlist, mlist);修改功能 修改功能是通过选择一个职工记录,把选中的职工的编号用在数据库里查找,查找的结果是该职工的个人信息,通过一个bean把职工信息显示在主界面的下面,然后用户进行修改职工个人信息,修改完后,通过保存按钮,把个人信息封装在一个bean里,存在数据库里,并返回修改成功的信号,以提示管理员。下面是修改一个职工信息的效果图:图4-修改员工信息把修改信息显示出来的关键代码如下:HttpServletRequest request=ServletActionContext.getRequest();String cid=request.getParameter(cid);/职工IDPerson person=(Person)service.findById(Integer.valueOf(cid);/取得职工信息删除功能 删除功能是通过选择一个职工,然后通过此职工的编号在数据库里进行删除。效果图