人事管理系统薪资管理 合同管理 物资领用管理毕业设计论文.docx
《人事管理系统薪资管理 合同管理 物资领用管理毕业设计论文.docx》由会员分享,可在线阅读,更多相关《人事管理系统薪资管理 合同管理 物资领用管理毕业设计论文.docx(27页珍藏版)》请在冰豆网上搜索。
人事管理系统薪资管理合同管理物资领用管理毕业设计论文
人事管理系统
——薪资管理合同管理物资领用管理
摘要:
近些年来,随着社会的发展和科技的进步,人们的工作与生活也越来越离不开计算机,对于各大企业来说就更是如此了。
在各个企业中,企业员工的考勤工作不仅工作量大,而且时效性强。
过去,企业多采用签到和报表的形式进行管理,效率和透明度较差,并且也容易出错;随着数据库技术的发展和企业信息化建设的进行,使用计算机管理企业考勤工作也成为大势所趋,它为企业的考勤工作节约了大量的人力和物力,也大大减轻了管理工作人员的工作量。
本系统结合一些公司的实际人员管理制度,经过实际的需求分析,采用功能强大的Java作为开发工具,数据库采用MicrosoftSQLServer2005。
整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成日常的考勤操作,包括系统管理、数据管理、员工管理、出勤状况管理、请假管理、考勤管理等工作。
本文系统地阐述了人员管理系统的设计与开发的全过程,包括系统整体设计,逻辑框架与数据流程,各个功能模块划分,系统功能模块的设计与具体实现等部分。
关键词:
员工;人员管理;Web技术.
Abstract:
Inrecentyears,alongwiththeadvanceofthesocietyandtechnology,human’sworkandlifearemoreandmoredependenttocomputers,particularlyforthoseworkinginthelargeenterprises.Intheenterprise,themanagementonemployeeworkattendancenotonlyappliesahighworkload,butrequiresanon-timeresponseaswell.Traditionally,thecompaniesmorelikelyusesthemannersofsign-inandreportformtomanageemployee’sattendancerecords.Thismethodpresentslowefficiencyandlacksoftransparency,whichleadstoahighmistakerate.Withthedevelopmentofthedatabasetechnologyandconstructionofenterpriseinformationsystems,theapplicationofcomputersystemstomanagetheemployeeattendancerecordsinenterprisesbecomesamaintrend.Thisapproachsaveslaborandcostintheemployeeattendancemanagementfortheenterprise,andalsosignificantlyreducestheworkloadofthestaff.
Thissystemcombinestheactualattendanceenterprisemanagementsystem,theactualdemandanalysis,theuseofpowerfuldevelopmenttoolsasJava,thedatabaseusesMicrosoftSQLServer2005.Theentiresystemfromthesimple,userfriendly,flexible,practicalandsafetyrequirements,thecompletionofdailyattendanceoperations,includingsystemsmanagement,datamanagement,schedulingmanagement,overtimemanagement,leavemanagement,attendancemanagement.
Thispapersystematicallydescribesthedesignofenterprisetimeandattendancemanagementsystemanddevelopmentoftheentireprocess,includingoverallsystemdesign,logicalframeworkanddataflow,eachfunctionmodule,thesystemfunctionmodulesandotherpartsofthedesignandrealization.
KeyWords:
employeeattendance;attendancemanagementsystem;Webtechnolog.
1绪论
1.1研究背景
人员管理是各类组织日常管理工作的重要组成部分。
对于企业而言,人员管理对保证企业秩序、提升工作效率具有重要的作用。
随着现代科学技术的发展,越来越多的企业对职工的考勤管理都实行了信息化管理,越来越多的企业利用信息化考勤手段对企业行政人员进行考勤,使计算机系统代替繁琐冗余的手工方式来管理考勤事务。
传统的手工方式不仅效率低下,而且容易出错,釆用计算机技术进行管理可以克服手工管理的缺点,将人们从烦杂的劳动中解放出来。
先进的考勤管理思想有助于构建先进考勤管理系统,提高管理效率,对于企业的管理者来说很有帮助[1]。
企业需要一套适合于企业的灵活考勤的管理系统,作为实现目标和提高现有水平的一种重要手段。
基于此,本文设计与实现了一套考勤管理系统,其主要目的是为了方便管理人员统一安排职工工作的值班、请假、假日、加班、审批等日常工作活动,以及出现意外情况的应对策略,减少工作人员的工作压力,将统计考勤人员从繁琐的考勤程序中解脱出来,节省企业的人力和物力[2]。
在计算机技术与软件技术如此迅猛发展的今天,利用计算机应用软件来完成考勤信息的管理工作,并协助人们对繁重的重复的职工考勤信息进行处理,将信息管理人员从繁重的考勤工作中解放出来,提高考勤管理的效率,是现代教育机构考勤管理的发展趋势,与此同时,软件开发的技术也越来越成熟,开发成本越来越低,这也为本考勤管理系统的开发提供了可能,总之,无论从理论还是实际方面,开发考勤管理系统,都有很大的价值[3]。
随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。
人员考勤信息管理是企业信息管理的重要部分。
面对大量的企业考勤信息,采用人力处理将浪费大量的时间、人力和物力,且数据的准确性低。
因此,开发一个界面友好,易于操作的人员信息管理软件进行自动化处理具有较大的社会现实意义。
同时,人事考勤管理系统是一切应用系统的典范,它具有一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,开发应用简单,不失一般性[4]。
人员管理系统的特点是从XXX公司员工考勤管理的角度出发,用集中的数据库将几乎所有与考勤相关的数据统一管理起来,形成了集成的信息源。
友好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得公司考勤管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑学校考勤规划和政策。
它主要是为了满足公司日常的管理的需要,扩大工作空间,使公司管理过程更加快速、安全、高效。
本系统的开发,经适当调整能够扩展到企业考勤管理领域,这本系统开发具有更广泛的意义[5]。
2系统相关技术介绍
2.1系统开发环境
2.1.1JDBC技术
JDBC[5]技术是SUN公司提供的一种支持基本sQL功能的通用的应用程序接口,它由一组Java用语言编写的类和接口组成,通过这些类和接口,程序开发人员可以在JAVA语言中方便地建立与数据库的链接,通过执行相应的sQL语句,完成对不同数据库的访问。
最初的JAvA语言[6,7]并没有数据库访问的能力,JDBc是第一个支持语言的标准的数据库API,其目的在于使Java程序与数据库服务器的连接更加方便,JDBC的原理机制和ODBC相同,它为基于Java语言的应用程序提供了统一的数据库访问接口,只不过JDBC是用纯Java实现的,而ODBC是用纯C实现的,将Java和JDBC结合起来将使程序员只须写一道程序就可以让它在任何平台上运行,构成Java语言的基础是一系列类库,而JDBC正是定义了与数据库之间的接口类库,它是Java语言中执行SQL语句的API,由一系列类和接口所组成,这些类和接口均是由Java语言写成的,通过它一个程序开发者可以在Java语言中建立与数据库的链接,执行SQL语句和处理sQL语句返回的结果,JDBC工作原理和组成结构如图2-1所示:
图2-1JDBC工作流程和组成结构图
JDBC访问数据库的过程是这样的用户通过浏览器发出请求,从WEB服务器上下载Java应用的HTML页面,如果其中的Java应用程序调用了JDBC,则浏览器运行Java的应用程序直接与指定的数据库服务器建立连接,数据库服务器以HTML页面返回结果给浏览器。
JDBC主要有两种接口:
面向程序开发人员的JDBCAPI和面向底层的JDBCDriverAPI。
JDBCAPI提供了应用程序到JDBC驱动器管理程序的通信功能,它是一组抽象的接口,可以进行数据库连接和调用SQL语句来访问支持JDBC的数据库,并且得到返回的结果,JDBCDriverAPI是面向驱动程序开发商的编程接口,用来管理各种数据库。
2.1.2J2EE技术
1、J2EE概念
目前,Java平台有3个版本,它们是适用于小型设备和智能卡的Java平台Miero版(Java2platformMicroEdition,J2ME)、适用于桌面系统的JavaZ平台标准版(Java2PlatformStandardEdition,J2SE)、适用于创建服务器应用程序和服务的Java平台企业版(Java2PlatformEnterpriseEditionJ2EE)[11]。
J2EE是一种利用JavaZ平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
J2EE技术的基础就是核心Java平台或Java平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Intern。
t应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletSAPI、JSp(JavaServerpages)以及XML技术的全面支持。
其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。
通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持EnterpriseJavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
2、J2EE的优势
J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制。
保留现存的IT资产:
由于企业必须适应新的商业需求,利用己有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。
这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。
J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEATuxedo、IBMCICS,IBMEneina,、InpriseVisiBroker及NetseapeAppli。
ationServer。
这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的’企业计算’领域供应商的参与。
每一个供应商都对现有的客户提供了不用废弃己有投资,进入可移植的J2EE领域的升级途径。
由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。
(1)高效的开发:
J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。
这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。
高级中间件供应商提供以下这些复杂的中间件服务:
a.状态管理服务让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。
b.持续性服务让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。
.分布式共享数据对象CACHE服务让开发人员编制高性能的系统,极大提高整体部署的伸缩性。
(2)支持异构环境:
J2EE能够开发部署在异构环境中的可移植程序。
基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。
因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。
这在典型的异构企业计算环境中是十分关键的。
J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。
2.2Struts技术研究
2.2.1Struts框架结构
Struts2相对于Struts1.X,将实现用户业务逻辑(Action)同ServletAPI分离开,这种分离机制是采用了拦截器或者拦截器栈。
Ifn拦截器是Struts2的核心内容之一。
Struts2内建了多个拦截器和拦截器栈(有多个拦截器形成的拦截器链),通过将用户的Web请求进行拦截处理从Ifn提高了如数据类型转换、国际化、文件上传等更为丰富的功能。
Struts2的框架结构如图2-2所示:
图2-2Struts框架结构图
在Struts2框架中一个请求的处理方式大致可被分为以下几个步骤:
1、首先是客户端初始化的请求,该请求是一指向Servlet容器的请求,例如Tomcat。
2、过滤器(Filter)是要被刚才提到的拿个请求所经过的。
(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,该过滤器对于Struts2和其他框架的集成有显著帮助,例如:
SiteMeshPlugin)。
3、接着是需调用FilterDispatcher这一核心控制器,但是核心控制器要询问Action映射器,以便来判断那个请求是不是必需调用所对应的某个Action。
4、若Action映射器判断出了要调用的某一个Action,核心控制器FilterDispatcher就将这个请求的相关处理提交给Action代理器(ActionProxy)。
5、Action代理器将按照配置管理器(ConfigurationManager)来查找框架中所对应的配置文件,被调用的Action类将被通过该配置文件查找出。
6、紧接着还需要创建一个ActionInvocation实例,并由Action代理器来负责创建的。
7、ActionInvocation实例的命名通过使用命名模式被调用,然后向上返回调用存在于Action之中的execute方法,该execute方法获取用户请求参数后执行某种数据库的应用操作。
在这个调用Action的过程前后,有很多相关的拦截器的调用被涉及到。
8、当Action被执行完毕之后,将在struts.xml中的配置查找到相对应的请求的返回结果,这个工作室由ActionInvocation负责的。
返回结果通常是一个需要被表示的TSP或者FreeMarker的模版。
在这个过程中需要涉及到ActionMapper。
Struts框架中控制器组件包括:
ActionServlet,Action等。
控制器组件的作用是:
✧负责接收客户端请求数据。
✧根据客户端的请求动作,选择相应的Action组件。
✧从请求中获取数据填充AcionForm(如果需要)。
✧从Action组件类中处理客户的请求。
✧选择合适的视图返回给客户端。
其中,Struts框架中ActionServlet类型只会产生一个对象,并由它来接受所有客户的请求信息,因此在web.xml文件中将做出以下配置:
……
action
*.do
……
Action类
Action这个类是此应用的核心类,它是真正处理程序的事物逻辑,最后负责处理请求。
在接收到Servlet请求后,ActionServlet就会:
●为此请求寻找合适的Action来处理
●根据实际的需要,ActionServlet会创建一个Action的实例
●最后才是调用Action类之中的execut函数来处理请求,得到返回结果。
当然,也有可能ActionServlet找不到对应的映射,那么它就会根据当初的配置文件来定义初始的Action类,然后将适当的Action映射类转发给刚才初始化的Action类。
然后Action能够按照Action映射(ActionMapping)找到对应的本地转发,从中取到并目_得到这个Action映射的属性,根据目前所设置的servlet的环境,还有在Action类中execute0方法执行,ServletRequest和HttpServletRequest对象也会通过ActionServlet类传送。
在对Action类进行编程的时候,有一个很重要的问题需要注意,那就是必须按照“线程安全”的原则来开发代码,主要是因为控制器控制着很多个请求,如果一旦有很请求同时发出去共享一样的Action类的时候就需要小心以下几个方面:
1、在存储那些特殊的请求的状态信息时,这些状态信息的存储是不能够用实例或者static变量,这是由十当它们因为它们将会在同样的一个操作中去共同享用的资源,而这些资源时一个跨越请求的全局资源。
2、应当将访问的资源进行同步,这个前提是基十当访问的资源在并行的时候被访问。
ActionForm组件
定义ActionForm组件类需要继承ActionForm父类。
由十表单的参数与ActionForm类中的属性有着对应的关系,所以要保证在定义该类时属性名和表单参数名一致。
另外在struts-config.xml中配置元素,每一个FormBean要对应一个子元素。
例如:
Scope="request"validate="true"path="/login"
Input=“/login.jsp"
Type=“uestct.edu.neusoft.struts.action.LoginAction">
在ActionForm类中还有另外一个方法是validate(),他是另外的一种处理错误的函数,我们只需要在Bean里边重载这个函数就可以了,同时我们将相应的配置文件的validate属性设置为true。
通过以上的操作之后,当ActionServlet在开始执行的时候,先加载Action类,然后能够在开始的时候运行validate()函数,如果validate()函数的返回结果为非空,也就是说ActionErrors不为NULL,并目_它的长度不小于0,这个时候ActionServlet就会相应一个对象,这个对象是配置文件中标签兀素中input属性所指向的对象,这个前提就是需要根据返回的错误关键字来查找的。
典型的ActionFromBean函数一般存在两种,一种setXXX()函数,表示对象属性的设置,另一种就是getXXX()函数,表示读取对象属性的方法,Ifn没有实现事务逻辑的方法。
actionMapping组件
actionMapping是用来封装struts-config.xml文件中标记中的配置信息。
当客户请求提交到Struts框架中时,首先要检索和用户匹配的actionMapping实例。
如果不存在就返回无效的信息。
actionError组件
actionError是Struts框架中处理错误的机制的一种,另一种是actionErrors,不过,最后一种已经在Strutsl.2中已经废弃,而是用ActionMessage来替代。
2.2.2Struts工作原理
FliterDispatcher也就是所谓的核心控制器主要包括Struts2框架内部的控制流程以及其他重要的处理机制,由此可见它是Struts2框架的重要基础。
当我们使用Struts2框架的时候,作为用户的我们需要我们自己动手完成业务控制器Action和业务逻辑组件。
还有就是当我们在开发Action类,还有业务逻辑组件的时候,供核心控制器FilsterDispatcher需要使用配置文件才能完成工作,而这个配置文件是需要我们自己来编写的。
Struts2的工作流程相对于Strutsl要简单的多,可被分为ServletFilters,Struts核心模块、拦截器及用户实现部分。
Struts的工作原理[22]图如图2-3所示:
图2-3Struts工作原理图
3系统分析
3.1系统开发环境确定
1开发环境:
系统采用Myeclispe6.5作为开发环境数据库采用微软的SQLserver2005进行组合开发。
eclipse是一个开源的开发平台,Myeclipse作为Eclipse平台下的一个插件也备受很多开发者的青睐,我们才用它第一个它是一个比较轻量级的开发环境。
同时它又是以一款功能强大的开发平台。
SQLSERVER2005是微软的一款比较好的数据库系统适合于中小型数据库,我们选择SQLserver205是以为系统是一个中心性系统.SQLSERVER2005有着微软的一贯作风简单易用。
2.操作系统采用windowXP;
3.技术框架:
采用当前比较流行且通用的MVC框架STUCTS和持久化框架Hibernate进行开发。
在前端框架上采用jquery和daowenUI进行组合开发,可以做到比较好的界面效果。
3.2系统可行性分析
开发任何一个系统,都会受到时间和资源上的限制。
因此,在每一个项目开发之前,都要进行可行性分析,可以减少项目的开发风险,避免人力、物力和财力的浪费。
下面就技术、经济、操作和法律四个方面来介绍。
(1)技术可行性
本系统开发工具是MyEclipse和Sqlserver数据库,开发语言是Java,主要使用了J2EE的技术,java是一种面向对象编程语言,简单易学而且灵活方便。
大三时就学习了java课程,大四期间也系统的了解了J2EE的知识,协议供货管理系统总体上开发难度不高,数据库的设计和操作是本系统设