基于SSH框架的OA办公自动化系统的设计与实现

更新时间:2024-04-02 作者:用户投稿原创标记本站原创 点赞:21962 浏览:96422

【摘 要】办公自动化系统近年来走入人们的生产生活之中,并逐步在现代企业中占据很重要的位置,进而提高企业的办事效率,节约人力资源,改进办公质量.本文提出一种采用JA平台中的SSH框架实现的办公自动化系统的方案,该方案使得整个系统模块划分清晰,从而方便企业内部人员进行有效的信息沟通,并取得了很好的效果.

【关 键 词】Struts2;Hibernate;办公自动化

1.介绍

目前,我们处于一个信息化和大数据的时代,各行各业都需要对大量信息进行处理.在日常办公中,人们开始面对越来越多的复杂与繁冗的数据,传统的办公方式逐渐无法满足人类和社会发展的需求.计算机技术的迅猛发展,使其在办公室中的应用越来越广泛,办公自动化开始成为主流的办公方式.国务院电子振兴办办公自动化专家会议对办公自动化作了如下定义:办公自动化是利用先进的科学技术,不断使人的办公业务活动物化于人以外的各种设备中,并由这些设备与办公室人员构成怎么写作于某种目标的人机信息处理系统.如今,办公自动化系统已经逐渐进入各个行业,其便利的信息交流方式,较高的办公工作效率受到了人们的欢迎[1].

2.系统设计

2.1系统目标

本文从办公自动化系统的基础要求出发,将办公的方便性和高效性考虑入内,达到降低系统的耦合性的目标,并实现OA办公自动化系统的主要功能模块的操作.这样可以保证系统实现后的高效性、高扩展性和灵活性,达到协助工作人员处理日常工作的目标,从而减少了管理的繁琐,实现办公自动化和信息化.

系统采用BS构架模式并结合时下最流行的SSH框架,利用因特网信息交流的方便性与高效性,合理设计与规划,最终实现员工信息管理、在线交流信息管理、个人公开文件夹管理、会议安排管理等典型办公自动化功能.

2.2相关框架介绍

1)Struts2框架介绍:Struts2框架是在Struts1和WebWork技术基础上进行合并而产生的.Struts2以WebWork为核心,采用的机制实现用户的请求.其主要分为模型、视图和控制器三部分(即MVC),主要的设计理念是通过控制器解除表现逻辑和业务逻辑的耦合性,以提高系统的可维护性、可扩展性和重用性.


2)Hibernate框架介绍:Hibernate是一个开源的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,方便开发人员开发,使其可以随心所欲的使用对象编程思维来操纵数据库,从而提高开发效率[2].Hibernate的HQL查询数据语言是根据SQL面向对象的最小的扩展来设计的,在对象和关系领域间提供了一个交互的桥.

3)Spring框架介绍:spring是为了解决应用程序开发复杂性而创建的一个开源框架.其主要优势之一是分层架构,分层架构方便开发者选择组件.Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑和系统级怎么写作进行内聚性开发.其简单性、可测试性和松耦合性使得应用程序受益.

2.3功能模块划分

经过我们对办公单位实际情况考察并认真分析后,本系统包括的用户有普通员工、部门领导和系统管理员三个角色,其分别具有不同的权限.普通员工具有的修改功能,可以查看部门通讯录,管理个人在线信息,并可以查看个人日程安排和委托他人事项.部门领导不仅具有普通员工所有功能,还可以安排会议,查看会议记录,并安排所在部门员工的待办事项.系统管理员的权限最高,主要负责管理通知通告,具有对部门信息、员工信息和角色信息的增删查改的功能.该OA办公自动化系统功能体系结构如图2.1所示:

2.4数据库设计

OA办公自动化系统的设计离不开数据库的设计,而该系统在设计过程中遇到的主要难点也是数据库设计.数据库的设计在整个系统设计过程当中扮演着举足轻重的角色,一个好的数据库能对系统的实现起到事半功倍的作用.系统在数据库设计中需要充分考虑数据之间联系,保证数据库设计的规范化,从而在系统实现和之后的维护过程中不会发生插入、删除和更新异常,使得后续工作高效的进行.本系统主要数据表列举如下:

该系统数据库管理系统采用MySQL,其开源性、多线程性和健壮性深受人们的欢迎[3].数据库部署于后台怎么写作器中,只有系统管理人员才能通过一定的认证访问数据库表中的数据.除此以外,系统不提供任何访问数据库的接口.

3.系统实现

3.1关键模块实现

在OA办公自动化系统实现过程中,在线信息和工作安排两个模块相对于其它较为复杂,同时也耗费了大量的精力和时间.在此将这两个模块的实现过程详细介绍如下:

a)在线信息管理

在线信息模块相对复杂主要是因为在系统的首页需要动态地显示用户的未读信息数目,需要用到局部动态刷新技术——Ajax技术[4].同时,用户对在线信息模块的增、删、查、改操作相对于其它模块也更多,因此对我们的数据库设计提出了更高的要求,这也增加了该模块的复杂度.在数据库表的设计过程中,难度主要集中在对于已读信息、未读信息、已发信息、草稿等的表示和状态转换的设计,需要设计人员极大的耐心.

b)工作安排管理

工作安排管理模块涉及到员工之间相互指定待办事项,而该功能又需得到相互间的授权,使其业务逻辑较为复杂.同时,待办事项的状态最终会从未完成转换为已完成,这也增加了该模块的难度.

授权的业务流程也较为复杂,例如员工A想向员工B指定任务,员工A必须首先得到员工B的授权.与此同时,在得到B的授权后,A可以向B指定任务,B也可随时解除授权.因此,在设计该模块的数据库表时需要考虑复杂的逻辑关系,对数据库的设计能力提出了很高的要求.此处涉及到了user表、authorization表以及assignment表大量的增、删、查、改的操作,工作量较大.3.2技术难点

在文件管理功能模块中,维护与管理文件上传和下载相对于其它操作较为复杂,下载模块需要进行较为复杂的struts配置,同时上传和下载时还要进行编码转换.

针对文件夹/文件的操作主要是增加文件夹、上传文件、更改文件名、删除文件/文件夹、分享文件夹、获得全部文件夹.这部分的难度主要集中在SQL语句,需要有足够耐心和细心.

对于上传文件这块,其struts的配置文件相对简单.而文件下载模块struts比较复杂,其主要配置文件如下:

application/octet-stream;charset等于utf-8

此处将下载文件contentType统一指定为application/octet-stream,同时将charset的值设置为utf-8

attachment;filename等于”${name}”

attachment是告诉浏览器下载该文件,而filename则是在action中接收该文件的文件名,以便在用户保存该文件时使用该文件名.

文件下载模块的action部分,其主要步骤如下:

1)定义所需的变量;

2)创建需要下载的文件

Filefile等于newFile(“保存文件的路径"+dowFileName)

3)将下载的字节流写入刚刚创建的文件

try{

//从file文件中获得输入字节流

fdlInputStream等于newFileInput-Stream(file);

//下载时指定的文件名字用iso8859-1编码

name等于newString(dowFileName.getBytes(),"iso8859-1");

}

catch(FileNotFoundExceptione){

System.out.println(“指定文件找不到”);

e.printStackTrace();“

}

文件上传模块action部分,主要步骤如下:

1)声明所需的变量,其中许多变量是固定名称;

2)创建新的文件,保存上传的文件

FilefileTo等于newFile("上传文件的保存路径"+uploadFileName);

3)将页面接收到的文件写入刚刚创建的文件中去

TestCopy.copy(upload,fileTo)

4.结束语

本文结合现公需求,依赖当今流行的SSH框架整合技术,具有良好的分层体系,使得该系统具有良好的扩展性,可维护性和稳定性.经过后期的内部测试,该系统很大程度上提高了办公效率,节约了成本和资源,其高效数据处理能力在一定程度推进了企业资源计划(ERP)的实现,值得继续推广和使用.