基于SpringBoot的在线协同办公系统设计与实现
2022-05-30阳博温志萍
阳博 温志萍
摘要:大数据时代,在线办公蓬勃发展,传统办公模式已无法适应多数企业的发展需求。基于该社会需求,设计并实现一款在线协同办公系统。系统支持员工人脸识别考勤签到、在线会议、在线请假报销等,通过独立的云文档模块实现办公文件协同;支持后台管理用户的信息、权限和角色,审批处理员工申请的请假、报销、会议等各种需求,并可宏观调控会议的时间地点。
关键词:SpringBoot;在线协同办公;微信小程序;人脸识别;管理系统
中图分类号:TP311.52 文献标识码:A
文章编号:1009-3044(2022)22-0049-03
1 引言
随着信息化的快速发展及实施,传统办公模式已无法适应信息化改革的需求,建立全新的在线协同办公模式已成为企业的必然选择[1],而且在线协同办公模式具有跨越时间和空间的优势,并且具有广阔前景[2]。
近几年,在特殊时期多数团队或企业员工无法聚集办公,使得在线办公成为流行。相比于传统办公模式,在线协同办公平台可以为员工提供自动化办公和管理平台,将请假、报销等操作流程化,员工可在线查看自己的工作任务、任务审批结果和绩效考核情况。在线会议功能是在线协同办公的核心,所有员工都可申请会议,由高层领导审核通过,会议应支持屏幕共享和视频对话。因此,在线协同办公平台的开发具有很大的现实意义。
针对在线协同办公需求,本文设计并实现了基于SpringBoot的在线协同办公系统。系统在保证了上述需求的同时,利用人脸识别和定位技术进行考勤签到,并判别员工是否在疫情高风险地区,若处于高风险区域,系统自动发送邮件提醒员工注意防控。此平台的开发旨在增强办公的便捷性,提升协同工作的能力,提高企业办公效率。
2 关键技术介绍
2.1 SpringBoot
SpringBoot是一款以Spring为基础开发的框架,应用约定优于配置的思想和开箱即用的原则,降低Spring应用程序搭建和开发的难度[3]。SpringBoot具有如下特性:创建独立的Spring应用程序;提供内置容器以简化部署;使应用程序能够自动配置Spring应用程序和第三方库[4];提供固定的起步依赖,使开发人员无须繁杂的项目构建配置便可直接使用。与SSM框架相比,Springboot的自动配置机制可使开发者省去大量烦琐的配置,专注于处理业务逻辑,避免因频繁改动配置文件带来不确定性问题。
2.2 微信小程序
微信小程序是一種不需要下载即可使用的应用,与实体App相比,具有流畅性、易得性、低价性等优势[5],其背靠微信用户量大的优势,可共享微信生态,同时具有优秀的用户体验[6]。微信小程序主要使用wxml、wxss和JavaScript技术构建前端应用,其中wxml是为微信小程序框架设计的一套标签语言;wxss是一套样式语言,用于描述wxml的组件样式;JavaScript是一种具有函数优先性的轻量级、解释型的编程语言[7]。
3 系统设计
3.1 总体设计
本系统采用B/S架构设计,相较于C/S架构,B/S架构系统分布性和共享性更强、维护更方便、建设成本更低。协同办公系统包含移动端和后台管理端,员工在移动端通过人脸识别模块成功签到后,可进入首页查看个人考勤和加班情况,进行在线请假、在线审批、费用报销等操作,员工可在云文档模块上传自己的工作文件,以便同事之间协同办公。系统支持小程序内部的在线会议功能,员工无须再通过第三方软件即可实现在线会议,增强用户体验。系统超级管理员可在后台管理端修改用户信息和权限,对员工申请的报销、请假等任务进行审批,审批成功后,结果会在移动端消息通知模块提示。在系统会议审批成功后,移动端首页以日历形式显示结果,相比于移动端的会议模块,系统后台具备的在线会议模块支持调用摄像头和共享屏幕功能。
系统采用MVC三层架构,其中MVC分别指的是数据层(Model) 、表示层(View) 、控制层(Controller),使用分层架构模式实现系统功能,可以充分降低系统的耦合性,增强系统的可拓展性。数据层:负责处理系统对数据库的操作,向业务层提供调用接口;表示层:负责系统前端页面的展示,展示内容为从控制层获取到的数据;控制层:负责连接表示层和数据层,可根据用户在表示层键入的命令,通过数据层获取数据。系统架构如图1所示。
3.2 功能模块设计
1) 移动端
注册登录认证模块:用户首次进入系统,需授权微信信息登录。登录成功后,用户可进入“个人资料”界面修改个人信息,已被系统识别。初次进入系统的用户角色默认设置为普通员工,若不是,可联系管理员修改并赋予对应的操作权限。登录认证成功,小程序自动跳转到个人首页。
人脸识别考勤签到模块:为确保员工为本人,系统采用基于opencv的人脸识别算法进行考勤签到。同时通过腾讯位置服务获取员工所在地理位置,利用本地宝网站根据地理位置查询出员工所在区域的新冠肺炎疫情地区风险等级。若系统判断员工处于高风险地区,自动发送警告邮件,提醒员工注意防控。签到模块具体流程如图2所示。
云文档模块:员工根据自己的工作需求将编辑好的文档保存至此模块,便于随时随地查看。同时通过账号管理,员工拥有自己独立的网络空间,文件资料存储安全可靠[8]。
会议模块:员工可在首页日历界面查看自己需要参加会议的具体时间,若规定时间内未参与会议,系统将对该员工生成罚款单。
消息通知模块:员工可通过此模块第一时间查看自己当天需要完成的工作以及自己任务申请的审批结果。为减小服务器压力,消息每5分钟更新一次。
2) 后台管理端
组织管理模块:系统支持对员工、部门、权限的增加、删除、修改、查询操作,并可编辑员工所属部门并赋予员工对应的权限,其中用户密码采用AES算法加密。
违纪罚款模块:当员工违反公司规定时,比如未参加会议、缺勤等,系统会生成相应的罚单,罚单记录员工的违规类型、罚款金额以及具体违规原因。在一定时间内,员工需要缴纳罚款以消除记录。若系统出现莫名罚单条目时,管理员可将其删除,系统还支持通过“查看报告”功能分析当月违规统计。
任务审批模块:系统审批员工的请假申请、会议申请任务后,移动端将在消息通知模块提醒员工任务审批结果。
报销管理模块:报销管理分为普通报销和差旅报销,员工线上填写报销单,可分为单笔和多笔报销。系统会自动核算预借款、报销款和实际报销金额,并生成PDF报销单据,方便打印备份。
会议管理模块:会议包括线上会议和线下会议,所有员工都可在系统上发起会议申请。在员工申请会议之后,会议需要层层审批,web端可展示会议申请的实时审批进度。会议审批通过后,Web端将以甘特图、周日历的方式展示会议室和会议日程,移动端则支持人脸识别执行签到。参会人可开启摄像头线上会谈,也可共享电脑屏幕展示自己的工作情况,视频墙上展示其他远程参会人的实时视频。
3.3 数据库设计
设计数据表时,需要经历如下步骤:确定数据库的用途、查找和组织所需的信息、将信息划分为表、将信息项转换为列、设置表关系、应用规范化规则;若表之间是多对多关系,则需要为多对多关系建立一个中间表作为缓冲,存储关系映射,节约数据库空间[9]。本系统设计了14张信息表:操作权限表、罚款信息表、罚款类型表、签到信息表、城市表、部门表、人脸模型表、下班时刻表、会议信息表、功能模块信息表、权限表、请假信息表、角色表、用户信息表,以签到信息表和用户信息表为例,如表1、表2。
1) 用户信息表:存储在线协同办公系统的用户数据,用户状态分为在职和离职两种,授权字符串借助第三方软件生成。
2) 签到信息表:存储系统员工的签到数据,便于统计员工的考勤情况。
4 系统实现
4.1 移动端
移动端结合微信小程序实现,更加快捷方便,结合Vue前端框架和Javascript实现业务逻辑处理。以首页和个人中心为例,员工在签到成功后,移动端自动跳转首页。员工可在首页查看自己当天所需完成的工作事项、请假报销反馈情况等,首页包含上述功能的所有入口,点击即可进入。员工可在个人中心查看个人相关资料并进行相应编辑。首页和个人中心如图4、图5所示。
4.2 后台管理端
后台管理端主要以Springboot框架为基础,利用SpringMVC、MyBatis、RabbitMQ等框架实现相关功能,根据不同业务场景,系统结合使用MongoSQL、MongoDB、Redis数据库。以管理员查看违纪报告为例,管理员可在页面中查看公司员工罚款类型所占比例、按照等级划分的罚款金额所占比例、是否已交付罚款所占比例,报告还将每月是否已交罚款数据利用曲线图可视化。管理员可通过此报告分析企业员工常见错误,并对此进行针对性改善。报告分析主要使用Echarts组件实现可视化,支持下载到本地备份查看,数据从MySQL数据库查询所得。违纪报告如图6所示。
5 结束语
本文介绍了基于SpringBoot的在线协同办公系统的功能设计与系统实现,在需求分析的基础上,进行数据库设计以及各功能模块设计实现,并充分考虑了系统的安全性和易维护性。系统选用微信小程序作为移动端,无须安装应用,方便快捷;后台管理选择SpringBoot框架,避免繁杂的配置操作,从而专注于处理业务逻辑,提升开发效率。相较于市面上的流行办公应用,该系统将微信小程序和SpringBoot技术结合以实现系统功能,更适合于中小型企业使用,在节省流行平台的高额租赁费用情况同时,保证在线协同办公平台所需功能。该系统从功能和性能方面满足了员工在线协同办公和后台高效管理的需求,提升公司办公效率,增强企业的市场竞争力。
参考文献:
[1] 罗杏金.基于B/S的企业大协同办公平台设计及开发[D].上海:华东师范大学,2010.
[2] 李亚明.基于用户体验的CSCW在线文档平台交互设计研究[D].济南:山东大学,2020.
[3] 朱锐勋,黄亮,岳正江.基于Spring Boot的辦学质量评估系统设计[J].信息技术与信息化,2022(3):134-137.
[4] 段定.基于程序切片的测试代码抄袭检测系统的设计与实现[D].南京:南京大学,2020.
[5] 刘仪,张雪冰.大数据背景下微信小程序的应用与分析[J].无线互联科技,2021,18(7):45-46.
[6] 许磊,林加论,张锦.基于微信小程序和Flask的教学评价系统[J].软件导刊,2022,21(4):156-161.
[7] 李沛熹,朱晓君,姜建,等.基于微信小程序的校园二手书籍交易平台设计与实现[J].电脑知识与技术,2021,17(23):57-59,67.
[8] 施鹭.基于大数据技术的云文档系统的设计与实现[J].电子技术与软件工程,2020(21):134-135.
[9] 费孝宏,王琪.高校论坛管理系统的设计与开发[J].电脑知识与技术,2021,17(31):76-78,91.
【通联编辑:谢媛媛】