企业人事管理系统设计与实现论文_第1页
企业人事管理系统设计与实现论文_第2页
企业人事管理系统设计与实现论文_第3页
企业人事管理系统设计与实现论文_第4页
企业人事管理系统设计与实现论文_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业设计(论文) 题 目 企业人事管理系统设计与实现 完成时间 2015年 6月1日 毕业设计(论文)任务书题目 企业人事管理系统设计与实现 主要内容、基本要求、主要参考资料等:主要内容:为了应对现代企业越来越复杂的组成结构和由此产生的繁重的管理工作,提高企业的工作效率和凝聚力,避免因人为因素造成的数据丢失等严重后果,使用Java、SqlServer、JSP技术设计一个企业人事管理系统,为企业日常业务的综合管理工作提供帮助,主要模块有员工资料、部门管理、职位管理、签到、请假管理、招聘、奖惩管理、加班管理、公告系统、资料共享等模块。基本满足企业日常的业务需求,实现企业的现代化管理。基本要求:1. 所实现的功能基本满足企业的日常使用。2安全可靠,易于开发和维护、有较强可扩充性。主要参考资料:1刘浩.Java从入门到精通M.北京:人民邮电出版社,2010.2陈海山.深入Java Servlet网络编程M.北京:清华大学出版社,2010.3耿祥义,张跃平.Java基础教程M.北京:清华大学出版社,2009.指导教师签名: 专业负责人签名: 2015 年 3 月 3 日目 录摘 要IABSTRACTII1 绪论11.1 开发背景11.2 开发目标11.3 开发思想22 技术介绍32.1 B/S结构32.2 Java语言简介32.3 MyEclipse介绍42.4 SqlServer200842.5 JDBC43 可行性分析73.1 技术可行性73.2 运行可行性73.3 经济可行性84 需求分析54.1 功能需求54.2 性能需求54.3 其他需求65 概要设计95.1 系统总体设计95.2 各个模块设计95.3 应聘子系统设计106 数据库设计126.1 数据分析126.2 数据表实现137 系统实现197.1 各个模块实现197.2 应聘子系统实现307.3 关键方法328 系统测试358.1 用例设计358.2 测试实施368.3 测试结论37结束语38致 谢39参考文献40企业人事管理系统设计与实现企业人事管理系统设计与实现摘 要随着现代企业的发展,企业组成的复杂度变得越来越大,单纯的手工管理在处理业务时效率低下,已无法满足企业的需求,开发一个简单方便、可靠性好的人事管理系统显得极为必要。针对这些需求,在分析了业务逻辑后,进行人事管理系统的设计工作,采用B/S架构,Java作为开发语言,SqlServer2008作为数据库,主要实现了员工信息、部门管理、招聘管理、薪资管理、考勤管理、文件共享等功能。另外设计了一个应聘子系统作为主系统的补充,让应聘者创建信息、浏览公司职位和查看自己的处理结果,增强系统的人事管理功能,以软件工程开发流程为指导,并借鉴MVC设计模式,最终完成了企业人事管理系统的开发。该系统的实现为企业管理工作带来了便利,降低了管理成本,提高效率,可以基本满足中小型企业的需求,这也是该系统的开发目的所在。关键词 人事管理,B/S,SQLServer,JDBCTHE DESIGN AND IMPLEMENTATION OF ENTERPRISE PERSONNEL MANAGEMENT SYSTEMABSTRACTWith the development of modern enterprises, the complexity of the Enterprise has become more and more big, simple manual management is inefficiency in dealing with business, has been unable to meet the needs of enterprises, to develop a simple, reliable, appears good personnel management system become extremely necessary.In response to these needs, after the analysis of the business logic, design work and personnel management system, use the B / S architecture, Java as a development language, SqlServer2008 as a database, Had achieved the employee information, sector management, recruitment management, payroll function, and attendance management function, file sharing and other functions. Also we designed a candidate subsystem to supplement the primary system, so that candidates create information, visit the companys position and view their results, and enhance the systems personnel management to software engineering processes as a guide, and learn MVC design pattern, finally completed the development of personnel management system.Implementation of the system of enterprise management is made easier, reduce management costs, improve efficiency, it can basically meet the needs of Small and Medium Enterprises, which is the systems development purpose.KEY WORDS personnel management,B/S,SQLServer,JDBCII1 绪论1.1 开发背景随着计算机技术的进步,中国的高速发展,企业的管理机制正在发生着重要变化,现代企业在管理中逐渐引入了现代化的管理技术,当今社会正在朝着信息化、科学化的方向快速发展,信息自动化的意义和作用已经越来越大,他可以使我们不再疲惫于繁重的人力资源管理工作,而是利用信息化的技术去进行管理1。目前很多企业仍然没有一个系统化、规范化的人事管理软件,人事管理还处于最基础的人工管理阶段,效率低下,已经远远不能满足当今社会对人事管理的需求,并且人工管理有很多显而易见的弊病,会出现因为人为的操作失误,错误操作,造成数据的丢失、损坏、误报,给企业造成不可挽回的损失,另外,时间一长,这种管理方式会产生大量的文件,对于更新维护带来了不少困难。这些现象层出不穷2。人事管理是现代企业管理中不可忽视的一个重要组成部分,竞争对于企业管理者提出了更多的挑战,人事的管理另一种意义,就是对企业生命和前途的管理,人事是最宝贵的资源,一个企业没有了可用之才,那么这个企业会变得岌岌可危,实现办公自动化已经得到了企业的重视,企业要想在当今激烈的竞争中生存下来,就必须要引入信息化管理,做好人才的管理工作。1.2 开发目标目前在市场上已经存在很多人事管理系统,人事管理系统在现代化的企业管理中越来越受到管理者的重视,但是这些都并不一定满足企业的日常应用,这些软件确实很好,但是对于企业来说,需要的是一个实用、高效、价格低廉的软件,购买一个这样的软件,本身就是一笔很大的开销,再加上日常的维护处理,带来的工作成本会大大提高,得不偿失。在企业管理中并不需要特别大型的管理系统,操作简便、功能强大、满足基本的日常工作处理即可3。降低人事管理的成本,提高效率,科学化的管理企业。这就是本系统开发目标所在。1.3 开发思想在设计一个系统之前,首先要对这个系统要有一个清晰的认识,知道要实现什么功能,要设计什么模块,以及权限控制,安全控制等,这些因素都要考虑到4,这是对一个系统最基本的认识,一个简单好用的系统应该包括操作便捷、界面美观大方、运行速度快、学习成本小等等优点,让使用者可以快速上手,方便快捷的对企业进行管理。由此分析出,此系统应该具有以下几个特点:(1)高技术性:采用比较先进的开发工具,本系统采用了Java开发最为流行的集成开发工具:MyEclipse和SqlServer2008数据库相结合,进行开发和实现工作,MyEclipse是一个功能非常强大的IDE,微软开发的SqlServer在市场一直有着良好的评价,可以大容量的进行数据存储,使用Java作为开发语言,采用了MVC5思想进行模型构建,充分运用了先进的技术来开发本系统。(2)实用性:在开发系统之前,做了很多相关方面的调查,包括和公司领导进行沟通交流,发现在企业中的实际需求,以及上网查询资料,观察类似的软件都实现了什么功能,一切从需求出发,以需求为引导,以用户的方便为准则,进而提出了需求分析和概要设计,切实满足用户需求和要求,达到让用户满意的程度。(3)严谨性:企业最看重的是数据的安全问题6,数据安全也是软件设计工作中的重中之重,为了保持数据的完整性和保密性,在充分调查了企业的需求之后,本系统设计了三种登录身份,一种是普通用户身份,权限最低,一种是管理员身份,可以对系统的各个模块进行操作,比如录入工资,更新公告,更新奖惩办法,处理请假申请等等一系列信息,但是不能对一些敏感数据进行操作,如果想进行操作,就需要以第三种身份进行登录:超级管理员,可以对敏感信息进行操作,比如删除考勤记录、删除工资记录、用户管理等,防止有人恶意篡改数据,在一定程度上保证了数据的安全性。(4)复用性:采用模块化方法进行开发和设计,对于各个模块都相同的代码进行了通用类的设计,达到设计出高内聚,低耦合的程序的目标,提高了系统的复用性。2 技术介绍2.1 B/S结构B/S结构,即服务器/浏览器结构,它是随着Web技术的发展建立起来的模型,在当前的Web开发中属于一种比较常见的模式,应用较为广泛,从传统的C/S(客户端/服务端)结构转变而来,是一种新的网络模式架构,其实本质就是三层的C/S架构,在B/S架构下,用户界面是用JSP编写,通过浏览器进行显示,在前端只执行极少数的业务逻辑,主要业务均在后端(Server端)实现,极大的简化了客户端的电脑负荷,使得日后的维护工作只要对服务器端进行维护即可,减轻了开发成本与系统维护、升级的费用7。但是由此带来的后果是服务器负荷交大,对服务器的性能要求较高,具体结构如图2-1所示。图2-1 B/S模型结构示意图2.2 Java语言简介当前有许多开发语言可以选择,面对这些开发语言,在项目开发的准备工作中,最终选择了Java作为开发语言,因为Java有强大的面向对象特性,可以很好的区分业务逻辑和页面开发。Java是在1995年,由Sun Microsystem公司发布的一种面向对象的设计语言,以及开发平台的总称,最初命名是Oak,当初被作为嵌入式语言为消费类的电子产品而设计的,现在被广泛用于开发Internet程序,Java是一种平台无关的语言8,可以跨平台编写开发应用。自从Java被开发出来,让整个Web开发发生了翻天覆地的变化。Java有着通用性、高效性等诸多特点,在各个平台可以很方便的进行移植,广泛的用于个人PC、数据库服务器、移动开发、游戏服务器、互联网开发、Web开发等领域,Java在全球的使用度和C不相上下。2.3 MyEclipse介绍MyEclipse是在Eclipse的基础上,加入插件插件而形成的企业级应用开发环境,主要用于JAVA、JAVAEE以及移动应用的开发,MyEclipse因为其强大的功能,拥有者广泛的支持,对各种开源框架的支持也相当不错。全称是MyEclipse Enterprise Workbench,是一个功能非常丰富的JAVAEE集成开发环境,是对Eclipse的IDE的扩展,利用Myeclipse可以使用数据库进行JAVASE、JAVAEE的开发,发布以及应用程序的整合,Myeclipse因为其强大的开发环境支持,可以大大提高工作进度和效率,包括了完整的编码、调试、发布功能。Myeclipse几乎囊括了市场上所有主流的专属开发工具。2.4 SqlServer2008SqlServer2008数据库是由微软公司推出的,在Sqlserver2005的基础上做出改进的关系型数据库系统。可以在各个Windows操作系统上正常使用,Sqlserver是一个非常全面的数据库平台,可以为任何规模的企业和机构提供强大的信息管理解决方案,使用了智能的商业智能工具提供了企业级的数据管理9,可以让开发者构建更为强大的数据应用程序,因此本系统采用了SqlServer2008作为系统数据库进行开发。2.5 JDBCJDBC10,全称是Java DataBase Connectivity,即Java与数据库的连接技术,是一组针对连接数据库而开发的API,可以支持多个数据库,提供统一的访问方法,是一种标准,开发厂商可以由此定制自己的开发工具和结构,使系统的开发人员可以用此让Java和数据库得到连接,JDBC是一种数据库连接的基准,JDBC开发标准的的接口,并为数据库厂商和使用者提供了标准的数据库连接方法,由一组用Java编写的类和接口组成。有了JDBC技术,使从Java向数据库发送数据变得容易,就不必再为每个数据库再专门编写程序,使得程序员不必再为跨平台的问题而担心,不必再为不同的平台编写不同的程序,真正实现了“一次编写,到处运行”。3 可行性分析在开展开发工作之前,需要对可行性进行分析和调查,可行性分析是一个系统在开发之前研究项目是否可行的技术,在分析系统之后,发现开发中存在的问题和可能性,主要从经济、技术、运行、进行分析和研究,减少开发风险,避免人力物力的浪费,调查的方式有很多种,包括上网查阅资料,观察其他类似系统是怎么实现的,以及走访企业,和系统分析员进行交流,和人事管理员进行沟通等等,并了解企业的工作方式和工作流程,以及具体的实施办法,分析结果是使用完善的企业人事管理系统可以非常方便的进行企业管理,极大的提高管理效率,根据上述分析,开始进行可行性研究工作。3.1 技术可行性开发环境(IDE11)可行性:从目前主流的开发技术来看,使用基于JAVAEE的开发架构,B/S作为系统结构,使用Java开发语言以及SqlServer数据库完全可以胜任本系统的开发工作,Java语言向来比较安全,加上SqlServer强大的数据管理,以及MyEclipse的开发工具,完全满足本系统的开发环境要求。开发硬件可行性:系统在开发的过程中开发人员所具有的资料和计算机设备以及相关资源,以及在系统开发完成后,使用企业所具有的计算机设备以及其他资源,要综合考虑双方的情况,设计一个最合理的方案,保证系统在开发出来后,在客户的环境下可以完美运行,同时还要考虑性价比的因素。本系统对于计算机的运行有一定的性能要求,内存不低于1G,硬盘容量大于40G,并需要安装JRE,如果低于这个需求,将会影响系统的正常运行,从目前来看,主流的计算机均达到了这个要求,所以在硬件方面是可行的。3.2 运行可行性由于本系统是一个内部系统,不向外部公开,所以避免了外来的恶意访问,本系统在运行过程中只是面向企业内部使用,包括员工、组长、经理等,尽管这些人之前可能没有使用过相关管理软件的经验,但是本系统是建立在Windows操作系统之上,操作界面友好,简单明了,学习成本较低,操作人员无需进行专业的培训即可胜任此工作,可以在专业人员的知道下迅速的掌握系统的使用方法,如果有必要的话,可以编写一个操作说明书,供相关人员进行学习,正确的操作人事管理系统。3.3 经济可行性由于现阶段企业的管理仍然存在很多问题,仍然存在很多人工管理的现象,耗时多,效率低下,极易出错,得不偿失,利用计算机来管理人事成为了当今管理的主流方式,开发一套人事管理系统是非常有必要的。人事管理水平的提高,能够提高企业各方面的能力综合提高,利用本系统作为管理系统,减少因为操作事物造成的数据损失,也可以使企业在管理方面减少很多费用支出,比如实现了自动化操作,可以分配较少的人手去执行数据管理工作,精简人员,减少开支。由以上三方面可以看出,本系统经过可行性分析,从多个方面来考虑,系统的开发工作是可行的。4 需求分析需求分析又称为需求调查,是整个系统开发过程的重要组成阶段,也是一个系统开发的基础,它明确了这个系统要实现什么功能,有哪些模块,有哪些数据是要被输入到系统的,最后会获得什么结果,要充分分析用户对系统的要求,对用户提出的问题进行详细的分析,弄清楚客户要求,才能进行下一步的工作,系统开发是以需求为引导的一个过程,为了开发一个实用的系统,首先要进行的就是需求调查和需求分析,明确调查方式,明确调查目的。要了解各个部门的大致工作流程和工作划分,由于开发者和使用者存在着各种各样的问题,提出需求的并不一定都是开发人员,个别用户不了解需要实现的功能,只是根据企业的业务需求提出要求,所以在系统的设计过程中需要两者紧密交流,充分了解对方的业务需求以及实际情况,明确用户需求,进行可行性分析,确认系统的开发工作是否可以进行下去,为系统的开发工作提供有力帮助。在对企业需求进行了充分的分析工作后,对企业的业务需求有了一定的了解,对这些需求进行整理,并借鉴了软件工程的思想,最终分析出如下需求:4.1 功能需求(1)功能完备,实现足够多的模块,要了解企业中各个部门的组成情况和主要业务,和相应的日常活动和职能,充分了解企业构造,一个完整的企业人事管理系统应该包括员工信息记录、考勤管理、薪资管理、应聘管理、请假管理、加班管理、公告、资料共享等,企业中的实际业务都要考虑到,并且在开发过程中与使用企业保持沟通,为企业量身定制,充分满足企业需求。(2)有严格的权限管理机制,由于企业的日常工作中会涉及到商业机密,员工的薪资信息、考勤信息都要妥善保存,要防止人为破坏,在系统的设计中要体现业务的严谨性,要保证数据安全,仅仅设置两种身份是不够的,对一些敏感数据的操作对象也要加以限制。4.2 性能需求(1)运行稳定,不易出错,系统在设计过程中应该以安全和稳定运行为原则,对错误输入要进行处理,在处理错误输入时要有良好的提示,避免因为操作不当而引起的系统错误,造成服务器宕机等恶劣后果。(2)性能可靠,有一定安全保护措施,比如在实现后台方法时,避免使用Statement,要使用PrepareStatement来防止SQL注入攻击。(3)在面对高并发操作时仍然具有良好的反应速度,比如在早晨员工签到的高峰期,以及晚上网络不好时,也应当可以正常的处理数据。4.3 其他需求(1)易于学习,系统设计过程中应当保持注意页面的简洁,以及考虑操作的简便性,在系统实施的过程中保证使用人员可以迅速上手,降低学习成本。(2)设计严谨,代码规范,可扩展性好,借鉴MVC设计模式,将业务层、控制层、显示层分开实现,方法不应当写在实体类中,而是要建立接口和实现类,当有一个模块需要改变时,可以只对该模块进行修改,而不会对其他模块产生影响,便于日后的修改维护和二次开发。(3)运行和维护成本低,考虑到中小型企业的经济承受能力,要尽量降低对服务器的性能要求尽量减少资金投入,满足经济性要求。总之,在系统开发之前,必须要对现有的系统进行调查,明确需求,保证所作的功能符合用户的需求,详细的调查情况,研究现有系统的内部结构,设计出一个精确的开发逻辑模型,为之后的开发打好基础。避免耗费大量人力物力,最后却没有开发出让客户满意的系统的现象发生。5 概要设计5.1 系统总体设计在这个模块中使用结构图来对本系统进行详细描述,树形结构的顶层代表了系统的名称和功能范围,下面的分支则代表相应的子集,最底层的元素则代表具体的功能模块和系统组成,这些模块是最小元素,不能再进行分割,本系统一共包括十三个主要模块,已经基本覆盖了企业的日常业务,此外还有一个附加的应聘子系统,可以由应聘人员注册账号并登录,可以填写自己的应聘信息,以及查看公司的所有职位,还可以使用一些通用功能,以及查看自己是否被录用等等,但是这个系统是相对于主系统独立的,不能进入主系统的界面,为了保证系统的安全性,设计这个附属系统的原因是考虑到招聘录入资料的工作较为繁琐,可以让应聘者自行登录,进行资料的填写,作为主系统的补充,可以让整个系统变得更为完善。本系统的总体设计图如图5-1所示。企业人事管理系统系统设置通用功能资料共享加班管理请假管理出勤管理奖惩管理公告系统薪资管理职位管理部门管理应聘管理员工信息图5-1 人事系统总体结构图5.2 各个模块设计本系统共有十三个功能模块,基本已经覆盖了企业日常的所有业务,各个模块实现的功能有:(1)部门管理:可以分页查看企业的所有部门列表,点击查看部门详细信息,以及查询部门信息,管理员则可以进行添加部门,以及修改部门信息,同时可以查看该部门有多少员工,可以查看员工详细信息,部门不能删除。(2)职位管理:员工可以查看企业的所有职位以及查看职位详细信息,查询职位,管理员则可以增加职位,以及修改职位信息,管理员可以查看每个职位有多少个员工,并可以查看这些员工的详细信息。(3) 员工信息:员工信息是整个系统最重要的组成部分,员工可以查看自己的信息,以及对信息进行修改,但是不能查看其他人的信息,管理员则可以查询和查看所有员工的信息,但是不能修改。(4)招聘管理:本模块是专门为招聘人员设计,并且普通用户无法进入到该页面查看里面的内容,管理员可以添加应聘人员的信息,修改应聘人员的信息,以及查询某个应聘人员的信息,还可以根据应聘人员的处理状态进行分类查看,如:未处理、未录用、已录用。(5)薪资管理:员工可以查看自己的薪资记录,管理员可以增加薪资信息,为了保证数据的完整性,薪资管理没有提供修改方法,只能删除。(6)公告管理:为了方便公司业务,员工身份也可以发布公告,管理员则可以修改公告和删除公告。(7)奖惩管理:员工可以查看和查询奖惩方法列表以及查看奖惩办法详情,管理员可以对奖惩信息进行增加、修改和删除。(8)出勤管理:员工每天进行签到,并且可以按月份查看自己的签到信息,出勤信息不能修改,不能手动增加,只有超级管理员可以删除出勤记录。(9)请假管理:员工可以申请请假,内容有请假天数,开始时间,理由等,以及查询自己的请假信息,请假信息初始为未处理状态,管理员可以处理请假申请,以及查询、删除请假记录。(10)加班管理:员工可以添加加班记录,添加后不能修改,管理员可以对加班信息进行修改和删除。(11)资料共享:所有人都可以上传和下载资料,方便企业的资料传递和交流,但是只有管理员可以删除。(12)通用功能:打开系统自带的计算器软件,方便日常使用。(13)系统设置:可以修改员工的身份,以及新建帐号、修改权限、禁用账号。5.3 应聘子系统设计为了方便人事人员的日常工作,考虑到录入大量的应聘人员资料是一个非常繁琐的工作,不如让应聘人员自己注册账号,登录系统进行应聘资料的填写,基于这个想法,在采纳了指导老师的意见后,开发了企业人事管理系统的附属子系统:应聘系统,作为主系统的补充,可以由应聘人员自己注册账号进行登录,填写自己的应聘资料,同时应聘人员可以查看公司的所有职位,但是这个系统是相对于主系统独立的,不能进入到主系统的界面,保证了主系统的安全,具体的组成如图5-2所示。应聘子系统应聘资料查看结果公司职位信息修改信息查看职位填写信息图5-2附属应聘子系统总体结构图子系统功能介绍:(1)应聘资料:应聘人员可以填写自己的应聘信息,并且可以修改信息,可以查看自己是否被录用。(2)公司职位信息:应聘人员可以查看企业的所有职位,不能进行修改。6 数据库设计6.1 数据分析数据分析是数据库在设计之前就要考虑的第一个步骤,设计者要分析数据库的物理结构和逻辑结构,确定需要获取哪些信息,以一种直接的、分类的方法来捕捉用户的信息。在本系统中,最为直观的对象就是员工,通过员工表将其余的各个表连接起来,来实现对员工信息的综合管理,是本系统的设计思路。在系统的设计过程中使用信息建模的技术,通过实体、关系、属性这三个最重要的因素来确定对象,实体是在系统的使用中需要维护的相关特征的集合,属性是这些实体的特征和特性,而最后的关系则是各个实体之间的联系,关系为各个实体之间的联系建立了基础。通过之前一系列的分析,根据各个实体之间的关系,设计出本系统的数据表结构,本系统的数据库E-R图如图6-1所示。查看资料职位应聘部门上传拥有公告属于发布处理制定奖惩请假申请用户发放属于生成申请薪资加班角色出勤图6-1 数据库E-R图6.2 数据表实现数据库是每个系统必不可少的组成部分,在系统的实际使用过程中,不可能直接调用数据库中的信息,而是要通过JDBC技术去获得数据库中的信息,所以必须将软件设计的概念转化为数据表去操作数据,要将其转换为逻辑结构12。本系统使用SqlServer2008作为数据库使用,一共有十二张数据表。(1)部门表(department):记录各个部分的详细信息。(2)职位表(position):保存企业的职位信息,以及进行修改。(3)用户信息表(userinfo):是整个系统中最重要的表,记录了系统的所有使用者的信息。(4)应聘信息表(candidate):为人事部设计,专门用来招聘工作的使用。(5)公告表(news):更新和发布、删除公告。(6)薪资表(salary):记录每个员工每个月的薪资信息。(7)奖惩方法表(jc):明确企业中对于每个奖惩办法的处理情况,使企业办事更加公开透明,有利于企业内部团结。(8)出勤记录表(attendancerecord):记录每个员工每天的出勤情况,员工每天的签到记录都保存在这张表中,每人每天只能插入一条数据。(9)请假表(leaves):员工可以在这个表中记录请假信息和请假申请,并由管理员负责处理这些请假信息。(10)资料共享表(datum):每个员工都可以自由的上传和分享资料,并且可以下载,方便企业中资料的流传,有利于员工的日常交流。(11)加班表(extrawork):记录每个员工的加班信息,用作月末时计算工资使用。(12)角色表(roles):保存了系统中的所有身份,用来实现权限控制。保存在cpmns.MDF文件中,这些表分工明确,分别记录了不同的数据,共同为系统的运行提供支持。下面将对数据库中的各个表内容做出详细解释。(1)部门表Department部门表包括部门ID,部门名称、部门负责人、部门联系电话、部门创建时间这几个信息,部门ID被userinfo表作为外键引入,每个员工都有自己的部门,员工表通过引入部门外键可以查看部门的详细信息以及进行相关统计工作,部门表的详细设计如表6-1所示。表6-1 部门表Department字段名数据类型是否主键有无外键描述didintYes部门IDdepartmentnamevarchar(20)部门名称managervarchar(10)负责人telvarchar(11)部门电话createtimevarchar(50)创建时间(2)职位表Position保存企业中的所有职位和信息,如ID、职位名称、添加时间等、并作为用户表的外键引入,每个用户都有一个职位,创建时间不能修改,详细设计如表6-2所示。表6-2 职位信息表Position字段名数据类型是否主键有无外键描述pidintYes职位IDpositionnamevarchar(20)职位名称memovarchar(80)备注addtimevarchar(50)创建时间(3)公告表News公告表用来保存发布的公告,可以记录发布者的名字,发布时间等信息,表中引入了用户表userinfo中的userid作为外键,在添加公告时可以记录发布者的名字,可以保存企业中的公告信息,详细设计如表6-3所示。表6-3公告表News字段名数据类型是否主键有无外键描述idintYes公告IDnewstitlevarchar(20)公告标题useridvarchar(20)Userinfo(userid)发布者IDnewstimedatetime发布时间newscontentvarchar(500)公告内容(4)用户表Userinfo用户表是企业中保存实际使用者的表,设计最为复杂,保存了用户的所有信息,员工用来登录的帐号密码也保存在此表中,每个使用者都有一个身份信息,表中的isuseable字段代表了该帐号是否可用,默认为1,如果是0则帐号无法使用。因为用户表是整个系统中最为重要的信息,如果删除会造成其他数据出现异常,所以不能删除,只能禁用,pid则对应职位表中的职位ID,代表员工在企业中的职位。详细设计如表6-4所示。表6-4 用户表Userinfo字段名数据类型是否主键有无外键描述useridintYes员工IDuaccountvarchar(20)帐号upasswordvarchar(20)密码isuseableint是否可用personnamevarchar(20)姓名sexvarchar(5)性别ageint年龄cardidvarchar(18)身份证号visagevarchar(20)政治面貌ancestralhomevarchar(20)籍贯borndatedatetime出生日期schoolvarchar(20)毕业院校Majorvarchar(10)专业Schoolingvarchar(10)学历Telvarchar(11)电话Homeaddressvarchar(50)住址departmentidintdepartment(did)所属部门intimedatetime入职时间pidintposition(pid)职位外键ridintrole(rid)角色外键memovarchar(50)备注leavetimedatetime离职时间(5)薪资表Salary薪资表用来保存员工的每月的薪资信息,包括发放时间、基础工资、奖金、罚金以及备注信息等,详细设计如表6-5所示。表6-5薪资表Salary字段名数据类型是否主键有无外键描述idintYes薪资IDuseridintuserinfo(userid)员工编号paymonthdatetime发放日期basemoneydecimal基本工资rewarddecimal奖金forfeitdecimal罚金totalmoneydecimal实际薪资memovarchar(50)备注(6)应聘信息表Candidate为了方便人事部的招聘工作,设计了这个应聘信息表,用来记录所有应聘者的信息,对应聘人员进行筛选,该表保存了应聘者的所有信息,在附属子系统中,应聘人员可以使用帐号和密码进行登录,并可以查看自己是否被录用。详细设计如表6-6所示,应聘人员的登录信息都存放在这张表中,便于管理员进行操作。表6-6 应聘表Candidate字段名数据类型是否主键有无外键描述idintYes应聘者IDcanaccountvarchar(20)帐号canpasswordvarchar(20)密码cannamevarchar(20)应聘者名字sexvarchar(5)性别ageint年龄borndatedatetime出生日期schoolvarchar(20)毕业院校majorvarchar(20)专业schoolingvarchar(10)学历experiencevarchar(20)工作经验telvarchar(11)电话homeaddressvarchar(50)住址memovarchar(200)备注createtimedatetime创建时间positionnamevarchar(20)应聘职位ispassint是否通过(7)奖惩方法表Jc奖惩方法表记录了企业对于各种奖惩方法的详细实施办法,员工在出现这类状况时,可以根据这些信息进行具体的奖惩办法实施,可以使办事制度公开透明化,有利于企业的团结和凝聚力,详细设计如下,详细设计如表6-7所示。表6-7奖惩方法表Jc字段名数据类型是否主键有无外键描述idintYes奖惩方法IDjctypeint奖惩类别jcnamevarchar(20)奖惩名称jcmoneydecimal奖惩金额memovarchar(50)备注addtimedatetime创建时间 (8)出勤记录表Attendancerecord出勤信息表记录了所有员工日常的签到信息,所有员工的签到记录都保存在这张表中,记录每天的出勤信息,录入时间时调用GETDATE()变量,录入时间晚于9点则视为当天迟到,详细设计如表6-8所示。表6-8出勤记录Attendancerecord字段名数据类型是否主键有无外键描述idintYes出勤编号useridintuserinfo(userid)员工编号attendancetimedatetime签到时间flagint是否迟到 (9)请假表Leaves为了更好的管理员工的请假记录,设计了请假表,该表保存了所有的请假信息,包括申请人,申请时间,离开时间,理由,以及处理人和处理时间等信息,添加请假记录时默认为未处理状态,处理时可以保存处理人的信息,系统中可以根据月份计算出每个月每名员工的请假次数,管理员可以根据员工每个月的请假次数来进行工资的发放,详细设计如表6-9所示。表6-9请假表Leaves字段名数据类型是否主键有无外键描述idintYes请假编号useridintuserinfo(userid)员工编号applytimedatetime申请时间leavetimedatetime离开时间daycountint离开天数reasonvarchar(50)理由ispassedint是否批准dealidintuserinfo(userid)处理人dealtimedatetime处理时间memovarchar(50)备注 (10)资料共享表 Datum资料共享列表可以记录所有资料上传者信息,以及资料的名称,上传时间等信息,上传的资料相关信息会记录到这张表上,作为管理员管理资料的依据,详细设计如表6-10所示。表6-10资料共享Datum字段名数据类型是否主键有无外键描述IdintYes资料编号Useridintuserinfo(userid)员工编号Datumnamevarchar(100)资料名称Uploadtimedatetime上传时间 (11)加班信息表Extrawork几乎所有企业都存在加班的情况,所以本系统设计了加班信息表,记录了加班信息,如加班人、加班开始时间、加班时长、加班费等,加班信息表的数据最后会作为工资发放的依据之一。详细设计如表6-11所示。表6-11加班信息表Extrawork字段名数据类型是否主键有无外键描述idintYes加班编号useridintuserinfo(userid)用户编号starttimedatetime开始时间extratimeint加班时长extramoneydecimal加班费memovarchar(50)备注(12)角色表Roles角色表存储了本系统中所用到的角色,在UserInfo表中引入该表作为外键,用来实现系统的权限控制功能,详细设计如表6-12所示。表6-12 角色表Roles字段名数据类型是否主键有无外键描述ridintYes角色编号rolenamevarchar(10)角色名称7 系统实现本系统主要包括十一大模块,此外还有一个应聘系统作为本系统的附属系统使用,在每个模块中根据具体业务需求,分情况加入了相应的增删改查操作,以下将对这些模块的实现方法进行详细介绍。7.1 各个模块实现 (1)登录界面作为一个系统的入口,尤其是企业中使用的需要一定保密程度的系统,对登录人员的验证是必不可少的,在本系统中,如果想要访问主界面,就必须要进行身份验证,本系统的登录界面如图所示,只有成功通过了验证,才能访问主界面,本模块对应数据库中的userinfo数据库,在输入账号和密码后,会由一个form表单提交给后台进行验证,后台处理文件为LoginServlet,在后台中使用request.getparameter()方法得到两个输入框中得到用户输入的信息,然后引入UserDao的实现子类UserDaoImpl,在登录时首先检查用户名密码是否正确,用户表中有无该用户,sql语句为:select upassword from userinfo where uaccount = ?。将输入的用户名和密码输入,如果没有得到User对象则登录失败。如果通过验证,登录成功时会新建一个user类,调用登录方法:select * from userinfo where uaccount = ? and upassword = ?,从数据库中得到该账号的信息,如果返回的user不为空,则说明数据库中存在该角色,然后需要判断该帐号是否已被禁用,如果已经被禁用,则禁止该账户登录,调用session的session.setattribute()13方法创建会话,里面装有登录用户的信息,用来保持该账号的登录状态,以便进行其他操作。登录界面如图7-1所示。图7-1登录界面 (2)系统主界面在成功验证了登录身份后,就可以进入到主界面,主界面由导航栏和左功能条组成,主页可以显示一条最新公告,主要功能模块都在主界面上显示,包括员工信息、应聘管理、部门信息等,左功能条则是考勤信息、公告系统以及资料共享系统,除此之为还为右上角可以显示登录人员的名称,显得更为人性化。在前台页面的构造中,使用了DIV+CSS的布局,这种布局的好处是可以把代码和显示格式分来,让编程人员可以专注于实现功能,而不用受到布局格式的干扰,使整个页面显得更为简洁,因为页面的导航栏和左功能条都是通用的,每个页面都要引入这两个模块,所以本系统使用两个jsp文件构建前台,一个是Top.jsp,一个是Left.jsp,在系统的每个前台页面中使用两条语句引入这两个jsp文件,达到页面复用的效果,实现代码如下。这两条语句会引入每

温馨提示

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

评论

0/150

提交评论