大学毕业设计---公司考勤系统设计与实现.doc
兰州交通大学毕业设计(论文)摘要办公自动化(Office Automation,,简称OA)是利用了目前先进的互联网技术和完善的办公设备构成的人机信息处理系统,最大限度帮助管理人员和员工进行日常的办公活动。随着互联网行业的发展迅猛,网络交互也日益成为人们日常生活中重要的组成部分,伴随着生活节奏的加快,给现实中的企业发展带来了极大的冲击,它要求当前企业更加专业和迅速,而随着企业的不断发展,规模不断地扩大,部门之间变得越来越密切,部门之间的交流也变得越来越频繁,无论是企业的文件传输,企业资源的共享,还是文件的审批,都占用了大量的人力和物力,在这种背景下一个属于企业自己的办公自动化管理系统是非常必要的1。本系统基于B/S模式,采用Struts2框架、Spring框架、JavaBean、Hibernate框架以及JSP技术,以MyEclipse Professional 2014 作为系统开发平台,通过Oracle 10g管理数据库系统来设计和实现OA办公自动化系统。本系统主要包括公司内部文件的上传和下载、消息的接受和发送、共享资源的上传和下载、申请的发送及审批、员工在线考勤以及考勤查询、报警。从而进一步提高企业的管理水平,提高工作效率,实现企业内部资源的共享,增强企业的竞争力。关键词:办公自动化系统;JSP;MyEclipse;Oracle;B/S。 AbstractOA (Office Automation, hereinafter referred to as OA) is to combine the modern Office and computer network function and a new type of Office way. Along with the development of the Internet industry rapidly, network interaction has become an important part of People's Daily life, with the accelerating rhythm of life, to the reality of enterprise development has brought the huge impact, it requires that the enterprise is more professional and quickly, and with the continuous development of enterprise, scale is continually expanding, between departments is becoming more and more close, and the communication between departments is also becoming more and more frequent, whether the file transfer of the enterprise, enterprise resource sharing, or files for examination and approval, all take up a lot of manpower and material resources, in this context a enterprise own office automation management system is very necessary. This system based on B/S mode, the use of Struts, Spring, JavaBean, Hibernate and JSP technology, with MyEclipse Professional 2014 as a development platform, through the Oracle 10 g database management system to design and realize OA office automation system. The system mainly includes the internal documents transmission, message sending, enterprise resource sharing, and application of send documents of examination and approval, the employee's attendance and attendance online query, emergency alarm function, moreover can always see the departments of general manager. To further improve the management level of enterprises, improve the work efficiency, to reach the company internal resources sharing, enhance the competitiveness of the enterprises. Key Words: office automation system; The JSP; MyEclipse; Oracle; B/S。 1. 前言1.1 论文研究背景随着计算机技术的发展,尤其是计算机网络技术和数据库技术的发展使人们的工作方式和生活方式发生了翻天覆地的变化。互联网技术的发展使得计算机之间的通信、信息共享成为了可能,而数据库技术的发展和应用给人们提供了许多新的功能,比如数据存储、信息分析,从而提高了工作效率。而计算机技术、网络技术、各种软件工作平台不断的发展使得信息可以快速的获取,极大地提高了办公效率,及时准确地实现办公信息的上传下达。 伴随着知识经济时代的到来,社会进步的步伐正在不断加速,企业的规模也越来越大,业务也不断增加,靠传统的企业管理方法已经不能满足现代企业的要求,浪费了大量的人力和物力,而且效率及其低下,其主要缺陷如下:1. 企业资源无法共享,使得企业无法充分利用现有资源1。2. 文件审批效率低下,办公效率低1。3. 员工考勤信息不精确。4. 消息文件的发送、通知不方便。1.2 发展现状办公自动化发展方向:数字化办公。1.2.1 国外自动化发展现状办公自动化最早出现于西方的发达国家,后期经过一系列的发展才进入我国。办公自动化的发展和推广,对企业的发展有着特别重要的革命意义。1.2.2 国内办公自动化发展的现状我国的办公自动化系统是从上世纪80年代中期才逐渐发展起来的,我国办公自动化系统的应用和发展历程,可分为以下三个阶段:(1)第一代时间是上世纪80年代中期到90年代中期,它的主要特征以个人电脑、办公套件为标志。(2)第二代时间是从上世纪90年代中期开始的,它的主要以现代网络为基础,收发文件不再是以前的手工方法,而是更高效的工作流自动化方法。(3)第三代办公自动化系统的主要特征是信息处理和业务流程。1.2.3 未来办公自动化发展趋势分析随着技术的发展,未来将会有更多的技术应用到办公自动化中,促进办公自动化的升级适应当今时代的要求。未来办公自动化发展的趋势分别是智能化、多媒体化、网络化、集成化、人性化。(1)多媒体化:传统的办公自动化系统仅仅处理一些与文字相关的信息,现代的办公自动化系统不仅可以处理文字,还可以处理图片,音频、视频等各种信息,功能更加完备,节省大量的人力和物力。所以,自动化办公会朝着多媒体的方向发展。(2)网络化:在目前的技术条件下,已经实现了办公自动化,例如,许多公司通过建立局域网,建立公司内部的办公系统。但是,任有大多数企业的办公网络范围比较小,并没有实现大范围的资源共享。(3)集成化:所谓的集成化就是可以整合多种技术与一体,构建出一个新的系统。我国办公自动化集成性还不够高,主要是因为很多设备独立存在,没有关联。将来随着技术的不断发展,网络设备、计算机等设备集成到一起,使用者可以简单地使用,真正实现办公自动化。(4)人性化:为了使工作效率更高,办公自动化是通过一系列系统的使用,通过一系列系统的综合,使得工作流程更加简单,节省大量的时间,工作效率自然就高了。因此,办公自动化的设计必须要符合人的使用习惯,外来的系统,人们可以根据自己的需求,设计自己的办公界面,使得自己办公更加高效和方便。所以,未来办公自动化会沿着人性化的方向发展。2. 系统的开发工具与环境2.1 JSP简介JSP使基于Java的技术,具备Java语言的所有特点,同时拥有强大的服务器端网络动态网页技术功能。JSP可以将java代码以及规定的网页动作嵌入到静态网页,并且JSP语法增加了自的标签库,可以用来调用一些实用功能。JSP具体的运行原理为:客户端发送的请求通过web服务器交给JSP容器,JSP文件会被JSP编译器编译成Java Servlets。2.2 Struts2简介 在Struts2问世之前,Struts1已经是一个高度成熟的web产品,不论是可靠性还是安全性都得到开发者高度的肯定,但是随着时间的流逝以及FreeMarker,Velocity等模板技术的出现,Struts1本身的表现层单一,与ServletAPI严重耦合等缺点便暴露了出来。而SpringMVC等先进框架的出现,也严重侵蚀着Struts1的市场占有率。2.3 Oracle简介Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗的讲它是用方便逻辑管理的语言操纵大量有规律的数据集合。是目前最流行的客户/服务体系结构的数据库之一。2.4 J2EE简介J2EE是一个开放的、基于标准的开发和部署的平台用于构建N层的、基于web的、以服务端计算为核心的、模块化的企业应用9。J2EE 定义了四种组件,也就是我们常说的组件开发,并且每种组件对应着一种容器。2.5 开发环境 (1)操作系统:Windows 7;(2)JDK 1.7.0_07(3)数据库Oracle 10g数据库。Oracle数据库是一款功能非常强大的数据库,是大型企业级开发中经常用的一款性能很高的数据库7。(4)Tomcat 6.0.41 是一个开源的web应用服务器,是一个JSP/Servlet容器。向用户提供免费的服务,可以降低系统的开发成本。(5)MyEclipse2014MyEclipse源代码是开放的,是基于Java的可扩展的平台。它是Eclipse的插件,也是一款功能强大的J2EE集成开发环境。由Genuitec公司发布。3. 系统分析3.1 可行性研究可行性分析是软件开发中一项重要的步骤,它对整个系统的需求,技术及开发方法,以及开发人员的综合考虑以评估对于系统开发是否符合实际。系统的可行性分析主要包括经济上的可行性,技术上的可行性,操作上的可行性和法律上的可行性四大部分。3.1.1 系统目标项目总目标是:在Oracle数据库和Java开发平台上,利用现有的框架技术,配置必不可少的硬件,开发出一个架构比较清晰、功能易于扩充、网站易于维护、具有良好人机交互的办公自动化系统。系统的具体要求有如下几点:(1) 系统的后台管理功能是不可缺少的。实现了对公共信息强大的管理功能。(2) 系统的架构清晰,使得后期能够在此基础上进行二次开发。(3) 使用开放、标准、无形的模拟中间平台,使得应用能够跨平台运行。(4) 模块的接口和基础类库定义应清晰易于理解。(5) 数据库操作尽量使用易于理解的SQL语句,以降低网站维护和功能扩展的难度。(6) 该系统运行稳定、安全可靠。3.1.1 经济可行性过去的文件、公文审阅,消息的传递和录入,全部都是人工完成,这对于企业来说是很费时间和精力的,而且还不及时,所以对于高效、简洁、方便的自动化管理系统的需求是迫切的,而且系统的成本主要集成在软件开发中,当系统投入运行后可为企业节省大量的人力、财力、物力,本系统所带来的效益远远的超过系统软件开发所花费的成本。因此,从经济上考虑,本系统是可行的。3.1.2 技术可行性本系统采用MyEclipse2014和Oracle 10g数据库作为开发工具。随着网络技术和数据库技术的支持越来越成熟,大多数电脑可以满足当服务器的硬件条件。本系统采用Java语言后台作为后台处理语言,再加上JSP技术和Oracle数据库,Oracle数据库提供了基于角色的权限管理模式,通过角色管理,从根本上加强了数据库的安全性,同时为数据库管理员提供了更加方便、快捷地管理用户和权限的途径。所以技术成熟,安全性强。因此,从技术角度上考虑,本系统是可行的。3.1.3 操作可行性本系统是基于Web的网上管理系统,系统基于Web的工作界面,用户在浏览器上可以进行文件接发送、消息接发送、文件共享的工作,操作十分方便,只需连上网,在自己的电脑上通过Web浏览器就可使用本系统,同时所有的操作都是基于Web的的操作方式,如:链接、按钮、文本框等等。所有的操作都通过一个web浏览器,客户端不需要其他的软件的支持,因此,使用非常简便。3.1.4 法律可行性该系统的研发不会导致社会上侵权或其他责任的问题,该系统的研发只作为毕业设计和商业无关,又是自己亲手做的,因此不可能构成侵权,所以法律上是可行的。3.1.5 系统流程图用户进入登录页面,输入用户名和登录密码,点击登录按钮,系统进行身份验证,如果系统验证是管理员登录,如果验证通过,进入到管理员的系统界面,如果没有通过验证,则进入到登陆页面重新登录;如果系统验证是部门经理登录,如果通过验证,进入到管理员系统界面,如果没有通过验证,则进入到登录页面重新登录;如果系统验证是普通员工登录系统,如果通过验证,进入到普通员工界面,如果没有通过验证则进入到登陆页面重新登录。3.1.6 数据字典名称:用户信息表描述:用户的基本信息,登录系统时需要输入用户名和密码定义:用户信息表=用户编号+用户名+用户密码+用户真实姓名+性别+生日+所属部门编号+所属组编号+邮箱+电话+职位编号+简历+头像+基本薪资1位置:oa_user表名称:部门信息表描述:公司的部门定义:部门信息表=部门编号+部门名称+部门详细信息1位置:oa_dept表名称:组信息表描述:部门里面下属的组定义:组信息表=组编号+组名称+组的相关信息+所属的部门1位置:oa_group表名称:职位信息表描述:公司内部的职位定义:职位信息表=职位编号+职位名称+职位权限+所属的组1位置:oa_role表名称:文件传输信息表描述:发送文件定义:文件信息表=文件编号+文件名字+文件原始名字+文件发送者+文件接受者+文件发送时间+文件简介文件属性类型1位置:oa_transfile表名称:文件类型信息表描述:文件的类型定义:文件类型信息表=文件类型编号+文件类型名称1位置:oa_sharetype表名称:共享文件新信息表描述:共享文件定义:共享文件信息表=共享文件编号+共享文件名字+共享者编号+共享时间+共享文件标题+共享文件简介+共享文件大小+共享文件属性类型1位置:oa_sharefile名称:短消息信息表描述:发送的消息定义:短消息信息表=短消息编号+短消息发送者+短消息接受者+短消息主题+短消息内容+短消息发送时间1位置:oa_message名称:报警信息表描述:用户发送的报警信息定义:报警信息表=报警编号+报警人编号+报警部门+报警主题+报警详细信息+报警时间+报警状态位置:oa_alarm表名称:考勤时间信息表描述:考勤的时间定义:考勤时间信息表=上班的小时+上班的分钟+下班的小时+下班的分钟1位置:oa_attendtime表名称:考勤信息表描述:用户的考勤信息定义:考勤信息表=考勤者编号+考勤日期+上班考勤状态+上班考勤时间+上班考勤IP+下班考勤状+下班考勤时间+下班考勤IP1位置:oa_attinfo表名称:申请信息表描述:用户的申请信心定义:申请信息表=申请编号+申请者编号+申请主题+申请内容+申请类型+申请状态1位置:oa_doc表名称:审批信息表描述:对申请的审批信息定义:审批信息表=审批部门编号+申请编号+所属审批阶段+审批状态1位置:oa_docdept表3.2 需求分析需求分析是软件工程的一个很重要阶段,主要任务是准确的回答系统要做什么,系统要实现什么具体的功能。在需求分析结束之前,还必须要写出软件需求规格说明书。3.2.1 系统功能要求系统有以下功能:(1)系统登录; (2)消息的发送和接受;(3)内部文件传输; (4)申请的发送;(5)企业资源的共享; (6)员工的在线考勤;(7)文件的审批; (8)考勤查询; (9)紧急报警; (10)较好的权限管理;(11)良好的人机界面; (12)退出系统。3.2.2 用户及其功能管理员模块的功能:(1)上传和发送文件; (2)上传和下载资源;(3)接受和发送消息; (4)发送电子邮件;(5)查看和发送申请; (6)查看和发送申请;(7)上下班考勤; (8)发送紧急事务;(9)审批申请; (10)管理共享;(11)查看所有申请; (12)设定考勤时间;(13)添加和管理员工; (14)查看紧急事务。部门经理模块的功能:(1)上传和发送文件; (2)上传和下载资源;(3)接受和发送消息; (4)发送电子邮件;(5)查看和发送申请; (6)查看和发送申请;(7)上下班考勤; (8)发送紧急事务;(9)审批申请。普通员工模块的功能:(1)上传和发送文件; (2)上传和下载资源;(3)接受和发送消息; (4)发送电子邮件;(5)查看和发送申请; (6)查看和发送申请;(7)上下班考勤; (8)发送紧急事务。4. 数据库设计4.1 数据库设计概述数据库的设计主要是指针对用户的一些主要需求,在一个制定的数据库管上设计数据库结构、建立数据库的过程,在设计过程,要确定实体之间的各种关系,实体有哪些特性,这些特性又该怎样描述,采用什么数据类型,长度大小是多少,数据库设计的目的是提供一个高效的数据库系统,这样在使用过程中才能不出现更多的错误。数据库设计主要有下面六个阶段:(1)需求分析阶段:该阶段主要的工作是收集和分析用户对系统的信息需求,从中获得系统的需求信息,最后建立系统的需求说明文档。(2)概念结构设计阶段:该阶段的主要工作是通过对用户需求信息的分析和加工,最后整合出一个独立于具体的DBMS。(3)逻辑结构设计阶段:该阶段的主要工作是在概念模型的基础上设计出DBMS支持的逻辑数据库模型,为后面的逻辑结构设计打下坚实的基础。(4)物理结构设计阶段:该阶段的主要工作是为逻辑模型设计一个最合适的应用环境的物理结构。(5)数据库实施阶段:该阶段的主要工作是根据逻辑模型和物理模型的结果设计出数据库,将相应的数据导入到数据库表中,进行试运行。(6)数据库运行和维护阶段:该阶段的主要工作是开始数据库正式运行,此过程中很有可能数据库出现比较多的问题,因此,此过程中还要对对数据库要不断地调整和修改。4.2 实体联系(E-R)图图4.1 部门的E-R图图4.2 组的E-R图图4.3 用户的E-R图图4.4 共享文件E-R图图4.5 考勤信息的E-R图图4.6 申请的E-R图图4.7 文件传输的E-R图图4.8 消息的E-R图图4.9 报警的E-R图图4.10 考勤时间的E-R图图4.11 审批状态的E-R图图4.12 共享类型的E-R图图 4.13 E-R图4.2 数据库逻辑结构设计1. 部门信息表(oa_dept):部门信息表表主要包括部门编号、部门名称、部门详细信息等字段1。SQL语句:create table oa_dept( dept_number varchar2(32) primary key,dept_name varchar2(50) not null, dept_info varchar2(1000) default '');表4.1 部门信息表(oa_dept)字段名称数据类型字段大小是否主键说明dept_numbervarchar236是部门编号dept_namevarchar2100否部门名称dept_infovarchar24000否部门详细信息2. 组信息表(oa_group):组信息表主要包括组编号、组名称、组的相关信息、所属的部门等字段1。SQL语句:create table oa_group(group_number varchar2(32) primary key,dept_number varchar2(32) not null,group_name varchar2(50) not null,group_info varchar2(500),constraint fk_group_dept foreign key(dept_number) references oa_dept(dept_number);表4.2 组信息表(oa_group)字段名称数据类型字段大小是否主键说明group_numbervarchar232是组编号group_namevarchar250否组名称group _infovarchar2500否组简介group_deptvarchar232否所属部门编号3. 职位信息表(oa_role): 职位信息表主要包括职位编号、职位名称、职位权限、所属的组等字段1。SQL语句:create table oa_role(role_number varchar2(32) primary key,group_number varchar2(32) not null,role_name varchar2(50) not null, role_right number(1) not null,constraint fk_role_group foreign key(group_number) references oa_group(group_number);表 4.3 职位信息表(oa_role)字段名称数据类型字段大小是否主键说明role_numbervarchar232是职位编号role_namevarchar250否职位名称group_numbervarchar232否所属组编号role_rightnumber1否职位权限4. 用户信息表(oa_user): 用户表主要包括用户编号、用户名称、用户密码、用户真实姓名、用户性别、用户生日、所属部门编号、所属组编号、用户邮箱、用户电话、职位编号、用户简历、用户头像、用户基本薪资等字段1。SQL语句:create table oa_user(user_number varchar2(32) primary key,user_name varchar2(20) not null,user_pwd varchar2(20) not null,user_realname varchar2(50) not null,user_gender char(2) check(user_gender='男' or user_gender='女'),user_birth date,dept_number varchar2(32) not null,group_number varchar2(32) not null,user_email varchar2(50),user_phone varchar2(20),role_number varchar2(32) not null,user_jianli varchar2(4000) default '',user_imgpath varchar2(100),user_salary number(7,2),constraint fk_user_dept foreign key(dept_number) references oa_dept(dept_number),constraint fk_user_group foreign key(group_number) references oa_group(group_number),constraint fk_user_role foreign key(role_number) references oa_role(role_number);表 4.4 用户信息表(oa_user)字段名称数据类型字段大小是否主键说明user_numbervarchar232是用户编号user_namevarchar220否用户名称user_pwdvarchar220否用户密码user_realnamevarchar250否真实姓名user_genderchar2否性别user_birthdateN/A否生日dept_numbervarchar232否所属部门编号group_numbervarchar232否所属组编号user_emailvarchar250否用户邮箱user_phonevarchar220否用户电话role_numbervarchar232否职位编号user_jianlivarchar24000否用户简历user_imgpathvarchar2100否用户头像user_salarynumber(7,2)否基本薪资5. 文件传输信息表(oa_transfile):文件传输信息表主要包括文件编号、文件名字、文件原始名字、文件发送者、文件接受者、文件发送时间、文件简介文件属性类型等字段1。SQL语句:create table oa_transfile( transfile_number varchar2(32) primary key, transfile_name varchar2(100) not null, transfile_realname varchar2(50) not null, transfile_fromuser varchar2(32) not null, transfile_touser varchar2(32) not null, transfile_time date default sysdate not null, transfile_info varchar2(100) not null, transfile_type varchar2(50), constraint fk_transfile_user foreign key(transfile_fromuser) references oa_user(user_number) );表 4.5 文件传输信息表(oa_transfile)字段名称数据类型字段大小是否主键说明transfile_numbervarchar232是文件编号transfile_namevarchar2100否文件名字transfile_realnamevarchar250否文件原始名字transfile_fromuservarchar232否文件发送者transfile_touservarchar232否文件接受者transfile_datedateN/A否文件发送时间transfile_infovarchar2100否文件简介transfile_typevarchar250否文件属性类型6. 文件类型信息表(oa_sharetype):文件类型信息表主要包括文件类型编号、文件类型名称等字段1。SQL语句:create table oa_sharetype(type_number varchar2(32) primary key,type_name varchar2(20) not null);表 4.6 文件类型信息表(oa_sharetype)字段名称数据类型字段大小是否主键说明type_numbervarchar232是类型编号type_nmaevarchar220否类型名称7. 共享文件表(oa_sharefile):共享文件信息表主要包括共享文件编号、共享文件名字、共享者编号、共享时间、共享文件标题、共享文件简介、共享文件大小、共享文件属性类型等字段1。SQL语句:create table oa_sharefile( share_number varchar2(32) primary key, share_name varchar2(100) not null, share_realname varchar2(50) not null, share_fromuser varchar2(32) not null, share_time date default sysdate not null, share_title varchar2(50) not null,share_info varchar2(200) not null,share_size number(8,2) not null, share_filetype varchar2(50) not null,share_type varchar2(32) not null, constraint fk_share_user foreign key(share_fromuser) references oa_user(user_number),constraint fk_share_type foreign key(share_type) references oa_sharetype(type_number) );表 4.7 共享文件信息表(oa_sharefile)字段名称数据类型字段大小是否主键说明share_numbervarchar232是文件编号share_namevarchar2100否文件名字share_realnamevarchar250否文件原始名字share_fromuservarchar232否共享者编号share_timedateN/A否共享时间share_titlevarchar250否文件标题share_infovarchar2200否文件信息share_sizenumber(8,2)否文件大小share_filetypevarchar250否文件属性类型share_typevarchar230文件共享类型8. 短消息信息表(oa_message):短消息信息表主要包括短消息编号、短消息发送者、短消息接受者、短消息主题、短消息内容、短消息发送时间等字段1。SQL语句:create table oa_message(message_number varchar2(32) primary key,message_fromuser varchar2(32) not null,message_touser varchar2(32) not null,message_info varchar2(100) not null,message_content varchar2(4000) not null,message_time date default sysdate not null,constraint fk_message_user foreign key(message_fromuser) references oa_user(user_number),constraint fk_message_user1 foreign key(message_touser) references oa_user(user_number);表 4.8 短消息信息表(oa_message)字段名称数据类型字段大小是否主键说明message_numbervarchar232是短消息编号message_fromuservarchar232否短消息发送者message_touservarchar232否短消息接受者message_infovarchar2100否短消息主题message_contentvarchar24000否短消息内容message_timedateN/A否短消息发送时间9. 报警信息表(oa_alarm):报警信息表主要包括报警编号、报警人编号、报警部门、报警主题、报警详细信息、报警时间、报警