基于WEB技术的协同办公系统

(整期优先)网络出版时间:2022-07-19
/ 2

基于WEB技术的协同办公系统

杨林栋,丁静,毛雨轩,王辉敏

中煤航测遥感集团有限公司 陕西西安 710199

[ 摘 要 ] 为提高日常办公的效率,解决有纸化办公中带来的各种不便问题,文章从无纸化办公的重要性和技术的特点出发,介绍最新的前后端软件开发技术,以及创新的思路。介绍了系统对日常办公活动的提升点。

[ 关键词 ] 办公系统;多人协同

在提倡无纸化办公的浪潮下,基于Web的在线可协同的办公系统的重要性逐渐提升,在日常的办公活动中,速度和效率尤为重要。公文流转业务中,常因相关人员出差或其他原因,导致公文处理不及时,相关政策下发晚;也会出现拟稿过程中,意见不统一或建议重复,导致拟稿人员修改极其繁琐。通知公告业务中,快速下发公告,和阅读明细查询,通过办公系统将会快速完成。会议相关业务中,解决了会议室信息缺失,会议预定信息记录快速查询,预定重叠,和快速调整的问题。在核心业务之外,系统提供了个人的工作台,可快速聚合核心业务的数据,方便查看和处理。

1 研究内容

基于Web2.0技术,为管理层和基层员工提供一个操作简单,实时性强,可多人协同工作的系统,实现快速处理公文、公告、会议等相关日常工作。

主要内容如下:

1)开发公文和公告等文字内容可在线进行展示和编辑,编辑过程中实时保存的功能;

2)对于公文流转过程中,多人员可在会审环节协同办公,同时编辑,数据将会实时更新,且修改后的痕迹将会留存并保存历史版本入库,且可查询;

3)开发公文在线套红,盖章功能;

4)基于Websocket实现消息推送功能。

5)基于Antd组件库的建议自定义流程功能。

2 系统设计

2.1 系统总体设计

本系统采用四层设计结构,即用户表现层、控制接口层、业务处理层和数据持久层。

用户表现层即前端页面,与用户进行交互,同时接收用户的行为,将有效的行为转换为数据和代码逻辑,并与控制层交互。

控制接口层接收表现层传递的HTTP请求,将其传递至业务层进行业务逻辑处理,同时兼顾请求合法性的判断,以及用户权限的控制。

业务处理层包含了系统全部的业务逻辑,对控制层传递来的操作指令进行分析后,合理组织内部资源,并通过数据持久层获取存储数据,构建完整的业务处理结果按照调用链返回给用户。

数据持久层使用MySQL,Redis,MongoDB三种数据库,分别存储系统基础数据和用户业务数据,文件数据,权限数据,给业务层提供数据支持。

2.2 功能设计

系统功能设计包含基础功能设计、用户工作台、公文管理、通知公告和会议管理。

基础功能包含有机构管理、人员管理、角色管理、组织管理、权限管理、阈值管理、流程管理和公文要素。用户工作台包含我的首页、我的收藏、个人中心和我的分组。公文管理包含上行文、下行文和三级单位之间的文件发送。通知公告包含收发通告的功能。会议管理包含会议室管理和我的会议。

2.3 数据库设计

在Mysql下采用字符集为utf8mb4,排序规则为utf8mb4_general_ci的规则建库,共29张表,以id为主键,采用UUID的方式赋值。

3 系统实现

协同办公系统中,此次研究的重点是在线Office软件的系统集成和对文档的复杂操作,我们采用基于开源Onlyoffice二次开发的毕生Office作为在线文档操作的软件,在本系统中也称其为在线文档服务,所在的服务器称之为在线文档服务器。

3.1 多人在线协同

我们使用Docker部署其软件,通过用户发送心跳的方式,以在线文档服务中维持其在线状态,同时用户对文档的任何操作将会同步更新至在线文档服务器,同时变更服务器中此文档的版本信息,用户发送心跳的同时将会发送自己文档版本至服务中,和服务器中文档版本对比,当发现有差异时,用户心跳将会接收到更新的指令,将拉取服务器中最新的文档数据至用户页面,服务器中文档总是最新的,通过此方式达到多人在线,协同办公。

3.2 文档操作

基于业务要求和研究重点,在线文档操作时,需要满足版本留痕、在线套红和盖章的需求。

留痕功能依赖于在线文档服务的标注功能,当存在若干用户发送心跳,用户在一个长心跳周期间内的操作会视为一个版本,当前长心跳周期定时为两个小时。当用户第一次打开在线文档和之后没过两个小时,都会查看服务器中文档版本是否发生了改变,如改变则会下载文档流保存至MongoDB中,并在Mysql中添加信息方便查询。

在线套红头实现的方式是文档和合并,当用户选择红头或上传红头后,后端的处理方法会将两个文档读取为流,并将两个文档的重复信息保留一个,如文档标识等,之后合并,对返回前端,同时对在线文档中的文档进行刷新,完成在线套红的功能。

在线盖章分前后台两处的设计,前端完成用户视觉盖章操作,通过Dom元素以及JavaScript的代码实现;后端根据传入的印章图片流、图片距离页面边距的x,y、用户盖章时pdf预览的比例,计算出在标准文档中的准确位置,从而完成盖章操作,之后返回文档流至前端,刷新文档,用户即在审批页面也浏览盖章后的文件。

3.3 实时通信

WebSocket是一种在单个TCP连接上进行全双工通信的协议,WebSocket使得服务端可以主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。前端使用的工具为SockJS和StompJs,后端采用基于SpringBoot的原生WebSocket包。实现点对多和广播的功能。

3.4 自定义流程

使用基于Antd组件的Step组件作为前端展示组件,采用链表的思路,设计后端数据库,每个节点存储其前后节点;包含流程表、流程步骤表、流程角色表,历史任务表、任务详情表。

4 结语

本协同办公系统依靠于开源OnlyOffice和其他设计,实现了多人在线协同办公和各种复杂的文档操作,也实现消息的实时推送和流程的自定义化。通过各个功能模块,用户不仅可以对日常的公文、通知、会议等快速处理,同时也通过无纸化办公减少纸张的浪费,且在各项任务运行中,有效地提升了工作效率和工作质量,减小了沟通成本,实现对日常办公管理的规范化和科学性。

参考文献:

[1]张勇, 黄涛. 基于工作流的网上协同办公系统的设计与实现[J]. 计算机应用研究, 2004, 21(9):3.

[2]贾宗星. 基于工作流的协同办公系统的设计与实现[J]. 计算机时代, 2009(3):3.

[3]李灏, 叶柏龙, 邓军. 工作流技术在协同办公系统中的应用研究[J]. 微计算机信息, 2010(3):2.

[4]陈伟. 基于J2EE架构的协同办公系统设计与开发[D]. 华南理工大学, 2011.