【Java开源代码栏目提醒】:网学会员鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“【毕业论文】OA协同办公系统 - 技术总结”一文,供大家参考学习
【标题】 OA协同办公系统 【作者】何 兵 【关键词】办公自动化
Java Web应用 Oracle数据库 【指导老师】谭 海 军 【专业】计算机科学与技术 【正文】 1 前言 OA协同办公系统 OA是伴随着Internet技术在各个领域的广泛应用和各行各业企业信息化建设步伐的加快应运而生。
当代社会已经进入信息时代信息技术革命使社会的各个领域都发生了翻天覆地的变化每个企业都必须紧跟时代的步伐加强企业竞争力和提升现代化企业的管理能力以适应整个社会的发展变化。
企业对信息需求的增长使
计算机、网络技术已经渗透到企业的日常工作中。
传统的企业内信息的交流方式早已不能满足企业对大量信息的快速传递与处理的需求中小企业OA协同办公系统的应用满足了企业的办公网络化、自动化的管理需求提高了企业内部的管理水平进而全面提升了企业在市场竞争中的综合竞争力。
1.1 课题背景 1.1.1 办公自动化概述 办公自动化英文Office Automation简称OA是办公信息处理的自动化它利用先进的技术使人的各种办公业务活动逐步由各种设备、各种人、机信息系统来协助完成达到充分利用信息提高工作效率和工作质量提高生产率的目的。
传统的办公模式主要以纸介质为主在信息革命的浪潮中显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。
如何实现信息处理的自动化和办公的无纸化逐步得到了人们的重视。
目前办公自动化系统较成熟的模式是客户/服务器方式而新一代的办公自动化系统则应是Internet/Intranet方式即B/SBrowser/ServerB/S结构才更能适应目前及未来的要求。
1.1.2 中小型有限公司办公模式的现状 假设中小型公司的Intranet网络已经存在只是没有或没有好的办公应用系统利用网络通讯基础及先进的
网络应用平台建设一个安全、可靠、开放、高效的信息网络和办公自动化、信息管理电子化系统为管理公司提供现代化的日常办公条件及丰富的综合信息服务实现档案管理自动化和办公事务处理自动化以提高办公效率和管理水平实现公司各部门日常业务工作的规范化、电子化、标准化实现信息的在线查询、借阅。
所以只须投入相对网络投资少得多的资金即可开发通用办公自动化系统产生较高的投资回报。
1.2 研究意义 在公司过去的办公模式下由于缺少重要的信息传递和工作流程环节办公的各个部门之间无法实现信息共享和信息集成从而难以实现各个部门之间的高效协作。
在日常的办公过程中比较容易出现以下的差错 各部门的信息传递和事务交接仍然由人工完成容易出现差错 上下级和部门之间无法实现协同工作难以及时沟通 信息和工作流程相互分离缺少至关重要的随时记录使工作监控和评估困难重重。
可以想象掺杂着如此大量的人工操作过程的事务处理方式根本无法适应现代化办公模式的需要。
办公自动化系统的带来的好处有 信息传递与沟通交流顺畅 排除因职能、职位、距离等原因造成的信息联络不畅而带来的企业发展羁绊通过构建内部通讯、信息发布与交流平台实现多途径的联络与沟通减少信息在途时间提高信息的时效性与此同时缩短领导与职员之间各部门之间的距离。
规范工作管理提高整体效率 解决了跨地域跨部门多岗位间的业务处理诸多问题有效避免工作中出现的脱节、延误、错办等情况杜绝职责不清、工作推脱等怠工现象实现网上协同办公增强组织协调能力提高团队协作能力。
同时加强了领导实时了解事务状态实时掌控工作进度强化了过程控制与监督加强了工作管理。
增强凝聚力提高响应能力 在降低管理成本促进管理进步的同时能够培养全员信息化关注与参与意识激发掌握和利用先进信息技术的热情提高专业素质形成全新的企业文化。
1.3 设计技术及开发环境 1.3.1 设计技术 目前J2EE各种框架技术的核心技术依然是J2EE的三项基础技术——JSP、
JavaBean、Servlet而
开源框架还是StrutsSpringHibernate的天下目前这种组合是最好的选择。
Struts Struts是一个基于J2EE平台的MVC框架主要是采用Servlet和JSP技术来实现的是开发Web应用程序的开放源码框架。
Struts把Servlet、JSP、自定义标签和信息资源Message Resources整合一个统一的框架中开发人员利用其进行开发时不用再自己编码实现
全套MVC模式极大地节省了时间。
Hibernate3.0 Hibernate是一个开放源码的对象关系映射ORM框架它对JDBC进行了非常轻量级的对象封装使得
Java程序员可以随心所欲地使用对象编程思维来操纵数据库。
Hibernate可以应用在任何JDBC的场合既可以在
Java的客户端程序使用也可以在Servlet/
JSP的Web应用中使用最具革命意义的是Hibernate可以在应用EJB的J2EE架构中取代CMP完成数据持久化的重任。
Spring2.0 Spring是一个轻型容器Light-Weight Ccontainer是一个目前非常活跃的
开源项目。
其核心是Bean工厂Bean Factory用以构造需要的MModel。
在此基础之上Spring提供了IoCInversion of Control的容器和AOP
Aspect-Oriented Programming面向层面的编程的实现用它来提供非管理环境下申明方式的事务、安全等服务对Bean工厂的扩展ApplicationContext更加方便实现J2EE应用DAO/ORM的实现方便进行数据库的开发Web MVC和Spring Web提供了
Java Web应用的框架或与其他流行的Web框架进行集成。
1.3.2 开发环境 JDK软件 需要安装的是J2SE1.5以上的工具包Myeclipse 6.0 以上版本作为开发的环境。
数据库软件Oracle具有以下特点 1开放性 能在所有主流平台上运行。
完全支持所有的工业标准。
采用完全开放策略。
可以使客户选择最适合的解决方案。
对开发商完全支持。
2可伸缩性并行性 平行服务器通过使一组结点共享同一簇中的工作来扩展 Windows NT的能力提供高可用性和伸缩性的簇的解决
方案。
3安全性 获得最高认证级别的ISO标准认证 4高性能 保持Windows NT下的TCP D和TCPes C的世界纪录。
5客户端支持及应用模式 Oracle是多层次网络计算支持多种工业标准可以用ODBC JDBC OCI等网络连接。
Web服务器Tomcat Tomcat是Apache-Jarkarta的一个子项目是一个
免费的、开放源码的、支持JSP和Servlet技术的容器它同时又是一个Web服务器
软件。
2 需求分析 2.1 系统的基本功能要求 经过前期的调查和研究确定了本系统应该具备如下功能 用户身份验证、 个人信息查看和修改。
公司员工日程安排等 公司员工代办事项管理。
会议管理。
在线发送和接收消息。
系统管理。
以上即是本系统应具备的一些功能要求。
2.1.1 功能分析 系统的主要功能概述如下 个人信息管理模块 该模块用作当前的登录用户查看和修改自己的个人信息。
本模块中应该具备个人的基本信息有姓名、性别、出生年月、E_mail、电话号码、个人简介、个人爱好等。
.名片夹管理模块 该模块用作当前的登录用户查看、添加和修改自己的名片夹。
本模块中具备添加名片夹分组、添加名片、共享名片夹、查看共享名片夹等功能。
.日程安排模块 该模块用作当前的登录用户添加、修改、删除和查看自己的日程安排
列表。
本模块中应该保存的信息有用户名、年份、月份、日期、安排内容。
.代办事项模块 列示出来源于流程处理中的待办
工作。
工作流的催办信息发送到待办工作中。
按日期从新到旧的顺序排列。
首页上只显示5条记录更多的记录需进入待办工作总清单进行处理。
对于工作流类的处理事务用户可以点击待办工作名称进入具体的工作处理页面。
在线信息管理模块 用户登录后可以通过在线消息模块和其他用户联系。
该模块具备在线收发段消息、另存为草稿箱等功能。
会议管理模块 具备相关权限的用户登录后通过会议管理模块可以对会议室的分配实现管理和查看。
系统管理模块 系统管理员进行后台管理的模块包括组织管理、安全控制。
2.1.2 本课题研究的主要内容 完成“OA协同办公系统”的设计OA协同办公系统是一个适应于中小型公司日常办公系统。
OA办公自动化系统分为个人信息管理模块、日程管理模块、名片夹管理模块、代办事项管理模块、在线信息管理模块、会议管理模块、系统管理模块七大功能模块。
个人信息管理模块 保存当前录用户的个人信息。
用户通过该模块查看和修改自己的个人信息。
名片夹管理模块 用户能够添加名片夹分组、添加名片、共享名片夹、查看共享名片夹等功能。
日程安排模块 当前的登录用户能够查看、修改、和创建自己的日程。
代办事项模块 具有创建代办事项权限的用户登录后能够给员工创建代办事项并查看和审核自己创建的代办事项。
不具备创建代办事项权限的用户登录后也能查看自己以接受的代办事项和修改代办事项的进度并提交创建人审核。
在线信息管理模块 用户登录后可以通过在线消息模块和其他用户联系。
会议管理模块 具备相关权限的用户登录后可以对会议室的分配进行管理和查看。
系统管理模块 系统管理员进行后台管理的模块包括组织管理、安全控制。
2.2 业务分析 2.2.1 业务流程 系统的主要流程是系统管理员或普通用户通过登录模块进入系统主页之后可以选择相应的功能对自己的信息进行处理。
业务流程图如图2.1所示 图2.1 中小办公自动化系统业务流程图 3 系统设计 3.1 系统设计 基于中小企业的办公自动化系统采用结构化与原型法相结合的方法。
这种综合法的优点是它兼顾了结构化开发方法开发过程控制性强的特点以及原型法开发周期短、见效快的特点。
采用两者结合的形式进行系统的开发时采用了结构化生命周期法的设计思想即自顶向下从总体到部分合理划分系统的结构设计数据库模型。
在系统的分析与初步设计上采用原型法做出原始模型根据实际反映的情况继续按结构化生命周期法进行系统的详细设计及其实施与转换、系统维护与评价阶段的工作。
合理采用综合法使开发过程更具灵活性往往会取得更好的开发效果。
该
系统是基于 B/SBrowser/ServerB/S架构的三层体系结构即浏览器和服务器结构。
它是随着Internet技术的兴起对C/S结构的一种变化或者改进的结构。
在这种结构下用户工作界面是通过浏览器来实现极少部分事务逻辑在前端Browser实现但是主要事务逻辑在服务器端Server实现形成所谓三层结构。
这样就大大简化了客户端电脑载荷减轻了系统的维护与升级的成本和工作量降低了用户的总体成本。
特别是在
JAVA这样的跨平台语言出现之后B/S架构管理软件更是方便、快捷、高效。
如果能将该系统划分的用户身份验证模块和其他模块再分解成一些相互独立、功能简单、易于理解和修改的模块这样的系统就具备了系统设计首要考虑的可变更性。
由模块组合构成的系统一般称为模块化结构系统。
在这样的系统中由于各个模块之间基本上是相互独立的所以每个模块都可以独立的被理解、编程、调试和修改使其复杂的系统设计工作变得相对简单。
在遵循模块化结构设计原则的基础上根据实现的目标用户身份验证只需要一个模块而其他模块则分成了七个不同的子模块各子模块既相互配合又各自具有一定的独立功能。
这样就形成了一个树形的结构。
3.1.1 系统功能模块总体设计 系统用户通过登陆验证进入系统主页面通过选择“系统管理”菜单进入相应页面。
如果登录用户是“超级管理员”则可以显示此模块用户可以通过选择不同的链接进行相应的用户管理部门管理角色权限管理。
功能模块图如图3.1所示。
图3.1 系统管理管理模块图 3.1.2 日程安排模块 系统用户通过登陆验证进入系统主页面然后选择进入日程安排模块页面用户可以通过选择不同的链接进行相应的新增日程、查看、修改以及删除等操作。
当点击新建日程后用户可以新建一条日程并设置该日程的读者设置了读者后被设置人就能在登陆后在日程查看中查看到他人允许的日程当用户点击代办设置后能够设置代办工作人被设置人在登陆后进入待办事项栏选择新建事项选择该事项的执行人的时候就能看选择被被赋予代办权限的用户当用户点击日程查看时可根据具体情况查看所有已完成未完成或他人日程修改和删除本人日程。
功能模块图如图3.2所示。
图3.2 日程安排流程图 类图如图3.3所示: 图3.3 日程安排类图 3.1.3 待办事项模块 系统用户通过登陆验证进入系统主页面后然后选择进入待办事项模块用户可以选择不能的链接.进行相应的操作当用户点击新建待办事项后可新建待一条待办事项如果登陆用户的职位包含下级则此处可选择本人的直接下级执行该事项如果
登陆用户被日程安排中代办事项设置了代办权限此处也可以设置执行人当用户点击待办工作清单后可查看修改删除待办工作清单当用户点击查看已安排工作栏
查询已安排工作如果登陆用户为领导。
则能对待办事项进行审核批复平级关系则不能.功能模块图如图3.4所示。
图3.4 待办事项功能模块图 类图如图3.5所示: 图3.5 待办事项类图 3.2 数据库
设计 数据库设计是项目开发和系统设计中非常重要的一个环节在这里要特别强调数据库设计的重要性是因为数据库设计就像建设高楼大厦的根基一样如果设计不好在后来的系统维护、变更和功能扩充时甚至在系统开发过程中都会引起比较大的
问题。
3.2.1 数据库概念设计 将需求分析得到的用户需求抽象为信息结构及概念模型的过程是概念结构设计。
图3.6具体描述了本系统各表之间的关系。
图3.6系统主要表间关系 3.2.2 数据库逻辑设计 逻辑结构设计的任务是把概念结构设计阶段设计好的图转换成与选用的DBMS产品所支持的数据模型相符合的逻辑结构。
数据库中两实体间1n联系转换为一个与n端对应的关系模式合并的关系模式的方法是将联系的属性与1端的码加入n端作为属性主码为n端实体的主码。
下面列举本系统所涉及的数据表的详细设计。
表3-1 员工信息表user 字段名称 字段说明 字段类型 可否为空 主键 emp_id 唯一ID NUMBER 否 是 dep_id 部门ID NUMBER 是 role_id 角色ID NUMBER 是 emp_username 用户名 varchar20 是 emp_userpasswd 密码 varchar20 是 emp_realname 真实姓名 varchar10 是 emp_gender 性别 varchar2 是 emp_birthday 生日 DATE 是 emp_job 职务 varchar20 是 emp_phone 手机 LONG 是 emp_email 电子邮箱 varchar20 是 Emp_address 地址 varchar20 是 emp_hobby 爱好 varchar50 否 表3-2 部门信息表 字段名称 字段说明 字段类型 可否为空 主键 dep_id 部门ID NUMBER 否 是 dep_name 部门名称 NUMBER 是 dep_Phone 部门电话 varchar20 是 dep_Duty 部门职能 varchar50 是 表3-3 角色表 字段名称 字段说明 字段类型 可否为空 主键 role_id 角色ID NUMBER 否 是 role _name 角色名称 varchar20 否 表3-4 角色权限表 字段名称 字段说明 字段类型 可否为空 主键 dep_id 角色权限ID NUMBER 否 是 role_id 角色ID NUMBER 否 pem_id 权限ID NUMBER 是 表3-5 权限表 字段名称 字段说明 字段类型 可否为空 主键 pem_id 权限ID NUMBER 否 是 pem_action 执行动作 NUMBER 否 pem_state 执行状态 INT 否 表3-6 日程表 字段名称 字段说明 字段类型 可否为空 主键 dep_id 日程ID NUMBER 否 是 emp_id 员工ID NUMBER 否 reader_id 读者表ID NUMBER 否 Sch_content 日程内容 varchar50 是 sch_begindate 开始时间 DATE 是 Sch_enddate 结束时间 DATE 是 sch_state 日程状态 INT 是 表3-7 读者表 字段名称 字段说明 字段类型 可否为空 主键 reader_id 读者日程ID NUMBER 否 是 reader_sch 日程编号 NUMBER 是 reader_emp 读者ID NUMBER 是 表3-8 待办事项表 字段名称 字段说明 字段类型 可否为空 主键 Wait_id 待办事项ID NUMBER 否 是 Wait_owner 所属员工编号 NUMBER 否 wait_setemp 安排人编号 NUMBER 否 Wait_theme 主题 varchar20 否 wait_content 内容 varchar20 否 wait_begindate 开始时间 DATE 否 wait_enddate 结束时间 DATE 否 wait_dostate 完成进度 DATE 否 wait_dodelsate 执行方删除状态 varchar20 否 wait_createde 创建方删除状态 LONG 否 firstdate 第一次不通过时间 DATE 是 firstreson 第一次不通过原因 varchar20 是 seconddate 第二次不通过时间 DATE 是 secondson 第二次不通过原因 varchar20 是 thirdate 第三次不通过时间 DATE 是 thirdreson 第三次不通过原因 varchar20 是 表3-9 待办设置表 字段名称 字段说明 字段类型 可否为空 主键 waitset_id 待办设置编号 NUMBER 否 是 waitset_set 设置人编号 NUMBER 否 Waitset_beset 被设置人编号 NUMBER 否 3.3 系统设计 3.3.1 登陆界面设计 登陆界面如图3.8所示。
图3.8 登陆界面图 当不输入用户名点击登陆时提示请输入用户名当用户名密码不匹配是提示用户名或密码错误 当输入用户名不输入密码时提示请输入密码. 3.3.2 系统主界面设计 系统主界面如图3.9所示。
图3.9系统主界面 当用户登陆后根据用户的不同权限显示不同的
导航条除了系统管理员外其他用户均不显示系统管理项.用户的权限可以根据系统管理中的权限管理进行修改。
4 系统实现 4.1 系统架构 本系统以Struts Spring Hibernate架构为基础按照实际的开发流程来进行开发。
包括如下 Hibernate功能开发包括创建Hibernate的持久化类、映射文件开发DAO类 Struts功能开发开发Form Bean类、Action类、JSP页面并进行页面的国际化、表单的校验调用Hibernate层的DAO类执行与数据库的交互 Spring功能开发创建applicationContext.xml文件并在其中进行基础的Bean组件配置包括数据源配置、SessionFactory的配置、配置事务、配置DAO组件以及配置DAO事务 系统功能提升包括开发分页栏通用模块、图片国际化、MySQL数据库的国际化、系统安全访问等。
4.1.1
程序结构图 本系统源程序包的目录结构如图4.1所示。
yznu_oa_dep为项目的名称也是项目的根目录。
WebRoot为Web目录包括图片目录images和JSP文件。
WEB-INF目录、lib目录及
web.xml依然为固定的目录和文件。
Src目录包含如下几个部分 edu.yznu.oa.daoHibernate DAO层存放目录 edu.yznu.oa.factory 存放工厂类 edu.yznu.oa.manager 管理类 edu.yznu.oa.manager.impl管理实现类 edu.yznu.oa.struts.action Action类 edu.yznu.oa.struts.action.form表单类 edu.yznu.oa.test 测试类 edu.yznu.oa.util 存放工具类 edu.yznu.oa.vo 数据库连接层 在src目录下还保存了Log4j的属性文件。
图4.1程序结构图 4.2 持久层Hibernate实现 4.2.1 创建并配置Hibernate映射文件 在进行struts层的功能开发之前需要基于Hibernate开发底层的DAO层。
将分2个步骤进行开发。
创建Hibernate的持久化类和映射文件并在applicationContext.
xml中进行配置开发并配置Hibernate DAO层edu.yznu.oa.dao.YznuBookDAO、YznuCardcaseDAO、YznuCardDAO、YznuDepDAO、YznuEmployeeDAO、YznuMeetingDAO、YznuMeetingpersonDAO、YznuMeetingroomDAO、YznuMessageDAO、YznuPer
missionDAO、YznuReaderDAO、YznuRoleDAO、YznuRolepemDAO、YznuSchduleDAO、YznuWaitDAO、YznuWaitsetDAO、PageDao。
这是Hibernate层开发的第一步使用MyEclipse的工具Database Explorer来自动创建Hibernate的持久化类和映射文件.对应的数据库分别为yznu_cardcase、yznu_card、yznu_dep、YznuEmployee等表。
最后生成的类文件包括响应的持久化类以及映射文件需要在applicationContext.xml中
注册该映射文件。
4.2.2 开发并配置Hibernate DAO层 到目前为止系统已经具备了Hibernate的基础访问功能下面要开发Hibernate DAO层使用HibernateTemplate实现对数据表的增、删、改、查的操作包括定义接口类 开发实现类 以及在applicationContext.xml中配置DAO及其代理。
4.3 控制层Struts实现 4.3.1 Struts核心流程
代码 在以上经过对Hibernate持久化类、映射文件和DAO类的开发已经具备了数据层的功能
代码下面开发Struts层的
代码来调用该数据层实现数据库的操作。
要进行Struts层的功能开发需要分4个步骤进行。
Struts核心流程
代码包括edu.yznu.oa.struts.action下的所有.
java及配置。
增加表单校验功能主要修改增加页面、修改页面和表单类。
调用DAO类操作数据库修改Actiono类调用DAO类中的函数进行数据库的关联。
实现通讯录的请求处理流程的配置.