1、广东科贸职业学院 2015 届学生毕业论文 /设计题 目: OA 办公自动化系统 姓 名: 吴俊? 系 别: 信息工程系 专 业: 软件技术 班 级: 12 软件 1 班 指导老师: 何受? 日 期: 2015 年 5 月 15 日 独 创 性 声 明本人声明所呈交的毕业论文(设计)是本人在指导教师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写过的研究成果,也不包含为获得广东科贸职业学院或其他教育机构的证书而使用过的材料。与我一同工作的同志对本论文(设计)所做的任何贡献均已在论文中作了明确的说明并表示谢意。论文(设计
2、)作者签名:吴俊? 签字时间:2015 年 05 月 15 日前 言信息时代的来临,各行各业为了取得更好的发展,必须提高工作效率,降低生产成本,办公自动化系统以计算机技术为基础的新型信息交流平台,用先进网络技术,由各种人机信息系统来代替人的各种信息交流活动,使人们信息交流更方便,工作效率也得到提高,生产率也得到提高。 办公自动化系统,只应用以公司局域网内部信息交流,通过计算机网络技术,实现局域网信息交流自动化,管理信息化。本课题结合普遍的 OA 系统的实际需求,设计与实现了一个办公自动化系统。本系统采用结构化与原型法结合的系统开发方法。整个系统分为用户登录验证模块,用户信息管理模块,数据管理模
3、块等。以 Eclipse 为开发工具,为了提高办公系统的安全性和稳定性,在系统的开发中采用目前比较成熟的 SSH 等技术,合理划分系统的逻辑层次和功能模块,最大限度的降低系统的耦合度。在系统实施的过程中,采用Mysql5.6 数据库服务器,同时以 Tomcat8.0 为 Web 服务器,构建了该办公管理系统。关键字 SSH Mysql5.6 数据库 Tomcat8.0 服务器 Eclipse OA 系统1目 录前言.11 绪论.21.1 项目的背景.21.2 项目开发思路.21.3 项目的创新点.21.4 开发相关技术.22 系统开发平台.22.1 系统开发工具.32.2 主要开发技术.32.
4、2.1 Java EE 平台.32.2.2 SSH 技术的介绍.42.2.3 MYSQL 数据库.43 需求设计报告.53.1 需求报告.53.2 需求目的.53.3 用户特点.63.4 ORM 关系对象模型.63.5 数据间信息流.63.6 数据表设计.73.7 数据字典.83.8 用户操作流程.124 详细设计报告.124.1 功能需求设计.134.1.1 登录管理.134.1.2 用户管理.174.1.3 角色管理.204.1.4 操作管理.264.1.5 流程部署.304.2 假期管理模块.314.2.1 假期管理.314.2.2 假期明细管理.344.2.3 用户请假管理.354.2
5、.4 假期审批管理.394.3 安全退出.404.4 密码修改.405 结论.415.1 结语.415.2 致谢.425.3 参考文献.4321 绪论1.1项目的背景随着科学技术的发展,人们对工作的要求越来越高,从而使管理系统的应用前景十分广泛,各种各样的计算机应用系统在人们的生活中和工作中所占的比重越来越大,OA 即办公自动化管理软件采用计算机管理,可以提供灵活快速的服务,统筹资源,整合各种生产要素,规范企业的日常生产操作,从而使企业的管理更加方便,快捷和清晰,更有利于减少生产成本。办公软件给办公职员带来的方便时毋庸置疑的,现在的办公软件已经不仅仅减轻员工的工作量,更重要的是将员工从繁琐的事
6、务性工作中解放出来,把重心放到最重要的事情上去,提高整体员工的工作效率,提高企业的效率,增强企业实力。在这种软件的协同下,企业的组织结构更简化,各部门之间的信息交流更方便、快捷、准确,企业的战列决策可以更好跟快的跟进。从这些意义上讲,在市场竞争越来越激烈的今天,办公自动化己经不再是一种手段、一种工具,而成为决定企业生存发展的命脉。 传统的办公模式很多信息都是靠人去处理,信息传输途中很容易出现信息的错误,企业的领导者也很难掌控公司的各种信息。在日新月异的今天传统的工作方式和审批流程已经难以满足各企业事业单位的新要求,所以要使化政府机关和企事业单位办公效率提高,管理规范化,只有实现和提高办公自动化
7、的水准。而此项目的办公系统的作用就是排除因职能、职位、距离等原因造成的信息联络不畅而带来的企业发展羁绊,通过构建内部通讯、信息发布与交流平台,实现多途径的联络与沟通,减少信息在途中的时间,提高信息的时效性,与此同时,缩短领导与职员之间,各部门之间的距离。1.2 项目开发思路 开发本办公管理系统的宗旨在于方便企业管理内部人员,规范企业人员的生产生活,减少传统的管理模式带来的效率问题,减少办公人员的工作负担,实现企业管理的一体化,顺应信息时代的发展要求,提高企业的竞争力,计算机代替人工所不能及的优势,可以节省许多的人力资源,使企业的发展进入新的高速轨道。1.3 项目的创新点此办公管理系统采用了当前
8、市场上成熟的 SSH 三大框架技术开发,构建项目的环境,采用多种技术进行开发,诸如:JSP,XML,SVN 和 Eclipse 工具,有多名开发人员参与其中,该系统是符合市场上主流需求,贴近生产生活的真实案例,根植于企业开发的实战项目。1.4 开发相关技术JAVA SSH XML Annotation JSP JS JQ MYSQL和 Eclipse 工具等2 系统开发平台2.1 系统开发工具3Eclipse 是一个开放源代码的,基于 Java 的可拓展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Jav
9、a 开发工具(Java Development Kit,JDK) ,它集成了许多的技术,使其是最受欢迎的 Java 开发工具。eclipse 是一种 IDE 所谓 IDE = Integrated Development Environment 也就是所谓的集成开发环,说白了就是用来开发 Java 程序的软件工具。eclipse 也是一个比较好的工具,为什么大家都爱用它呢?它是免费的,也就是不花钱,这个对资金不多的公司来说真的很不错。他的插件几乎是万能的,也就是说,你可以用它开发任何你想开发的程序,只需要相应的插件即可。所以,现在公司都普遍使用 eclipse 作为他们的开发工具。2.2 主要
10、开发技术2.2.1 Java EE平台Java EE 是 Java 三大平台之一,即 J2EE。轻量级的 Java EE 保留了简单 Java EE 应用的架构,但开发运行成本更低。它的出现解决了 C/S 的弊端。J2EE 核心是一组技术规范与指南,其中所包含的各类组件,服务架构及技术层次,均有共同的核心及标准与规格,让各种依循 J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或者外部难以互通的窘境。本系统采用的 Java EE 开发工具是 Eclipse。2.2.2 SSH技术的介绍SSH 为 struts + spring + hibe
11、rnate 的一个集成框架,是目前较流行的一种 Web 应用程序开源框架。集成 SSH 框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的 Web 应用程序。其中使用 Struts 作为系统的整体基础架构,负责 MVC 的分离,在 Struts 框架的模型部分,控制业务跳转,利用 Hibernate 框架对持久层提供支持,Spring 做管理,管理 struts 和 hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的 Java 对象,然后编写基本的 DAO(Data Ac
12、cess Objects)接口,并给出 Hibernate 的 DAO 实现,采用Hibernate 架构实现的 DAO 类来实现 Java 类与数据库之间的转换和访问,最后由 Spring 做管理,管理 struts 和 hibernate。Struts2Struts 对 Model,View 和 Controller 都提供了对应的组件。Action 这个类是 Struts1 的核心控制器,负责拦截来自用户的请求。Action,这个类通常由用户提供,该控制器负责接收来自Action 的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给 JSP 页面显示。Model 部分:
13、由 Action Form 和 Java Bean 组成,其中 Action Form 用于将用户的请求参数封装成 Action Form 对象,该对象被 Action 转发给 Action,Action 根据 Action Form 里面的请求参数处理用户的请求。Java Bean 则封装了底层的业务逻辑,包括数据库访问等。View 部分:该部分采用 JSP(或 HTML、PHP)实现。Struts 提供了丰富的标签库,通过标签库可以减少脚的使用,自定义的标签库可以实现与 Model 的有效交互,并增加了现实功能。对应上图的 JSP 部分。Controller 组件:Controller 组
14、件有两个部分组成系统核心控制器,业务逻辑控制器。系统核心控制器。该控制器负责拦截所有的 HTTP 请求,然后根据用户请求决定是否要转给业务辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用 Model 来完成处理。对应 Action 部分。SpringSpring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的 Java Bean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从4Spring
15、中受益。目的:解决企业应用开发的复杂性功能:使用基本的 Java Bean 代替 EJB,并提供了更多的企业应用功能范围:任何 Java 应用简单来说,Spring 是一个轻量级的控制反转 IOC和面向切面(AOP)的容器框架。轻量从大小与开销两方面而言 Spring 都是轻量的。完整的Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。并且 Spring 所需的处理开销也是微不足道的。此外,Spring 是非侵入式的:典型地,Spring 应用中的对象不依赖于 Spring 的特定类。控制反转Spring 通过一种称作控制反转(IOC)的技术促进了松耦合。当应用了 IOC
16、,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为 IOC 与 JNDI 相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个
17、bean 如何被创建基于一个可配置原型(prototype) ,你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。框架Spring 可以将简单的组件配置、组合成为复杂的应用。在 Spring 中,应用对象被声明式地组合,典型地是在一个 XML 文件里。Spring 也提供了很多基础功能(事务管理、持久化框架集成等等) ,将应用逻辑的开发留给了你。所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring 中的
18、各种模块提供了基础支持。HibernateHibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。Hibernate 的核心接口一共有 5 个,分别为:Session、Session Factory、Transaction、Query和
19、 Configuration。这 5 个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。Session 接口:Session 接口负责执行被持久化对象的 CRUD 操作(CRUD 的任务是完成与数据库的交流,包含了很多常见的 SQL 语句。)。但需要注意的是 Session 对象是非线程安全的。同时,Hibernate 的session 不同于 JSP 应用中的 Http Session。这里当使用 session 这个术语时,其实指的是Hibernate 中的 session,而以后会将 Http Session
20、 对象称为用户 session。Session Factory 接口:Session Factory 接口负责初始化 Hibernate。它充当数据存储源的代理,并负责创建 Session 对象。这里用到了工厂模式。需要注意的是 Session Factory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个 Session Factory 就够,当需要操作多个数据库时,可以为每个数据库指定一个 Session Factory。Configuration 接口:Configuration 接口负责配置并启动 Hibernate,创建 Session Factory 对象。在 Hibern
21、ate 的启动的过程中,Configuration 类的实例首先定位映射文档位置、读取配置,然后创建 Session Factory 对象。Transaction 接口:Transaction 接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query 和 Criteria 接口:Query 和 Criteria 接口负责执行各种数据库查询。它可以使用 HQL 语言或 SQL 语句两种表达方式。2.2.3 MYSQL数据库MYSQL 是一个关系型数据库管理系统,由瑞典 MYSQL AB 公司开发,目前属于 Oracle 公司。MYSQL 最流行的关系型数据库管
22、理系统,在 WEB 应用方面 MYSQL 是最好的 RDBMS (Relational 5Database Management System,关系数据库管理系统) 应用软件之一。MYSQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MYSQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MYSQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MYSQL 作为网站数据库。由于其社区版的性
23、能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。总体可以归结的优点有:综合统一,高度非过程化,面向集合的操作方式,以一种语法结构提供多种使用方式,语言简洁,易学易用,和免费使用。,3 需求设计报告3.1 需求报告中国的办公自动化软件系统起源于政府的公文和档案管理。中国社会从计划经济体制转变到现在的市场经济体制,在历史的转变过程中,中国的办公管理形成了具有中国特色一套完整体系。随着时代的发展,生产力提高的需要,办公自动化系统在市场需求的导向下迅猛发展。广泛应用于企业的生产生活。政府对企业的管理,除了依靠法律、法规之外,还有大量的行政指令和指示。企业在进行许多决策的时候,也经常需要向
24、主管的政府部门请示汇报。另外,政府官员和企业领导存在着比较严格的对应关系,即企业领导和政府官员行政级别挂钩,因此在企业应用红头文件就比较自然。随着时代的发展为了保证办公自动化系统的安全稳定的运行,针对每一位用户的级别和工作范围,本系统要对其做好恰当的权限分配,所以权限管理有必要做为办公自动化系统的一个单一子模块运行.权限管理包括 角色管理,组织机构和用户管理等功能,基本上满足了基于角色的权限管理的要求。为了提高办公效率,实现现代化办公,需要建立一个在线自动化办公系统,以便把形成的这套规范化思想充份的运用到实际的工作中去。权限管理系统是自动化办公系统的一个子模块。其主要功能是根据级别,岗位等指定
25、操作人员的权限级别,达到办公自动化系统的安全运行。权限管理系统就是根据不同的权限分配不同的权利,主要分为管理员和普通用户,普通用户通过登录界面可以进入注册界面,管理员通过后台进行添加。在登录界面输入用户名和密码,通过控制层进行判断用户的种类,根据用户的种类进入到不同的界面,在相应的界面行使不同的功能。63.2 需求目的1) 对人员更好,更方便的管理。2) 规范管理行为。3) 提高效率。3.3 用户特点管理员进入后台管理页面后,能够直观看到菜单导航,系统权限设置等功能,管理员想给什么角色设置什么权限都是一目了然的,还可以很方便的查找用户信息,功能简单易用,适合所有人群使用。3.4 ORM关系对象
26、模型0.10.*0.*0.*0.*1.*User-userIdpassWordnamesexdeptpositionemailtelphoneqqNumquestionanswerstatuscreateDatemodifyDatecheckDatecreatermodifierchecker: String: String: String: Integer: String: String: String: String: String: String: Integer: String: Integer: Date: Date: Date: User: User: User+getUserId
27、 ()setUserId (String newUserId)getPassWord ().Role-idnameremarkcreateDatemodifyDatecreatermodifier: Long: String: String: Date: Date: User: UserPopedom-idcreateDatemoduleoperarolecreater: Long: Date: Module: Module: Role: UserModule-codenameurlremarkcreateDatemodifyDatecreatermodifier: String: String: String: String: Date: Date: User: User图 173.5 模块间信息流客户端登陆 权限拦截输入登陆信息检测用户权限根据用户权限,对用户开放其拥有的按钮和菜单返回对应的权限按钮图 2当用户输入登陆信息的时候,验证通过,就分配用户获得哪些权限按钮,用户就可以根据权限按钮来进行相应的操作。 (管理员是获得所有权限的)3.6 数据表设计