版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章引言1.1课题研究的目的和意义方便企业管理者来对企业的人事档案和企业各个部门进行管理,工资和奖金的核算,人员的管理和培训计划,员工信息的查询,使整套系统具有高安全性、高可靠性等优点,能够应用于中小型企业的人事管理部分。该系统的实现意义在于能合理利用人力资源,提高人员素质和技术水平,调动员工的积极性,培养员工以身作则,务实工作的心态,以命运共同体为中心思想,相互肯定、相互包容和相互欣赏的工作精神,提高了劳动生产率。因此,为了方便各个部门的业务联系和相关查询,本系统要进行必要的网络连接,其系统特点是:可代替许多复杂的人工劳动,如统计、核算等工作,节省许多资源;便于领导层对员工的工资、调度等信息进行查询;利于高级用户进行系统信息管理和维护,也允许普通用户进行部分信息浏览、查看,以实现管理机制透明化;提供了大量的操作提示,以及较强的容错能力,大大方便了管理者和用户的使用,确保了数据的安全性、正确性、完整性和一致性;能在很大程度上优化企业管理,提高企业工作效率。1.2国内外发展情况国内信息系统发展现状。企业是国民经济的基本单元而企业信息系统建设是我国企业走向现代化的必由之路。我国目前共有各类企业800万家,这些企业在近20年来,在不同程度上都遇到了企业信息系统建设的问题。80年代以来,国家有关部门就一直非常重视企业信息化的推进。国家有关部门曾重点扶持过一批国有大企业的信息化工程并以它们为样板在全国制造业企业中推广过CIMS。沈阳鼓风机厂、成都飞机制造厂、北京第一机床厂等,都是这一时期涌现出来的企业信息化样板企业。90年代以后,随着微型计算机、互连网等迅速普及,计算机技术对企业的影响越来越大,企业信息化进一步为人们所重视。有关部门领导曾明确提出:到2000年,全国一千个大型骨干企业基本实现企业信息化,全国大型产业企业80%(含零售业、批发业、仓储业、饮食业和工业企业)全面应用计算机管理,初步实现管理现代化.30%到40%的中小企业普及计算机管理。1995年以后,我国企业信息化走向了以ERP为主的道路许多外国ERP厂商如SAP、BAAN、ORACLE、FOUTHSHIFT等纷纷进入中国国内目前也已有数十家ERP软件供应商,不少已经形成商品化且有几百家用户。一些调查说明,我国企业购买MRPII、ERP软件的费用在90年代以后迅速增长。例如在机械行业,购买了国外软件公司MRPII系统的企业高达66%企业平均用于硬件的投资费用约为604万元,软件费171万元,实施及咨询费143万元,合计约800万元。与之类似其他行业对于信息化的投资在近几年来也有较大的增长。国外专家学者对人事管理系统的研究起步比较早,发达国家的企业非常注重自身人事管理系统的开发。特别是一些跨国公司,更不惜花费大量的人力和物力来开发相应的人事管理系统,他们通过建立一个多信息数据流和业务流的开发性系统实现真正意义上的人事管理目标,挑选和留住最佳人才,同时不断提高这些人才的工作效益。1.3课题研究内容本文主要论述了人力资源管理系统的分析、结构特性设计及行为特性设计的实现过程,详细论述了总体设计思想、数据库设计和功能模块设计。实现了部门管理,岗位管理,员工入职管理,员工离职管理,报表管理等功能。整个系统的设计过程中,充分考虑了数据库的安全性问题,设立了登陆界面,有账号密码才能登陆系统。并具有很强的向导作用,在每个界面中,都有一些醒目的提醒,为操作人员提供了丰富的决策功能,而且操作简单方便。主要功能有:部门管理主要用于描述组织中的部门信息,该模块实现了对部门进行增加、删除、修改、查询的功能,其中删除与修改功能需先根据条件查询出信息才能进行。岗位管理主要用于描述组织中的岗位信息,该模块实现了对岗位进行增加、删除、修改、查询的功能,其中删除与修改功能需先根据条件查询出信息才能进行。员工入职管理用于完成员工入职操作,需填写入职员工的相关信息,如姓名,出生日期等。员工离职管理用于完成员工离职操作,将离职员工信息从数据库中删除。报表管理用于打印所需报表的功能,分为员工信息报表和离职员工报表的打印。1.4采用的方法和手段本系统基于JavaWeb技术,连接Internet即可访问本系统。采用B/S架构,应用JSP技术以及Oracle数据库开发,具有管理方便,维护升级简单,代码简单易懂,体积小巧的特点,通过对网页的访问登陆管理系统,各模块独立性强,可根据需求添加更改功能,界面简洁干净,操作简单。本系统在组织关系上存在着复杂性,繁琐性,但整体技术构成上还是属于对JSP以及数据库的应用。根据所需功能,我选择MyEclipse为开发工具,利用软件工程思想和方法,总体上用结构化生命周期法进行系统分析和设计。系统中的数据库服务器安装Oracle数据库,Web服务器使用Tomcat服务器,并采用Java语言和JavaScript脚本JSP等编程。首先根据需求在数据库中建立相关数据表,完成数据库的设计。之后进行各个页面布局的设计以及页面中相关功能的划分,之后根据设计,逐步完成各个功能模块的制作及程序的编写。整个系统初期需配置电脑,服务器,打印机等硬件设备及网络的配置,减少了数据的流通环节,即提高了效率,又保证了各项数据的准确性,也避免了工作人员的流动造成的数据丢失等问题。同时本课题拟定以IE浏览器、360浏览器和火狐浏览器等几种国内常见的浏览器作为主要的测试平台。第2章相关技术综述2.1人力资源管理概述我们目前所理解的人力资源的含义是由管理大师彼得.德鲁克于1954年在《管理实践》中首先提出并加以明确界定的。他认为人力资源拥有当前其他资源所没有的素质,即“协调能力、融合能力、判断力和想象力”;它是一种特殊的资源,必须通过有效的激励机制才能开发利用,并给企业带来课件的经济价值。人力资源管理,就是指能够推动整个经济和社会发展和社会发展的劳动者的能力,即处在劳动年龄的已直接投入建设和尚未投入建设的人口的能力;是包含在人体内的一种生产能力,它是表现在劳动者的身上、以劳动者的数量和智联表示的资源,对经济起着生产性的作用,并且是企业经营中最活跃、最积极的生产要素。21世纪是全球化、市场化、信息化的世纪,是知识主宰的世纪。在新经济条件下,企业人力资源管理必然要发生相应的变化。因此,企业人力资源管理系统将构筑在Internet/intranet的计算机网络平台上,形成新型的人力资源管理模式。2.2系统开发平台与工具概述2.2.1MyEclipse简介Eclipse是一个盛开源代码的软件开辟项目,专注于为高度集成的工具开辟供给一个全功能的、具有商业功德的工业平台。它重要由Eclipse项目、Eclipse工具项目和Eclipse技巧项目三个项目构成,翔实包括四个局部构成——EclipsePlatform、JDT、CDT和PDE.野生全松茶JDT扶持Java开辟、CDT扶持C开辟、PDE用来扶持插件开辟,EclipsePlatform则是一个盛开的可伸展IDE,供给了一个通用的开辟平台。Eclipse是知名的跨平台的自由集成开辟环境(IDE)。当时重要用来Java语言开辟,然而现在亦有人穿越插件使其作为其他计算机语言例如C++和Python的开辟工具。Eclipse的本身只是一个框架平台,然而许多插件的扶持使得Eclipse具有其他功能相对安宁的IDE软件很难具有的灵便性。众多软件开辟商以Eclipse为框架开辟自己的IDE。
2.2.2Oracle10g简介Oracle10g是甲骨文公司推出的数据库软件,Oracle公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州Redwoodshore。2000财年(99年6月到2000年5月)营业额达101亿美元,再创Oracle公司销售额历史新高,比去年增长了13亿美元,盈利增长61%,达到21亿美元。公司持续良好的财务状况表明作为身处快速增长的高科技行业,公司仍不失稳健的风格。Oracle公司现有员工超过三万六千人,服务遍及全球145个国家。Oracle在其技术白皮书上阐明,Oracle数据库10g家族,是一个对不同级别的业务,不同规模的组织都有量身定做产品,对不同IT需求都有解决方案的家族。Oracle也提供数据库选件产品来加强Oracle数据库10g某些特殊的应用需求。本文将概要的介绍这些功能和选件。Oracle数据库10g企业版(EE)提供了有效,可靠,安全的数据管理功能以应对关键的企业业务和在线事务处理应用,复杂查询的数据仓库或者WEB2.0应用。企业版就没有SOCKET限制,单机或者集群都可以使用。在这个版本中,一个新类型的表对象被引入。该表结构对大量插入和解析数据很有益处。这个表结构对FIFO的数据处理应用有着很好的支持。这样的应用在电信、生产应用中常常能够用到。通过使用这种优化的表结构能够对电信级的应用起到巨大的性能改进作用。而且这个版本的Oracle的一个引人注目之处就是管理上的极大简化。大量复杂的配置和部署设置被取消或者简化。常见的操作过程被自动化。对不同区域的大多数调整和管理操作的到简化。2.2.3Tomcat简介随着java的流行,其在web上的应用也越来越广,tomcat作为一个开放源码的servlet容器,应用前景越来越广。Tomcat是jakarta项目中的一个重要的子项目,是sun公司官方推荐的servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的喜爱。Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。2.2.4JSP简介JSP(Java
Server
Pages)技术是由Sun公司发布的用于开发动态Web应用的一项技术。它以其简单易学、跨平台的特性,在众多动态Web应用程序设计语言中异军突起,在短短几年中已经形成了一套完整的规范,并广泛地应用于电子商务等各个领域中。在国内,JSP现在也得到了比较广泛的重视,得到了很好的发展,越来越多的动态网站开始采用JSP技术。JSP全名为javaserverpage,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP(JavaServerPages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。第3章系统需求分析及概要设计3.1系统描述3.1.1软件概述系统用途本系统是基于Java语言开发支持Windows平台下的人事管理系统。并采用B/S结构,用户通过使用浏览器访问系统进行所需操作,满足个人或集体用户在Internet网络中实现人力资源管理自助的需求。本项目连接Oracle数据库并支持多数据库连接扩展,当用户使用本系统对数据进行处理时,系统直接访问数据库并修改其内部数据。产品环境介绍系统服务器(支持单位时间对系统的访问及数据传输量)、Internet网络环境、Oracle10g数据库、JavaWeb程序发布服务器(Tomcat6.0)、JDK1.6。3.1.2用户特征在一般企业中使用软件的用户比较广泛,具体操作人员亦有所不同,非常使用于如下特点人员:对企业中人事管理实施运作较为明确的人员。熟悉计算机管理软件在日常办公应用的人员。经常使用网络,能熟练使用浏览器上网操作的人员。综上所述,本软件具有迅捷、准确、方便、高效、实用的功能特点。用户掌握计算机的录入功能即可。3.1.3假设和依赖关系假设:用户正确使用其操作系统及浏览器访问Internet,网络连接稳定,本WEB应用系统所架设的数据库和服务器能正常使用。依赖:网络环境顺畅、服务器不出现故障、本地数据库运转正常。3.2具体需求3.2.1功能需求按照用户需求系统需要实现人事管理系统中的基本功能,通过用户操作,系统可操作部门信息管理部分、岗位信息管理部分执行其信息的查询、插、删改功能。同时可进行员工的入、离职管理。最后还可根据需要将员工信息和离职员工信息查询并以报表的方式打印出来。3.2.2性能需求依据用户群的异同,系统根据不同情况,注册用户量庞大,需支持百人以上同时访问服务器,使用Oracle10g提供数据存储工作。由于用户较多,系统需支持百余用户同时对系统数据库进行访问,最好采用分页处理。系统需要支持百个并发请求/秒,由于对并发性的要求较高,要求系统在运行的过程中要占用较少的内存,最好采用单例模式保证系统的稳定性。界面要求美观舒适、易于操作、使用便捷。3.3数据库设计3.3.1数据库设计综述数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。由于本系统是B/S结构的ERP项目,故数据库中会涉及到很多系统信息数据和系统日志数据。考虑到系统需支持不同规模的企业使用,同时又要具有良好的可扩展性,于是选用了Oracle10g作为本系统的默认数据库。数据库的设计过程中尽量减少冗余的数据,借此可以提高数据库的存储效率,同时也要保障数据库的完整性和可扩展性。尽可能地做到数据库设计的规范化。3.3.2数据库表结构设计要完成本系统数据库的规范化设计就需要是表结构更加合理,正确的使用范式规则,是表中的每个字段都切实可用,且保证数据的充分性。其主要表结构如下:部门信息表:存储系统中的部门信息,使员工的部门管理有迹可循。表中的部门级别规定了该部门在企业中所处的级别阶层。表4-1部门信息表属性名字段名数据类型约束默认值描述部门idDIDnumber(10)部门号DNOnumber(10)部门名DNAMEVarchar2(20)PK部门类型DTYPEVarchar2(20)部门电话DTELVarchar2(20)岗位信息表:存储系统中的岗位信息。表4-2岗位信息表属性名字段名数据类型约束默认值描述岗位idJIDnumber(10)岗位号JNOnumber(10)岗位名JNAMEVarchar2(20)PK岗位类型JTYPEVarchar2(20)员工信息表:存储了员工的个人信息,便于对员工的管理。管理员通过对表中员工所在部门、职位等数据的更改,及调整其工作状态来控制企业自身的人力资源分配,做到较优化的人力资源管理。表4-3员工信息表属性名字段名数据类型约束默认值描述员工idEIDnumber(10)员工号ENOnumber(10)PK员工名ENAMEVarchar2(20)性别SEXVarchar2(2)生日BIRTHVarchar2(20)身份证号IDNOVarchar2(20)部门名DNAMEVarchar2(20)FK岗位名JNAMEVarchar2(20)FK加入日期JOINDAYVarchar2(20)工作日期STARTDAYVarchar2(20)工作形式ESELECTVarchar2(20)来源SETEFROMVarchar2(20)离职员工信息表:存储了已离职员工的个人信息,方便未来进行离职员工信息的收集。表4-4离职员工信息表属性名字段名数据类型约束默认值描述员工idEIDnumber(10)员工号ENOnumber(10)PK员工名ENAMEVarchar2(20)性别SEXVarchar2(2)生日BIRTHVarchar2(20)续表4-4属性名字段名数据类型约束默认值描述身份证号IDNOVarchar2(20)部门名DNAMEVarchar2(20)FK岗位名JNAMEVarchar2(20)FK加入日期JOINDAYVarchar2(20)工作日期STARTDAYVarchar2(20)工作形式ESELECTVarchar2(20)来源SETEFROMVarchar2(20)3.4总体设计约束标准符合性
由于用户需要在工作中需通过网络即时完成系统操作,故系统需至少支持普遍的网络数据传输协议,符合其各种协议的不同规范。硬件约束
系统属于B/S结构,故用户的日常使用应通过PC机完成,但由于不同企业办公条件及人员数量需要,其服务器选择有所不同,因此系统需支持多种层次、不同类型服务器,并尽量选择市面普遍使用款型。技术限制由于本系统为模拟项目,采用基本的MVC框架结构开发,使用Struts2.1.8作为开发框架,JSP绘制操作界面。系统的开发不会深入使用其他页面编辑、映射或注入的三方编辑框架。3.5软件质量特性安全性
Web部署要满足安全性需求,提供完善的身份验证需求,会话及权限管理满足安全性需求,防止用户未登录直接进入系统,自动执行日志及数据备份工作。兼容性系统是由Java编写使用TCP/IP及HTTP协议传输数据,拥有较强的跨平台性,可支持Windows系统下多种浏览器。当系统版本升级时,因为有标准的书写格式所以能兼容以前版本的功能及接口。3.6总体设计3.6.1系统架构人事管理系统作为ERP系统中的部分内容保留了ERP系统所需特性,B/S系统类型的设计支持使用户本身可实现随处办公,并解决了大量用户使用时软件版本更新后带来版本、功能不一致的问题。系统采用Java语言开发,具有较高的跨平台兼容性,以便用户可在使用不同操作系统的情况下系统都可以正常使用。系统采用基本的MVC框架模式实现,将各段代码明确分层,使系统结构稳定,拥有较高的扩展和可维护性。使用Struts2技术作为本框架模式的实现。并以JDBC方式连接数据库。要求代码结构紧密简洁、稳定性强。3.6.2系统功能结构系统将实现企业经营过程中人事管理的系统化,开发的过程中将主要完成用户管理、员工入职管理、员工离职管理、部门管理、岗位管理、相关报表打印的模块。根据需要,各模块依据企业管理模式完成相应功能,其具体功能实现如图3-1所示。该系统主要功能有:部门管理该功能主要用于描述组织中的部门信息,该模块实现了对部门进行增加、删除、修改、查询的功能,其中删除与修改功能需先根据条件查询出信息才能进行。岗位管理该功能主要用于描述组织中的岗位信息,该模块实现了对岗位进行增加、删除、修改、查询的功能,其中删除与修改功能需先根据条件查询出信息才能进行。员工入职管理该功能用于完成员工入职操作,需填写入职员工的相关信息,如姓名,出生日期等。员工离职管理该功能用于完成员工离职操作,将离职员工信息从数据库中删除。报表管理该功能用于打印所需报表的功能,分为员工信息报表和离职员工报表的打印。中小型企业人事管理系统中小型企业人事管理系统系统管理报表管理人事信息管理组织结构管理系统管理报表管理人事信息管理组织结构管理员工入职管理职位信息管理部门信息管理用户登录员工入职管理职位信息管理部门信息管理用户登录管理离职员工报表员工信息报表员工离职管理离职员工报表员工信息报表员工离职管理图3-1系统功能结构图第4章系统详细设计4.1设计描述本系统为B/S结构的信息管理系统,用户通过登录系统进行所要执行的操作,过程中完全通过浏览器以Internet形式对系统进行访问。执行相应操作时,系统会修改数据库表中数据,并保留日志文件。用户在使用该系统时,通过点击、点选、输入、下拉及浏览器所支持的快捷键进行操作。系统会以HTTP协议进行数据传输处理。在使用过程中出现的特殊名词和术语皆为企业中人力资源管理方面专用词汇。4.2系统代码结构及接口设计4.2.1目录结构系统的目录如图4-1。图4-1系统源码目录结构图系统目录说明:com.neusoft.bean:存放数据库各表的数据的封装类。com.neusoft.dao:存放所有数据库访问类。com.neusoft.serv:存放所有的服务控制类。com.neusoft.tools:存放连接数据库JDBC相关方法。WebRoot:存放js文件及所有JSP页面。4.2.2开发环境硬件:PC机,i5CPU,2G内存,2M宽带。软件:Win7系统,IDE:MyEclipse8.5,Web服务器:Tomcat6.0,数据库:Oracle10g,版本控制工具:SVN1.6。技术:Java,JSP,JavaScript,Struts2,HTML,XML,AJAX,CSS,JUnit4.0。4.2.3外部接口设计用户接口:操作系统支持WindowsXPSP2以上版本。浏览器支持IE6.0以上版本、FireFox4.0以上版本、GoogleChrome11.0以上版本。软件接口:HTTP协议支持的Tomcat服务器。硬件接口:路由器,Internet网络。通讯接口:TCP/IP协议,HTTP协议。服务器接口:PC服务器、ATCA服务器、SUN工作站/小机型。在X86CPU(2130MHz,4核)×2,16G内存的服务器上支持万员注册用户,百余个并发请求/秒。4.3界面布局及风格设计系统操作界面采用JSP制作,以css指定页面样式,统一表格及字体,并使用JavaScript绘制页面活动结构,融合少量AJAX内容使用Jquery进行动态部分开发。所有页面以浅色调为主,观感舒适、风格统一。布局及操作窗口大小适中,便于用户使用。系统登录页面,简洁明确、操作方便,同时不失美观。如图4-2所示。图4-2系统登录界面登录后,系统操作主界面。布局比例适中,不会带来任何附加操作,极大的提高了工作效率。整体风格统一,提供了快捷操作入口。如图4-3所示。图4-3系统操作主界面基本查询操作页面,直观明确的提示了操作方式,其显示方式也符合通常人们的习惯。如图4-4所示。图4-4部门管理界面基本添加信息页面,统一的风格使用户在使用中不会产生任何的不舒适,保持风格统一的同时使用了页面的三方插件,使信息的录入更加方便、快捷、人性化,也保持了格式的统一。如图4-5所示。图4-5添加部门信息界面4.4功能模块设计描述系统实现了ERP系统中的HRM部分,使用此系统可以妥善的进行企业中繁杂的人力资源管理,系统包含了部门管理、岗位管理等主要功能模块。4.4.1数据库连接模块数据库连接作为ERP系统的基础为系统信息的管理提供了前提。系统以JDBC连接方式建立与Oracle数据库的连接。系统已数据库连接类的形式完成其连接过程。在该类中分别实现了数据库的连接与关闭方法,在需要是可分别进行调用,并在系统建立或关闭数据库连接出错时会抛出异常,进行处理。数据库连接采用了最基本的JDBC连接方式,降低了系统运行时所产生的错误,其连接方法如下:publicclassDBUtils{ privatestaticDBUtilsd=newDBUtils(); privatestaticPropertiesp=newProperties(); /** *与数据库建立链接 */ publicstaticConnectiongetConnection() { Connectioncon=null; Stringdbtype="oracle"; Stringdbname="ORCL"; Stringusername="scott"; Stringpassword="tiger"; Stringip=""; Stringport="1521"; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); }catch(ClassNotFoundExceptione){ System.out.println("驱动类未找到,注意:驱动包是否导入了"+e.getMessage()); } Stringurl="jdbc:oracle:thin:@"+ip+":"+port+":"+dbname; try{ con=DriverManager.getConnection(url,username,password); }catch(SQLExceptione){ System.out.println("数据库链接失败,配置项有异常"+e.getMessage()); } returncon;}其中Class.forName("oracle.jdbc.driver.OracleDriver")调用了oracle数据库的连接驱动,并在程序中导入classes12.jar包。使用此方法加载数据库连接驱动在稳定便捷的同时加强了系统数据库连接的可扩展性。在con=DriverManager.getConnection(url,username,password)中,定义的Connection类型对象con装载了所获得的数据库连接,由于对系统的操作进行连接处理。其需要的url、username、password属性分别为外部数据库的url地址、数据库登录名和登录密码。在该类中也给予了属性赋值,如下: Stringdbtype="oracle"; Stringdbname="ORCL"; Stringusername="scott"; Stringpassword="tiger"; Stringip=""; Stringport="1521";方法的最后将con对象作为返回值返回,向调用此方法的对象传递其所需的数据库连接。4.4.2登录模块用户登录,用户通过访问登录页面并向文本框中输入用户名及密码登录系统。登录界面采用JSP制作,美观、明了、便于使用,其中登录及清除按钮使用图片相应,基本代码如下:<bodybackground="1.jpg"><divalign="center"id="Layer1"><formaction="Frame.jsp"name="Login"method="post"><br/><tablewidth="300"border="0"><tr><thwidth="63"scope="row">用户名:</th><tdwidth="227"><inputname="name"id="name"type="text"/></td></tr><tr><thscope="row">密码:</th><td><inputname="password"id="password"type="password"/></td></tr><tr><thcolspan="2"scope="row"><inputname=""type="button"value="登录"onclick="Check()"/><inputname=""type="reset"value="重置"/><br/><br/> <fontsize="2"color="#FF0000">*初始帐号密码均为000*</font></th></tr></table></form></div><h1align="center"><fontcolor="#FFFFFF">欢迎使用人事管理系统!</font></h1><h3align="center">请先登录</h3></div></form></body>其中重置功能的type使用了系统自带的reset属性完成,而登陆按键的实现则用onclick属性使其进行相关信息的检查与验证。其界面效果如图4-6所示。图4-6系统登录界面作为登录界面用户名与密码的相应内容的检查与约束,Check()方法我们使用JavaScript技术写入<script>代码块内,完成对相关内容的检验。代码如下:<script>functionCheck(){varname=document.getElementById("name");varpassword=document.getElementById("password");varl=document.getElementsByName("Login");if(name.value==""){alert("帐号不能为空!"); name.focus();}elseif(name.value!="000"){alert("帐号不存在!"); name.focus();}elseif(password.value==""){alert("密码不能为空!"); password.focus();}elseif(password.value!="000"){alert("密码错误!"); password.focus();}else{l[0].submit();}}</script>成功后系统跳转至主操作页面,如图4-7所示,失败跳转至登陆错误页面如图4-8所示。图4-7系统操作主界面主页面中的树形菜单以JSP页面实现,设计少量AJAX内容,以Jquery实现。同过用户点击,切换到不同菜单目录。其主要代码如下:<framesetrows="25%,15%,*"cols="*"frameborder="yes"border="0"framespacing="0"><framesrc="topFrame.jsp"name="topFrame"/><!--<framesetcols="10%,*"cols="101,*"framespacing="0"frameborder="yes"border="0">--><framesrc="leftFrame1.jsp"name="leftFrame"/><framesrc="mainFrame.jsp"name="mainFrame"/></frameset>利用简单的框架知识,采用T型框架完成基本的页面布局,再使用src属性使指定按钮实现各自功能页面的调转。图4-8登录错误界面4.4.3部门管理模块用户通过该模块可进行对部门信息的修改,也可搜索查询部门员工的信息,以此帮助用户对部门的管理。其具体功能如下:部门管理,在该模块,用户可通过部门号、名称、部门类型进行检索。用户只需在所要的各检索项上输入检索信息,点击查询按钮,系统便会将在数据库中所查询的部门信息显示在页面上。由于考虑到网络传输原因,为了处理大批量查询结果向浏览器传输时使用了分页查询技术来减轻浏览器负担。其页面显示方式也稍有改动,主要代码如下:Stringpages=request.getParameter("Page"); //当前页数 intpgi=Integer.parseInt(pages); //每页显示记录数量 intpgsize=3; //总页数 intpgcount=0; Connectioncon=DBUtils.getConnection(); DeptDAOddao=newDeptDAO(con); pgcount=(int)Math.ceil(ddao.selectCount()/3.0); if(pgi>pgcount) pgi=pgcount; if(pgi<1) pgi=1; Pagepe=newPage(); pe.setAllPages(pgcount); pe.setCurPage(pgi); ArrayListar=ddao.selectALL2(pgi,pgsize); HttpSessionsess=request.getSession(true); sess.setAttribute("Dept",ar); sess.setAttribute("pe",pe); response.sendRedirect("dept.jsp"); }这里,pgi用于存储所检索出的数据条数,pgcount用于存储检索数据以固定格式指定后的页数,pgsize为每页数据量。根据实际情况设定每页显示的查询行数,再根据ddao.selectALL2(pgi,pgsize)方法查询出所需的查询内容显示在页面中。具体效果如图4-9所示。其相应的Action中通过一识别方法来处理页面在点击不同按钮时系统对提交表单信息的处理。然后再通过所确定的方法对提交信息进行查询,返回数据后刷新页面。其代码如下: Connectioncon=DBUtils.getConnection(); DeptDAOddao=newDeptDAO(con); Deptdept=newDept(); ArrayListar=newArrayList(); if(select.equals("1")){ dept=ddao.selectBydno(Integer.parseInt(n)); ar.add(dept); }elseif(select.equals("2")){ dept=ddao.selectBydname(n); ar.add(dept); }else{ ar=ddao.selectBydtype(n); } HttpSessionsess=request.getSession(true); sess.setAttribute("Dept",ar); response.sendRedirect("deptSelect.jsp");}图4-9员工查询界面由于在Oracle数据库中没有专门用于执行分页查询的sql关键字,所以系统已多层嵌套查询的方式将数据以rownum进行分解,而最后获得的为一个三层嵌套的sql语句,这条语句便可实现Oracle数据库的分页查询,且语句执行的效率是极为优化的,不会为数据库带来负担,其数据库访问便可以通常方式实现,主要代码如下: publicArrayListselectALL2(intpgnum,intpgsize) { ArrayListar=newArrayList(); PreparedStatementpstam=null; ResultSetrs=null; try { pstam=con.prepareStatement( "SELECT*FROM(SELECTROWNUMR,did,dno,dname,dtype,dtelFROM(SELECT*FROMDeptORDERBYdid))AWHEREA.RBETWEEN?AND?"); pstam.setInt(1,pgnum*pgsize-pgsize+1); pstam.setInt(2,pgnum*pgsize); rs=pstam.executeQuery(); while(rs.next()) { Deptdept=newDept(); dept.setDid(rs.getInt("did")); dept.setDno(rs.getInt("dno")); dept.setDname(rs.getString("dname")); dept.setDtype(rs.getString("dtype")); dept.setDtel(rs.getString("dtel")); ar.add(dept);对于数据库的访问同样使用prepareStatement预编译,并使用其内置的executeQuery()方法进行数据库查询。查询结果以dowhile循环的方式装入员工信息类型的JavaBean中,并在最后作为一个节点装在事先定义好的链表中。4.4.4员工入职管理模块在该部分功能,用户通过手动输入及点选操作将新员工信息录入系统,点击提交按钮即可完成操作。其中由于部分信息的录入不便系统选入了在楼台数据库读取并手动点选的形式解决,页面整体效果如图4-10所示。图4-10员工入职界面在页面上,系统会先将“性别”、“用工形式”等显示在下拉菜单中、其主要代码如下:publicbooleaninsert(Empm) { Stringsql="insertintoEmpvalues(null,?,?,?,?,?,?,?,?,?,?,?)"; PreparedStatementpstam=null; booleanb=false; try { pstam=con.prepareStatement(sql); pstam.setInt(1,m.getEno()); pstam.setString(2,m.getEname()); pstam.setString(3,m.getSex()); pstam.setString(4,m.getBirth()); pstam.setString(5,m.getIdno()); pstam.setString(6,m.getDname()); pstam.setString(7,m.getJname()); pstam.setString(8,m.getJoinDay()); pstam.setString(9,m.getStartDay()); pstam.setString(10,m.geteSelect()); pstam.setString(11,m.geteFrom()); inti=pstam.executeUpdate();//该方法用来对表添加删除修改操作,返回值是本次操作影响了多少行记录、 if(i>0) { b=true;继续使用预编译载体prepareStatement并通过其setString、setInt等方法向sql语句中注入所要新增的没项数据,并在执行之后以executeUpdate()进行更新处理,代码中的m为存储员工信息的JavaBean,将其设置为新增员工信息页面的m类。在完成插入操作之后,将插入结果赋值给boolean类型属性isInsert并返回,若成功则跳转至添加员工信息成功界面,如图4-11所示。图4-11入职成功界面4.4.5员工离职管理模块此模块完成员工离职的功能,员工根据手动输入的几个相关信息查询出指定员工之后通过缺人按钮执行删除操作,页面整体效果如图4-12所示。图4-12员工离职界面通过输入特定相关信息对目标对象进行查询,查询出后会显示出所查目标的完整信息并显示在界面上,相关代码如下:publicbooleandelete(intno){ booleanb=false; PreparedStatementpstam=null; ResultSetrs=null; try { pstam=con.prepareStatement("deletefromEmpwhereeno=?"); pstam.setInt(1,no); inti=pstam.executeUpdate(); if(i>0) { b=true; } }功能的实现同样使用预编译载体prepareStatement执行sql语句,并通过其setString()方法注入删除信息的主键。方法将其结果赋值给boolean类型属性i,并将其作为返回值返回给上层代码用以标识删除是否成功。若操作成功则跳转到删除成功页面,如图4-13所示。图4-13离职成功界面4.4.6报表打印模块该模块实现了对员工信息表和离职员工表的报表生成功能,员工可指定生成报表位置,具体页面效果如图4-14所示。图4-14报表打印界面通过更改存储路径可以使报表生成在所指定的位置,并通过确认按钮实现报表的生成,相关代码如下:<body><formaction="/ServletPerson/CreateListEmp"name=""method="post"><h2>员工信息报表</h2>设置报表存储路径:<inputname="d"id="d"type="text"value="d:"/><inputname=""type="submit"value="打印报表"/></form></body>表单提交后,后台执行报表生成工作,相关代码如下:WritableWorkbookbo=Workbook.createWorkbook(newFile(d+"/员工信息报表.xls")); WritableSheetsheet=bo.createSheet("第1页",0); Labellabel_00=newLabel(0,0,"ID"); sheet.addCell(label_00); Labellabel_10=newLabel(1,0,"编号"); sheet.addCell(label_10); Labellabel_20=newLabel(2,0,"姓名"); sheet.addCell(label_20); Labellabel_30=newLabel(3,0,"性别"); sheet.addCell(label_30); Labellabel_40=newLabel(4,0,"出生日期"); sheet.addCell(label_40); Labellabel_50=newLabel(5,0,"身份证号码"); sheet.addCell(label_50); Labellabel_60=newLabel(6,0,"部门"); sheet.addCell(label_60); Labellabel_70=newLabel(7,0,"岗位"); sheet.addCell(label_70); Labellabel_80=newLabel(8,0,"入职日期"); sheet.addCell(label_80); Labellabel_90=newLabel(9,0,"参加工作日期"); sheet.addCell(label_90); Labellabel_100=newLabel(10,0,"用工形式"); sheet.addCell(label_100); Labellabel_110=newLabel(11,0,"人员来源"); sheet.addCell(label_110); Empemp=newEmp() for(inti=1;i<=arr.size();i++) emp=(Emp)arr.get(i-1); jxl.write.Numbernumber_0i=newjxl.write.Number(0,i,emp.getEid()); sheet.addCell(number_0i); jxl.write.Numbernumber_1i=newjxl.write.Number(1,i,emp.getEno()); sheet.addCell(number_1i); Labellabel_2i=newLabel(2,i,emp.getEname()); sheet.addCell(label_2i); Labellabel_3i=newLabel(3,i,emp.getSex()); sheet.addCell(label_3i); Labellabel_4i=newLabel(4,i,emp.getBirth()); sheet.addCell(label_4i); Labellabel_5i=newLabel(5,i,emp.getIdno()); sheet.addCell(label_5i); Labellabel_6i=newLabel(6,i,emp.getDname()); sheet.addCell(label_6i); Labellabel_7i=newLabel(7,i,emp.getJname()); sheet.addCell(label_7i); Labellabel_8i=newLabel(8,i,emp.getJoinDay()); sheet.addCell(label_8i); Labellabel_9i=newLabel(9,i,emp.getStartDay()); sheet.addCell(label_9i); Labellabel_10i=newLabel(10,i,emp.geteSelect()); sheet.addCell(label_10i); Labellabel_11i=newLabel(11,i,emp.geteFrom()); sheet.addCell(label_11i); } bo.write(); bo.close();通过创建WritableWorkbook实例完成报表属性的生成,并通过连接数据库后的get()方法得到所对应的内容显示在报表中,之后生成报表,报表生成成功界面如4-15所示。图4-15报表生成成功界面第5章结论在计算机以及其软件的不断发展和迅速更新的环境下,计算机软件在各种规模企业中的使用与日俱增,并且为企业带来了巨大的福利。人事管理系统便是众多企业应用软件中最为实用的一款商业软件。当今时代,众多人事管理系统软件在市场上争相绽放,其使用与实施方式也都别具一格。本人事管理系统实现了企业员工管理等相关内容,完成了企业所需的人员信息的快速录入,删除,查询,使其管理过程更加便捷、直观。系统采用Java语言开发,配备以Oracle数据库,可以最大化得做到平台的兼容性。系统是一个较优化MVC结构的B/S系统,是用户可以仅通过浏览器就可以执行系统中的全部操作。这种跨平台、客户端的设计结构满足了企业的日常工作需要,使其再人事管理过程的实施方便、快捷、不受约束。同时最大化的实现了远程网络办公,仅通过Internet网络就可以完成其人力资源管理过程。系统实现了人事管理中的基本过程,其使用也较为合理化,但在局部还有不足。系统本身实现的功能覆盖率并不庞大,功能细致度并不完整。由于人力的不足,搜索引擎的智能化程度也欠佳。希望在以后对本系统的更新中可以逐步完善,并使其具有一定市场竞争力。参考文献[1]王珊,萨师煊.数据库系统概论[M].高等教育出版社,2006.[2]何玉洁,梁琦.数据库原理与应用[M].机械工业出版社,2011.[3]常晋义,邹永林,周蓓.管理信息系统[M].北京:中国电力出版社,2003.[4]纪红.人事管理信息系统的设计与实施[J].计算机与现代化2000年第3期,总第6期.[5]孙延鹏.Web程序设计JSP[M].人民邮电出版社,2008-05.[6]耿祥义,张跃平.JSP实用教程[M].清华大学出版社,2003年5月1日.[7]孙涌.现代软件工程[M]..北京希望电子出版社,2003年8月.[8]萨师煊,王珊.数据库系统概论[M].高等教育出版社,2002年2月.[9]布朗等.JSP编程指南(第二版)[M].电子工业出版社,2003年3月.[10]清宏计算机工作室.JSP编程技巧[M].机械工业出版社,2004年5月.[11]朱红,司光亚.JSPWeb编程指南[M].电子工业出版社,2001年9月.[12]赛奎春.JSP工程应用与项目实践[M].机械工业出版社,2002年8月.[13]竺可桢.物理学[M].北京:科学出版社,1973.[14]张昆,冯立群,余昌钰,等.机器人柔性手腕的球面齿轮设计研究[J].沈阳工业大学学报,1994,34(2):1-7.[15]郑开青.通讯系统模拟及软件[D].北京:沈阳工业大学无线电系,1987.[16][美]WalterSavitch.AbsoluteJava[M].北京:电子工业出版社,2005.[17]JeffFerguson,BrianPatterson,JasonBeres.C#Bible[M].USA:WileyPublishing,2002.[18]ChenZF,ShiHY,AnYJ.Globallyconvergentapproachbasedonchaotictheoryforunderwaterrobotmotoroptimization[A].InternationalConferenceonRobotics,IntelligentSystemsandSignalProcessing[C].Chansha,2003.996-1001.致谢本次毕业设计在我的校内导师XXX老师的指导下完成,他在很长时间内给了我最大的帮助和鼓励,使我的目标更加明确,并使我顺利完成此次毕业设计,同时也要感谢我的同学对我资料上的帮助,最后感谢软件学院全体领导和老师,在大学四年里对我的关心和教育,并向所有老师致以诚挚的谢意!基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年销售合同实施步骤详解版B版
- 2024年版合同特定条款修订补充合同版B版
- 2024租地合同范本
- 2025年度金融衍生品交易财务顾问合同2篇
- 2024年电子商务营销专属协议3篇
- 2025年度城市基础设施建设担保合作协议范本3篇
- 2024年环保节能设备制造与销售合同
- 2025年度航空航天器研发与生产合作合同3篇
- 2025年度智能驾驶出租车运营服务雇佣合同3篇
- 2025年度智能办公系统全面维护与升级服务合同3篇
- 物业客服服务技巧培训
- 山东省青岛市2024-2025学年七年级上学期11月期中英语试题
- 2024年海南省公务员录用考试《行测》试题及答案解析
- 招聘技巧的培训
- 北师大版一年级上册数学全册教案(教学设计)及教学反思
- 教育机构日常运营与管理指南
- 海上移动平台入级规范2024年第1次变更通告
- 人教版PEP小学六年级英语下册教案全册
- ☆问题解决策略:直观分析 教案 2024-2025学年北师大版七年级数学上册
- (小学组)全国版图知识竞赛考试题含答案
- ICD-10疾病编码完整版
评论
0/150
提交评论