【中小型企业人力资源管理系统的设计与实现13000字】_第1页
【中小型企业人力资源管理系统的设计与实现13000字】_第2页
【中小型企业人力资源管理系统的设计与实现13000字】_第3页
【中小型企业人力资源管理系统的设计与实现13000字】_第4页
【中小型企业人力资源管理系统的设计与实现13000字】_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中小型企业人力资源管理系统的设计与实现摘要随着计算机技术、网络技术和信息技术的高速发展,现代办公已经走向了信息化和自动化。通过利用计算机、网络和信息技术来开发的企业的人力资源管理系统,不仅可以提高企业人力资源管理的技术含量,而且可以提高企业的办事效率,它还可以加快人力资源管理进一步现代化和决策科学化的进程。该系统是针对中小型企业进行企业管理的办公系统,它不仅为企业的管理提供了便捷性,还提高企业人力资源管理的工作效率。本文通过分析中小型企业人力资源管理的现状,使用面向对象的开发方法,实现从分析阶段到设计阶段的平滑过渡。对系统的主要功能(职员管理、薪资管理、培训管理)进行深入分析、设计与实现。开发系统的整体框架使用SSH框架,即Spring+Struts+Hibernate,页面间的传值使用了Ajax,后台使用的是MySQL数据库。该人力资源管理系统对于员工主要实现了员工的登录、查看员工档案、查看薪资信息、修改个人信息等功能,对管理员实现了登录、部门管理、职员管理、薪资管理等功能。开发该系统的目的是为了实现企业人力资源管理业务逻辑的高效化和智能。关键词:人力资源管理系统,面向对象,SSH,JSP,MySQL目录297021前言 1114951.1研究背景及开发意义 137831.1.1系统开发的背景 1267061.1.2系统开发的意义 2123161.2国内外发展现状 296411.3主要工作 3163102系统开发的技术与方法 474622.1开发语言介绍 4284172.2Internet与B/S架构 4133392.3MySQL数据库 4243752.4JDK 4217912.5Eclipse开发工具 5256132.6SSH技术 573582.6.1Spring 5235312.6.2Struts 5219082.6.3Hibernate 6108102.7JSP 6291462.8开发方法 6273842.8.1软件工程方法 6280492.8.2面向对象开发方法与UML 6169243系统分析 8319803.1可行性分析 8314443.1.1技术可行性 8120313.1.2经济可行性 876843.1.3操作可行性 8119913.2需求分析 985583.3用例图 9241693.4系统类图 1375293.5时序图 1487063.6活动图 1894994系统设计 21102624.1功能模块设计 21321284.2扩展类图 2263044.3细分时序图 2345634.4数据库设计 26124054.4.1概念结构设计 26143504.4.2逻辑结构设计 27123414.4.3物理结构设计 29119335系统实现 329595.1前端界面 32175315.1.1登录界面 32282455.1.2根据部门查看职位 32264405.1.3查看职位变动信息 33104555.1.4查看员工薪资 33284555.1.5查看培训信息页面 3427355.1.6个人信息维护页面 35323485.2后台界面 35234135.2.1部门管理页面 35151055.2.2工资录入页面 3667315.2.3招聘管理页面 3769925.2.4部门职位管理页面 37126755.2.5奖惩管理页面 383415.2.6用户管理页面 38166系统测试 3823016.1用户登录测试 39122316.2查看信息相关功能测试 39173816.2.1查看员工薪资功能 39180576.2.2个人信息维护功能测试 40144196.3管理员管理功能测试 4045477总结与展望 4225916参考文献 431前言1.1研究背景及开发意义1.1.1系统开发的背景时代在不断发展,社会也在不断进步[1],计算机已经成了人们生活中必不可少的工具,各行各业都离不开互联网。对于企业来说,企业的一些资料,包括员工的基本信息,招聘信息等这些数据信息都需要进行统计并存储。在最开始的人工时代,所有的信息都是通过一双双的手一字一句、一点一滴的记录在纸张上,如果信息过多或者中间需要进行修改,就有可能需要大量的纸张,而且在记录是容易出错,一条信息出错就会导致整张纸上的信息无效,需要重新记录,这样就很消耗纸张,且容易造成纸张的浪费。而且这种方式在进行存储时需要用到大量的时间、精力、人力和物力,同时还需要用很大的空间来存放,如果在存放的过程中发生点意外,就很有可能会造成资料的损坏和丢失,当需要进行查找时也相当费事,这种形式浪费了人力资源,也加大了工作耗时的时间[2]。但是当计算机开始兴起,这些问题都得到了解决。一台计算机可以存放大量的信息,而且对信息的录入、查找和修改都很方便,还不占用太大的的空间。所以对于现在的企业来说,利用计算机进行信息存储还是很重要。进入21世纪后,各种各样的企业开始诞生,市场被各种企业占据,其中大型企业不甘于原来的市场,他们想要占据更多的市场,所以企业在逐步向多元化发展,导致众多中小型企业面临的竞争压力越来越大[3]。为了能在所属行业中占领一定的地位且能够跟上时代的步伐,大家都在不断地学习先进的思想,引进先进的技术。要想管理好一个企业,就需要一个管理工具对企业的人力资源进行管理。为了解决这样的一个问题,开发了一个针对于企业的员工档案管理、薪酬管理和奖惩管理等人力资源管理内容的人力资源管理系统。1.1.2系统开发的意义通过实习发现小型企业的人力资源管理在员工档案管理和薪资管理等方面存在问题。目前一部分小型企业对员工的工资管理不是很合理,其工资的组成不全,只有仅仅的考勤,缺少了对员工的激励,导致不能够很好的调动员工工作的积极性。本系统就是针对这进行设计与开发的一款人力资源管理系统。通过利用现代高效的经营模式来开发和管理企业最重要,也是最昂贵的资源,来实现企业人力资源管理的精细化和自动化,为企业的发展提出适合的方案。1.2国内外发展现状最近几年,我国的人力资源管理系统主要分为三类,一类是企业自己开发一个人力资源管理系统。这种系统只供给开发企业自己使用,可以很好地满足自己的需求,但是开发成本会比较高,后期的维护成本也会比较高,这将是一大笔费用,中间还可能会出现各种各样的问题,如果自己没有办法解决,就需要寻找外部人员解决,这也会是一笔支出。所以要自己开发一个系统的成本会很高,一般的企业是没有这个能力的,大多都是一些大型企业或者上市公司才会采取这种方式,因为他们有这种能力,有雄厚的资金背景。第二类就是外包给专业的开发公司,让他们开发一个满足自己需求的人力资源管理系统,系统的开发和维护由外包公司解决,这样就不会产生额外的费用。这种方式大多是中型企业以上,他们没有能力去开发和维护系统,但他们有一定的资金可以让他们寻找外援满足他们的需求。第三类就是用市场上免费的人力资源管理系统,但这种系统基本上都只有一般的人力资源管理功能,如果你有其他的需求,那么你的需求就只能是需求,不会得到满足。而且如果使用中途出现什么问题,很难得到及时的处理。使用这一类的基本上都是一些新兴企业或小型企业,他们拿不出资金为自己开发或定制一个系统,只能使用一些免费的管理系统。与此同时,我国企业所面临的的发展形势也出现了必较大的变化[4],企业的管理方法从思想到行动都发生着巨大的变化。我国的人力资源管理都还处在摸索阶段,在这个阶段有可能会出现各种改变,这对系统的开发来说是一个巨大的挑战,系统如果不能够适应这些改变,那么这个系统通常就“活”不久。因为国外的发展迅速,大多理论、方式都走在时代的前沿,他们的人力资源管理方式都很先进,所以他们的系统都要比我们的成熟。但是他们的系统在我国是很难存活的,除非是一些外国企业,他们的管理方式都是按照国外的管理方式进行的。因为我国企业与国外企业接受的管理理念是不同的,受到自己国家的文化影响,外国会比较强调制度化,而我国则是强调人性化,这就在理念上就产生了区别,所以国外的管理理念在中国本土企业是没有施展之地的,其系统的实用性也就很低了。1.3主要工作本论文的主要目的是通过网络,采用多种开发技术,为企业设计一个方便工作的人力资源管理系统。让企业摆脱传统的人力资源管理方式,通过使用计算机来简化工作流程。系统分为前端界面和后台管理。前端主要实现了员工查看薪资信息,员工信息、培训信息等。员工可以通过员工工号或姓名来查看自己的个人信息、培训信息等。后台管理主要是信息的展示,其主要功能有职工管理、部门管理、薪资管理、职工管理和培训管理等。通过后台,管理员可以对薪资和员工等信息进行管理,达到对企业人力资源的管理。2系统开发的技术与方法2.1开发语言介绍Java是SunMicrosystems公司推出的一种计算机编程语言,也是目前最先进、特征最丰富、功能最强大的计算机语言[5]。因为它具有跨平台、面向对象和通用编程的特点,所以它主要用于企业级Web应用和移动应用的开发。不同开发人员的需求不同,为了满足他们的需求,Java开发分为JavaSE、JavaEE和JavaME这三个方向。2.2Internet与B/S架构Internet起源于ARPAnet,其目的是建立一种分布式的多节点的计算机网络结构。B/S模式是网页流行以后生成的一种网络结构模式,通常是来自两个层面的构成,其一为客户端,其二就是服务器[6]。浏览器是客户端最主要的应用软件,B/S架构是对C/S架构的一种变化或者改进的结构[7]。用户通过客户端浏览器向服务器端发送请求数据,服务器接收到请求之后,需要对用户发送过来的数据进行业务逻辑处理,多数还伴随着对数据库的存取操作;最后服务器端会将处理后的结果返回给客户端浏览器。2.3MySQL数据库数据库系统分为两个单元系统,分别是数据库与数据库管理系统[8]。MySQL数据库就是一种数据库管理系统,且是一个关系数据库管理系统。MySQL数据库支持多种操作系统,而且操作简单、可移植性以及运行效率都比较高,以至于是当下最流行的数据库管理系统之一。2.4JDKJDK的英文全称是Java

DevelopmentKit,是Sun

Microsystems公司为Java开发人员计的产品。JDK是Java的开发工具包,里面包含了各种类库和工具,除了包括完整的JRE(JavaRuntimeEnvironment)和Java的运行环境,还有其它的工具包。2.5Eclipse开发工具Eclipse是一个Java集成开发工具。Eclipse一现世就因为快速和丰富的特点得到了人们的认可,因为功能比较强大,Eclipse在JavaIDE领域占有比较高的地位。它能够与MySQL、Tomcat等进行很好的连接。2.6SSH技术本系统采用成熟的SSH技术作为开发和实现的核心,SSH技术的基础是SSH框架[9],集成SSH框架的系统分为四层:action层、dao层、service层和model层。其中系统的整体基础架构是Struts,它的任务是负责MVC的分离。2.6.1SpringSpring是一个开源的轻量级的IOC和AOP的容器框架、一站式框架,它包含了AOP思想、IOC控制反转、Springdao和JDBC以及Spring事务等功能。Spring主要是对SSH框架之间业务逻辑进行协调[10]。Spring框架的核心是控制反转IOC(或者叫做依赖注入DI)机制。2.6.2StrutsStruts是一个MVC框架,主要是通过Servlet技术和JSP技术来实现的。因为Struts可以满足大部分的应用开发需求,并且方便操作,反映敏捷,所以运用就比较广泛。Struts将Servlet的封装[11],是JSP和自定义标签以及信息资源结合在统一的框架中,并且其在开发过程中不用再自己编码实现全套MVC模式,从而节省了许多的时间。2.6.3HibernateHibernate是一个开放源代码的对象关系映射框架。因为Hibernate具有数据库可移植性,所以如果需要更换数据库,只需要修改配置文件中数据库相关信息就行,而且还不需要额外增加或删除代码。2.7JSPJSP(全称JavaServer

Pages)是由Sun公司创建的基于java语言的一种服务器脚本技术[12]。JSP的主要作用是代替Servlet程序回传HTML页面的数据,JSP技术是通过用Java语言作为脚本语言,为用户的HTTP请求提供服务,同时还可以与服务器上的其它Java程序共同处理复杂的业务需求[13]。2.8开发方法2.8.1软件工程方法软件工程方法是软件工程学科的核心内容,其中最常用到的有三种,分别是结构化方法、面向对象方法和形式化方法。结构化方法的别称为生命周期方法学或者结构化范型。是通过将软件生命周期的全过程分为多个阶段,并且采用结构化技术来完成各个阶段的任务。面向对象方法由三个部分组成,它们分别是面向对象分析、面向对象设计和面向对象程序语言。面向对象方法使用OOA,来对现实世界进行建模。常用的的工具有:类图、用例图、活动图和时序图等。面向对象方法的核心是功能,分析的是对象,设计的是行为,程序编写和系统设计相对分离。形式化方法是一种建立在严格数学基础上的软件开发方法,它可以将系统的规格说明转换为可执行的程序。本系统采用的是面向对象方法。2.8.2面向对象开发方法与UML面向对象开发方法认为客观世界是由对象组成的,对象由属性和操作组成,对象可按其属性进行分类,对象之间的联系通过传递消息来实现,对象具有封装性、继承性和\t"/item/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E6%96%B9%E6%B3%95/_blank"多态性。封装是通过对象把属性和操纵这些属性的操作包装起来以达到信息隐蔽的目的。继承是指子类继承父类的除私有之外的属性和方法,且还能添加父类中没有的属性和方法。继承不仅减少了对象和类的创建工作量,而且增加了代码的复用性。多态性是指接口的多种实现方式,即不同的类可以相同的格式的属性或操作[14],但是最终的行为是不一样的。面向对象开发的过程主要包括\t"/item/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E6%96%B9%E6%B3%95/_blank"需求分析、系统分析、系统设计和系统实现四个阶段,但是各个阶段的划分不像结构化开发方法那样清晰,而是在各个阶段之间迭代进行的。UML,即统一建模语言,是一种对\t"/item/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD%E8%A8%80/_blank"面向对象系统的产品进行说明、可视化和\t"/item/%E7%BB%9F%E4%B8%80%E5%BB%BA%E6%A8%A1%E8%AF%AD%E8%A8%80/_blank"编制文档的一种语言。UML由模型元素、图、视图和通用机制等几个部分组成。我们在开发系统时,经常会通过用例图、类图、时序图等来观察整个系统。3系统分析3.1可行性分析可行性分析的主要工作是在项目实施前从多个方面对项目进行一个评估。如果要实现这一目标,需要分析其解决方案的优缺点,确定系统的规模大小,判断系统的开发是否可以进行。本文将从技术可行性、经济可行性和操作可行性这三个方面来分析。3.1.1技术可行性人力资源管理系统的开发采用了当前较为流行的开发语言Java和开发工具Eclipse,动态网页开发技术JSP和SSH架构技术Struts、Spring和Hibernate,还有功能强大、操作简单的的MySQL数据库。通过自己的学习和开发能力,可以开发出一个较为完善的人力资源管理系统。3.1.2经济可行性当下的时代属于信息化时代,信息化管理可以使人力资源管理工作更加系统化、快速化和全面化。这样可以为企业带来较高的工作效益和经济效益,在提高工作效率的基础上,可以考虑减少人力资源管理系统中管理员的数量。本系统对计算机配置的要求不高,市场上现有的机型都可以满足需求。其次企业在管理工作上的高效率和便捷性所带来的收益远远超过了开发本系统的成本。最后,本系统使用Eclipse作为开发工具,数据库使用的MySQL,实现通过浏览器在不同电脑上登录访问和操作[15],都是免费工具,可以不计如成本。系统为个人独立开发,人力成本忽略不计。所以从经济上来说是可行的。3.1.3操作可行性我们所处的时代是计算机时代,是网络的时代。大家对计算机都不陌生,本系统的载体就是一般的计算机,而且主要的工作就是对信息进行增删改查,没有其它的技术要求,一般的工作人员都可以对其进行操作。所以从操作上来说也是可行的。综上所述,此系统的开发是可行的。3.2需求分析人力资源管理系统分为前台、后台两大功能层次。系统前端是面对员工的,主要功能如下:(1)员工档案查询功能(2)部门信息查询功能(3)用户登录验证功能(4)奖惩信息查询功能(5)薪酬信息查询功能(6)个人信息修改功能后台功能针对的是管理员,其功能主要是完成系统的日常管理。主要功能如下:(1)部门管理(2)职工档案管理(3)奖惩管理(4)薪酬管理(5)培训管理(6)招聘管理(7)报表管理(8)系统管理3.3用例图用例图主要用于描述系统的功能,它的组成部分有参与者、用例、边界以及它们之间的关系。参与者:表示系统中的用户,即与系统交互的对象,用例:用户与系统的交互行为,可以理解为用户可以使用系统做的事情,系统边界:用来表示正在建模系统的边界。本系统的总用例图如图所示。图3-1人力资源管理系统总用例图图3-2职员档案管理子系统用例图(1)职员档案管理用例描述如下:登录:管理员和用户登录系统后才能进行后续的操作。员工职位变动:管理员和员工都可以查看员工变动信息,且管理员还可以添加调动信息,以及对需要改动的信息进行修改,对不需要的信息进行删除。员工信息管理:管理员可以对员工的信息进行增删改查,员工只能进行查询。图3-3培训管理用例图(2)培训管理用例描述如下:登录:管理员和员工只有登录后才能进行后续的操作。记录培训信息:管理员每次要记录员工的培训信息。发布培训信息:管理员在培训管理页面将所有员工的培训信息进行展示。查看培训信息:管理员和员工在培训管理界面,点击查询,输入员工的工号,可以查询到该员工的培训信息。图3-4薪资管理用例图(3)薪酬管理用例描述如下:登录:管理员和员工登录后才能进行后续的操作。工资信息录入:管理员根据每个员工的考勤信息和奖惩信息录入每个员工的薪资。管理薪资信息:管理员和员工都能查看薪资信息,可以根据员工的工号、姓名进行查询。管理员可以对需要改动的信息进行修改或删除。图3-5奖惩管理用例图(4)奖惩管理用例描述如下:登录:管理员和员工登录后才能进行后续的操作。记录奖惩信息:管理员如实记录每位员工的奖励和惩罚情况。上传奖惩信息:管理员在每个月底将员工的奖惩信息发布出来。’查看奖惩信息:管理员和员工都能查看奖惩信息,可以根据员工的工号进行查询。修改奖惩信息:管理员在奖惩管理页面,对需要修改的信息进行修改。删除奖惩信息:管理员对已经过时且不需要的奖惩信息进行删除。3.4系统类图类图主要用在面向对象软件开发的分析和设计阶段,用来描述系统的静态结构。类图中最基本的元素是类、接口。类图显示了该系统的所有实体、实体的属性和操作以及实体之间的关系。根据面向对象分析的特点,通过需求分析与系统用例可以找到以下实体类:User:用户实体类,包含用户ID、用户名、姓名、密码。Staff:员工档案实体类,包含员工ID、姓名、部门ID、联系方式、地址、学历、毕业院校等。Recruit:招聘表实体类,包含ID,标题,招聘要求,招聘人,添加日期,招聘职位,招聘数量等。Cultivate:培训实体类,包含培训ID,标题,内容,培训时间,培训地点,培训人等。Transfer:调动实体类,包含调动ID,员工ID,原部门,原职位,新部门,新职位,调动原因等。Section:部门类,包含部门ID,部门名称,部门负责人,备注。Pay:薪资实体类,包含薪资表ID,员工ID,基本工资,职位工资,正常工作时间,全勤奖,旷工时间等。Position:职位类,包含职位ID,职位名称,部门ID,职位工资。Rewardpunish:奖惩类,包含奖惩ID,员工ID,类型,标题,金额,其它等。图3-6类图3.5时序图时序图又叫序列图,是一种用来描述对象之间收发消息的时间顺序的UML交互图。它的表示方法是:矩形框表示对象,纵向的虚线表示对象在序列中的执行情况,这条虚线被称为对象的生命线,虚线上矩形长条表示该对象处于激活状态。对象之间接收消息是通过对象之间的消息线来表示,通过消息线的箭头来区分消息的类型,如黑心箭头是同步,简笔箭头是异步。(1)员工登录:图3-7员工登录时序图流程说明:用户输入用户名、密码和验证码登录,如果用户名和密码不正确,则需要重新输入用户名或密码。如果验证码不正确则会提醒验证码输入错误。用户名、密码验证码都正确才能进入系统。(2)员工查询考勤信息:图3-8员工查询奖惩时序图流程说明:员工登录系统后才能进行奖惩信息查询,在奖惩系统界面可输入员工工号进行查询。(3)管理员登录:图3-9管理员登录时序图流程说明:管理员在登录系统界面输入用户名、密码和验证码登录时,系统会进入数据查找输入的信息,如果没有找到一样的用户名或密码,则会提示用户名或密码不正确,需要重新输入用户名、密码和验证码。如果验证码不正确则会提醒验证码输入错误。用户名、密码和验证码都正确才能进入系统。(4)管理员对员工信息的管理:图3-10管理员管理员工信息时序图流程说明:管理员登录后,进入系统,在员工信息系统界面,对员工信息进行增删改查。(5)管理员调动管理:图3-11管理员添加人员调动时序图流程说明:管理员登录系统后,首先要在员工信息界面查看员工的信息,然后再在职位变动界面添加对员工的调动信息。(6)管理员薪酬管理:图3-12管理员录入薪酬时序图流程分析:管理员进入薪酬管理系统界面,添加员工的薪酬信息时,进入奖惩管理系统,查看该员工的奖惩信息,再在薪酬管理系统界面输入相应的考勤数据和奖惩数据。最后才会得出员工的薪酬信息。3.6活动图活动图是用来描述活动的先后顺序,显示从一个活动到另一个活动的控制流的一个常用工具。活动图中涉及到的元素有动作状态、活动状态、动作流、分支与合并等。黑色的实心圆表示一个活动的开始,含有实心圆的空心圆代表活动的结束。图3-13人力资源管理系统活动图(1)员工登录活动图图3-14登录活动图员工登录:在登录页面填写用户名、密码和验证码,系统在数据库中查找输入的的用户名和密码,如果没有找到则会提示用户名或密码不正确,如果用户名一样,但密码不一样同样会提醒用户名或密码错误。如果验证码输入不正确,系统则会提示验证码输入错误。(2)奖惩管理活动图图3-15奖惩管理活动图奖惩管理:管理员登录系统后,在奖惩管理界面对员工的奖惩信息进行管理(增加、修改或删除),员工则可以在奖惩管理界面查看奖惩信息,如果对某一条信息有异议,可以告知管理员,由管理员对该信息进行更改。(3)管理员管理薪资活动图图3-16管理员管理薪资活动图管理员管理薪酬:管理员登录系统后,进入员工工资录入界面,输入员工的工号和其它的相关信息,就可以进行员工薪酬的录入,管理员再将信息发布出来,由员工进行查看,如果有误管理员再进行修改,如果没有错误就结束对薪资的管理。4系统设计4.1功能模块设计本系统主要分为以下几个部分:(1)部门管理:分为两个部分。一个是部门信息管理,另一个是职位管理。部门信息管理是对部门的基础信息(包括部门名称和部门管理人信息)进行管理,职位管理是对其职位信息(包括该职位所属部门、该职位工资等信息)进行管理。管理员可以对其信息进行增删改查,员工只能进行查看。(2)职员管理:分为员工信息管理和员工职位变动信息管理两部分。员工信息管理是对员工的基础信息进行管理,员工职位变动信息是对员工的部门和职位变动信息进行管理。管理员可以对其信息进行增删改查,员工只能进行查看。(3)奖惩管理:对员工的奖惩信息进行管理,包括受到奖励或惩罚的原因,奖励或者惩罚的金额等信息。管理员可以对其信息进行增删改查,员工只能进行查看。(4)薪资管理:分为员工工资录入和员工工资信息管理两部分。员工工资录入是管理员录入员工每个月的工资以及对没有录到的员工的工资信息进行补充。员工工资信息是指对所有员工的工资信息进行管理,管理员可以对其进行查询、删除和修改,员工只能进行查询。(5)培训管理:培训信息发布和培训记录信息。培训信息发布是指对员工的培训信息进行发布。培训记录信息是对员工的培训成绩进行记录。管理员对这两块都可以进行增删改查,员工只能进行查询。(6)招聘管理:是对企业的招聘信息进行管理,包括需要招聘的岗位,该岗位的人数需求等信息,管理员可以对这些信息进行增删改查操作,员工只能进行查询操作。(7)报表管理:包括员工信息报表和员工薪水报表。管理员可以查相关信息报表,并且将其导出。员工没有权限进行相关操作。(8)系统管理:分为用户管理、角色管理和个人信息维护这几个部分。用户管理是对系统的使用者进行管理,角色管理是指对用户的角色进行管理,管理员可以进行增删改查,员工只能查看用户管理,不能查看角色。个人信息维护是指对当前登录用户的用户名、密码进行修改。4.2扩展类图扩展类是指与实体的相关的业务逻辑类。根据前面所设计的实体类,可设计本系统的业务逻辑类:UserService:用户业务逻辑类,包括登录操作。操作对象包含User等实体类。TransferService:调动业务逻辑类,提供对调动信息的操作(查询、修改、增加、删除),操作的是实体类Transfer类的对象。CultivateService:培训业务逻辑类,提供对培训信息的操作(查询、修改、增加、删除),操作的是实体类Cultivate类的对象。StaffService:员工档案业务逻辑类,提供对员工的信息操作(查询、修改、增加、删除),操作对象包含Staff、User等实体类。SectionService:部门业务逻辑类,提供对部门信息的操作(查询、修改、增加、删除),操作的是实体类Section类的对象。PositionService:职位业务逻辑类,提供对培训信息的操作(查询、修改、增加、删除),操作的是实体类Position类的对象。RecruitService:招聘业务逻辑类,提供对招聘信息的操作(查询、修改、增加、删除),操作的是实体类Recruit类的对象。RewardPunishServicr:奖惩业务逻辑类,提供对奖惩信息的操作(查询、修改、增加、删除),操作的是实体类RewardPunish类的对象。PayService:薪资业务逻辑类,提供对薪资信息的操作(查询、修改、增加、删除),操作的是实体类Pay类的对象。图4-1扩展类图4.3细分时序图(1)员工登录图4-2用户登录时序图流程说明:用户进入登录界面,在输入框中分别输入用户名、密码和验证码。点击确定,UserService类需要进行信息验证,验证成功才进入系统的主页面。员工查看职位变动信息图4-3员工查看职位变动信息时序图流程说明:员工在员工职位变动页面查看员工变动信息。如果要查看某位员工的职位变动信息,可以选择查找条目(姓名或工号),输入相关内容,点击查询。就可以查找到该员工的职位变动信息。管理员登录图4-4管理员登录时序图流程说明:管理员在登录界面进行登录操作,向输入框内输入用户名、密码和验证码,UserService类会进行验证,验证成功进入系统主页面,验证失败返回则就处在登录界面,进不了系统。(4)管理员更新培训信息图4-5管理员更新培训信息时序图流程说明:管理员进入登录页面,输入信息后登录系统。在培训管理页面选择需要更新的信息进行更新。(5)用户管理:图4-6管理员用户管理时序图流程说明:管理员登录系统后,首先要在员工信息管理页面通过EmployeeService类处理员工的信息,其次再进入用户管理页面,在该页面添加新的用户,如果在用户添加前没有对新员工的信息进行处理,此时是添加不了新用户的。4.4数据库设计4.4.1概念结构设计在概念结构设计阶段最常用到的概念模型是E-R模型。从E-R模型中我们可以直观的看到参与系统的的实体以及它们的部分属性。E-R模型展示实体、属性和联系的表示方法。(1)矩形表示实体,框内需要写清实体的名称。(2)椭圆形表示属性,并用线将它与相关的实体联接起来,表示是这个相关实体的属性(3)菱形表示联系,框内写清联系名称,并用线来连接有关实体。无箭头的一端指向多的一方,箭头端指向1的那端。如果一个联系具有属性,这些属性也需要用线与联系连接起来。图4-7系统E-R图4.4.2逻辑结构设计逻辑结构设计的具体步骤就是先将E-R模型转化为关系模型,再在关系模型的基础上,将其转化为数据库逻辑结构图,最后再根据逻辑结构图进行数据逻辑设计。本系统采用MySql数据库,将其转换为相应的关系模型。(1)staff(secid,stid,stname,stsex,stbirth,staddress,sttelephone,stqq,stemail,stidcard,stnation,steducation,stschool,stprofession)员工档案表(部门ID,员工ID,姓名,性别,出生日期,联系方式,QQ号码,电子邮箱,身份证号,民族,学历,毕业学校,专业)(2)position(posid,posname,secid,posbasicwage)职位表(职位ID,名称,部门ID,职位工资)(3)recruit(recid,rectitle,reccontent,recstarttime,recendtime,recdatetime,recjob,recnum,recremark)招聘表(ID,标题,招聘要求,开始时间,结束时间,录入日期,招聘职位,招聘数量,备注)(4)cultivate(culid,cultitle,culcontent,cultime,culplace,culperson,cul0remark)培训表(培训ID,标题,内容,培训时间,培训地点,培训人,备注)(5)user(usid,stid,usname,uspwd,usremark)用户表(用户ID,员工ID,用户名,密码,备注)(6)transfer(trfid,stid,trfoldsec,trfoldpos,trfnewsec,trfnewpos,trfreason,trfremark)调动表(调动ID,员工ID,原部门,原职位,新部门,新职位,调动原因,备注)(7)section(secid,secname,sechead,secremark)部门表(部门ID,部门名称,部门负责人,备注)(8)pay(payid,stid,paybasic,payposition,paynormal,payall,payabsent,payabsentmoney,payannuity,paymedicare,payjobless,paydietary,paytraffic,paytelephone,payallowance,paymoney,paymonth,payremark)薪资表(薪资表ID,员工ID,基本工资,职位工资,正常工作时间,全勤奖金额,缺勤工时,缺勤金额,养老金,医疗保险,失业保险,饮食补贴,交通补贴,电话补贴,其他补贴,实际工资,月份,备注)(9)rewardpunish(rpid,stid,rptype,rptopic,rpmoney,rpother,rpreason,rpremark)奖惩表(奖惩ID,员工ID,类型,标题,金额,其它,原因,备注)4.4.3物理结构设计表4-1员工档案表字段名字段类型允许为空默认值备注secidINTNO(NULL)部门ID(外键)stidINTNO(NULL)员工ID(主键)stnameVARCHARNO(NULL)员工姓名stsexINTNO(NULL)性别stbirthDATENO(NULL)出生日期staddressVARCHARNO(NULL)家庭地址sttelephoneINTYES(NULL)联系方式stqqINTNO(NULL)QQ号码stemailVARCHARNO(NULL)电子邮箱stidcardINTNO(NULL)身份证号stnationVARCHARNO(NULL)民族stschoolVARCHARNO(NULL)毕业学校steducationVARCHARNO(NULL)学历stprofessionVARCHARNO(NULL)专业表4-2职位表字段名字段类型允许为空默认值备注posidINTNO(NULL)职位ID(主键)posnameVARCHARNO(NULL)职位名称secidINTNO(NULL)部门ID(外键)posbasicwageFLOATNO(NULL)职位工资posremarkTEXTNO(NULL)备注表4-3招聘表字段名字段类型允许为空默认值备注recidINTNO(NULL)招聘ID(主键)rectitleVARCHARNO(NULL)标题reccontentTEXTNO(NULL)要求recstarttimeDATENO(NULL)招聘开始日期recendtimeDATENO(NULL)招聘结束日期recpersonVARCHARNO(NULL)招聘人rectimeDATENO(NULL)添加日期recposVARCHARNO(NULL)职位recnumINTNO(NULL)数量recremarkTEXTYES(NULL)备注表4-4培训表字段名字段类型允许为空默认值备注culidINTNO(NULL)培训ID(主键)cultitleVARCHARNO(NULL)标题culcontentTEXTNO(NULL)培训内容cultimeDATENO(NULL)培训日期culplaceVARCHARNO(NULL)培训地点culremarkTEXTYES(NULL)备注表4-5用户表字段名字段类型允许为空默认值备注usidINTNO(NULL)用户ID(主键)stidINTNO(NULL)员工ID(外键)usnameVARCHARNO(NULL)用户名uspwdVARCHARNO(NULL)密码usmarkTEXTYES(NULL)备注表4-6调动表字段名字段类型允许为空默认值备注trfidINTNO(NULL)调动ID(主键)stidINTNO(NULL)员工ID(外键)trfoldsecDATETIMENO(NULL)初始部门trfoldposINTNO(NULL)初始职位trfnewsecVARCHARNO(NULL)新部门trfnewposINTNO(NULL)新职位trfreasonVARCHARYES(NULL)调动原因trfremarkTEXTYES(NULL)备注表4-7部门表字段名字段类型允许为空默认值备注secidINTNO(NULL)部门ID(主键)secnameVARCHARNO(NULL)部门名称secheadVARCHARNO(NULL)负责人secremarkTEXTYES(NULL)备注 表4-8奖惩表字段名字段类型允许为空默认值备注rpidINTNO(NULL)奖惩ID(主键)eidVARCHARNO(NULL)员工ID(外键)rptypeVARCHARNO(NULL)形势rptopicINTNO(NULL)标题rpmoneyFLOATNO(NULL)金额rpotherTEXTNO(NULL)其它rpreasonTEXTYES(NULL)原因rpremarkTEXTYES(NULL)备注表4-9薪资表字段名字段类型允许为空默认值备注payidINTNO(NULL)薪资表ID(主键)stidVARCHARNO(NULL)员工ID(外键)paybasicFLOATNO(NULL)基本工资paypositionFLOATNO(NULL)职位工资paynormalFLOATNO(NULL)正常工作时间payallFLOATNO(NULL)全勤奖金额payabsentFLOATNO(NULL)缺勤工时payabsentmoneyFLOATNO(NULL)缺勤金额payannuityFLOATNO(NULL)养老金picareaymeFLOATNO(NULL)医疗保险payjoblessFLOATNO(NULL)失业保险paydietaryFLOATNO(NULL)餐饮补贴paytrafficFLOATNO(NULL)交通补贴paytelephoneFLOATNO(NULL)电话补贴payallowanceFLOATNO(NULL)其它补贴paymoneyFLOATNO(NULL)实际工资paymonthINTNO(NULL)月份payremarkTEXTYES(NULL)备注5系统实现5.1前端界面5.1.1登录界面图5-1登录界面核心代码:5.1.2根据部门查看职位图5-2根据部门查询职位界面 5.1.3查看职位变动信息图5-3查看职位变动信息界面核心代码如下: 5.1.4查看员工薪资图5-4查看员工薪资信息界面5.1.5查看培训信息界面图5-5培训信息界面核心代码:publicvoidlist(){ StringCultivate=null; if("query".equals(type)){ cultivateBean=newcultivateBean(); cultivateBean.setCultivatePerson(cultivatePerson); cultivateBean.setStartDate(startDate); cultivateBean.setEndDate(endDate); cultivateBean.setTraTitle(cultivateTitle); Cultivate=cultivateService.queryList(cultivateBean,start,limit); this.setType(null); }else{ Cultivate=cultivateService.list(start,limit); } this.out(Cultivate); }5.1.6个人信息维护页面图5-6个人信息维护页面核心代码:publicvoidupdatePwd(){ Useryy=(User)this.getSession().get("user"); yy.setUsName(user.getUsName()); yy.setUsPwd(user.getUsPwd()); Stringus=userService.save(yy); this.out("{success:true,us:'"+us+"'}"); }5.2后台界面5.2.1部门管理页面图5-7部门管理页面核心代码:5.2.2工资录入页面图5-8工资录入页面核心代码:publicvoidsum(){ floatrevMoney=payService.sum(allMoney); floatsendMoney=Float.parseFloat(allMoney)-revMoney; this.out("{success:true,revMoney:'"+revMoney+"',sendMoney:'"+sendMoney+"'}"); } publicvoidsave(){ Usertt=(User)this.getSession().get("tt"); StringaddPerson=tt.getStaff().getEName(); Datere=CurrentDate.getDateAndTime(); pay.setStfReleasePerson(addPerson); pay.setStfReleaseDate(re); pay.setStfYear(CurrentDate.getStringDate().substring(0,4)); Stringpy=payService.save(pay); this.out("{success:true,py:'"+py+"'}"); }5.2.3招聘管理页面图5-9招聘管理页面核心代码:5.2.4部门职位管理页面图5-10部门职位管理页面核心代码:5.2.5奖惩管理页面图5-11奖惩管理页面核心代码:5.2.6用户管理页面图5-12用户管理页面 核心代码:6系统测试系统测试的目的是:检测系统中每个功能的完成与实现情况,同时也是为了检测系统是否有bug。系统是根据用户的需求进行开发的,系统开发完成后,通过系统测试,查看系统是否满足用户的需求,且其中的功能是否都能实现。此次测试主要用了黑盒测试,即功能测试,测试过程中出现的问题可以一一解决提高代码的可用性。部分代码测试用例如下:6.1用户登录测试(1)用户登录功能测试测试用例测试内容预期结果实际结果1输入正确用户名赵丽颖和密码123456,正确的验证码结果:登录成功结果:登录成功2输入正确用户名赵丽颖和错误密码111111,正确的验证码结果:用户名或密码不正确,登录失败结果:用户名或密码不正确,登陆失败3输入正确用户名赵丽颖和密码123456,错误的验证码结果:验证码错误结果:验证码错误表6-1用户登录功能测试表结果:功能均能正常实现6.2查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论