翁锦乐,潘威华,王梓东,何韦颖,李梓敬
(广州理工学院 计算机科学与工程学院,广东 广州 510540)
随着互联网的快速发展和政策的支持,社会上涌现了许多志愿服务平台,如i志愿、志愿汇等。这些平台为人们参与社会志愿服务提供了众多的志愿服务信息渠道,方便了人们参与社会志愿服务。同时,这些志愿服务属于劳动活动组成的一部分,也是劳动活动的另一种体现方式。
劳动素质实践活动是新时代对高校的新要求,是全面发展高校育人体系的重要组成部分,是大中小学需要开展的劳动实践活动。因此各大高校开展了劳动素质实践活动,培养学生的劳动素养[1-4],加强学生的劳动服务意识。当下,劳动素质实践活动面向的对象是学生,而社会志愿服务用户对象是全体社会人员。这两者之间存在着包含的关系,如何将社会志愿服务平台的志愿服务和高校的劳动素质实践活动管理结合起来,是当下亟待解决的问题。与此同时,许多高校仍采用传统的线下管理方式,这种管理方式存在着管理效率低、人工时间成本投入高、劳动素质实践活动核实困难、活动管理难、劳动学时认定难等问题。
此文提供了一种以多维度数据采集与融合的方式来设计劳动管理系统,通过提供高效的劳动素质实践活动管理方式,结合信息化技术,将劳动素质管理从线下转为线上,建立在线劳动实践活动管理平台,实现劳动学时统计、核实、管理等功能,提高劳动素质实践活动的效率和质量,将社会志愿服务和高校劳动素质实践活动结合起来,为学生提供更多的志愿服务机会,培养学生的社会责任感和公民意识。
系统使用基于MVC 的三层架构模式进行分层,将整个系统应用分别划分为:视图层、业务层和数据层,如图1所示。
图1 系统结构图
视图层作为系统中的一个重要组成部分,负责将服务端传输的数据格式化并展示给用户。它实现了UI 逻辑与业务逻辑的分离,从而实现了前后端分离。视图层包括数据展示、用户交互、数据验证、界面设计等功能。该层分为小程序和PC 端,通过小程序终端和PC终端提供需要的交互界面为用户提供视图。这种分离出视图层的方式,使得系统页面UI渲染与业务逻辑相互解耦,用户只关注视图层的数据和操作,研发双端只需要遵循协议即可完成交互过程,大大降低了系统的维护成本,提高了开发效率。
业务层是应用程序的核心业务逻辑处理层,它负责接收视图层发送来的请求,并进行相应的数据处理、逻辑计算等操作,最终返回结果给视图层。系统通过业务层将复杂的业务逻辑如报名活动、退选活动、申请活动、审核活动、发布活动、认定学时、导入学生数据和信息等,进行统一处理和组织,使得应用程序结构更加清晰、易于管理和维护。
在系统应用过程中,业务层通常需要同时操作多个数据表,表与表之间可能存在复杂的关系。当视图层需要处理这些复杂的数据时,需要将数据送往业务逻辑层完成数据转换的处理,以便保证请求能够正确地被处理,从而保证业务逻辑的正确性和数据的一致性。
数据层是负责管理应用程序中所有数据的层级,主要包含了数据存储、数据访问和数据处理等相关的功能[5],将业务层和数据源之间进行解耦,实现数据的高效和可靠访问。
系统中的数据层采用Mysql 和Redis 存储和管理结构性和非结构性数据,如用户信息、学时信息、角色信息、行为日志、菜单列表、活动信息、学生与活动关联信息等。当系统需要调用数据时,该层会先将数据传递到业务层进行逻辑处理,再展示到视图层。当系统接收到用户的数据存储请求时,数据会先经过业务层进行逻辑处理,再根据数据类型调用数据层的不同数据存储接口,将信息保存到数据库中。
2.1.1 PC终端
表1 PC终端技术作用表
2.1.2 微信小程序终端
表2 微信小程序终端技术作用表
2.1.3 服务终端
表3 服务端技术作用表
系统共设置了5种角色,分别为学生、教师、书记、学生处职工、系统管理员,如表4所示。
表4 角色解释对照表
系统的业务逻辑分为活动审批认证流程、学生活动报名考勤流程两部分。整体系统业务逻辑流程如图2所示。
图2 系统业务逻辑流程图
2.3.1 活动审批认证
活动审批认证流程中,教师在PC终端创建活动,通过Axios 发起活动申请审批网络请求,服务端接收到请求并校验后即可通过Mybatis 在Mysql 数据库生成相对应的活动信息。同样,学生处职工通过请求Restful接口查询教师发起的活动申请,服务端接收到请求以后,查询数据库数据,最后使用Fastjson处理数据并返回给前端,前端渲染完数据以后即可进行审批,对照活动信息,根据活动实际内容进行通过或者驳回操作网络请求,确保活动的合理性和规范性。
当申请的活动获得学生处职工审核通过时,教师可在系统中对活动细节进行补充并发布该活动。整个活动提交和审批过程中,都会使用Spring Security对用户权限进行校验。
当学生完成活动报名后,教师需要对报名人员进行筛选和确认名单,以便更好地安排后续的考勤和学时认定任务。教师在活动开展前须发布考勤任务,在活动结束后,教师需要根据实际情况对活动参与人进行认定学时。
2.3.2 活动报名
学生可以在教师发布活动后,系统通过RabbitMQ向学生群体发送异步通知消息。同时,学生用户可以在微信小程序终端中查询活动信息和报名活动,为了构建一个高可用高并发的服务,对活动报名接口的数据进行Redis 缓存,再使用Spring-Boot 的ReentrantLock 对每个活动设置线程锁,最后使用ConcurrentHashMap进行缓存活动的锁,实现高并发报名。
学生根据自己的实际情况选择报名参加活动,小程序端通过接口wx.request 发送Resuful 网络请求,Spring-Boot 服务端接收到数据以后就会进行处理,最后等待发布活动的教师筛选。当学生报名活动被成功录用,即可等待活动的开展。在活动开展过程中,学生需要参与考勤以确保学时认定的准确性和完整性。
在系统中,系统功能模块划分为父子模块。划分出的模块主要围绕活动、用户和学时三大主要功能展开。在这些父模块之下,还有针对特定业务和功能的众多子模块,通过这些子模块之间的调用和协同,形成了完整的父模块功能,如图3所示。
图3 系统核心功能模块图
2.4.1 活动认定机制
系统的活动涉及社会志愿服务活动和校内活动,需要建立不同的认定机制。对于学生参加校外的服务志愿活动,需要遵循校外社会志愿活动学时规则建立一套活动认定机制,根据学生所参与的服务内容、学时等要素进行认定,并将符合条件的服务认定为高校劳动素质实践活动学时,最终纳入劳动素质实践活动管理中。同时,对于系统内部的活动服务学时,也需要建立一套活动认定机制。活动负责人需要对报名后未到场或中途离开的情况进行核实和确认,以便更好地保证学时的公正性和有效性。
主要技术设计流程:学生参与完活动以后,教师通过发送Axios 请求向获取学生报名数据,前端获取数据以后通过ElementUI 进行数据渲染,教师确定学时无误后,发送确认请求。后端拿到请求数据,通过使用多线程的模式对每个线程进行数据校验,校验无误后,通过MybatisPlus 的BatchUpdate 方法批量更新数据,若无此过程无产生异常,则活动认定流程结束。
2.4.2 数据采集与融合机制
为了解决其他志愿服务平台没有开放接口数据给第三方接入的问题,系统采用了统一映射关系建立学时采集表的方式,通过抓取其他平台数据、其他平台管理员导出数据、学生自我上报、教职工提供数据等不同维度的方式采集数据,由业务相关负责人采集完数据后,再由系统管理员同步融合到系统,实现将学生已完成的劳动实践活动同步到系统中,避免重复的劳动。
主要技术设计流程:管理员拿到学时采集表以后,在前端通过使用el-upload 组件上传表格文件,服务端接口使用MultipartFile 参数接收数据。对一些基本数据校验无误以后,使用Apache的POI工具对表格数据项进行提取,同时为了提高系统处理能力,该部分使用多线程。所有数据项都提取完毕后,即可入库。如果在导入数据的过程中出现错误,系统将会生成UUID唯一标识码,然后将错误信息使用Redis缓存起来,供管理员后续查询具体失败信息。
2.4.3 活动考勤机制
系统提供了一种活动考勤机制,用于保障学生参与活动并进行学时认证。该机制通过在活动中进行考勤,能够提高学生的参与度和活动管理效率;保证学时数据的准确性和完整性;增强学生的劳动素质意识和实践能力。教师发布任务时可以选择多种考勤方式。系统以人脸识别为主要考勤方式。
人脸识别技术是一种高效的生物识别技术,已被广泛应用于各个领域。在考勤中,人脸识别技术有以下优点:
1) 具有高精度和高可靠性。通过采集学生的面部信息,并进行比对和匹配,可以准确地识别学生身份并记录其考勤情况。相比传统的考勤方式,如签到表或考勤卡,人脸识别技术不会受到时间、地点等因素的影响,更加准确和可靠。
2) 具有便捷性和安全性。通过使用摄像头等设备进行身份验证,可以提高考勤效率,实现自动化考勤管理,并避免了考勤过程中的接触风险。
3) 具有灵活性和普适性。不同于其他生物识别技术需要特殊硬件设备,人脸识别技术只需要摄像头即可实现,可以自动适应学生面部特征变化,不受外部因素的影响,具有较强的灵活性。
主要技术设计流程:人脸采集阶段,学生在小程序端通过JWT 获取到Token,然后上传自己的人脸图片,将图片转换为Base64 之后通过wx.request 请求将图片数据以及Token 发送到服务端,服务端识别Token有效且合法后再通过百度人脸识别API识别图片是否属于符合要求,是的话就将其人脸数据特征与用户ID进行绑定,并存储到数据库中。在考勤阶段,学生同样实时上传自己的人脸图片到服务端,服务端通过API识别出人脸特征信息,再将此人脸特征与该用户先前存储的特征进行对比,如果对比成功,则返回考勤成功,否则将无法正常进行考勤。
2.4.4 渐进式预警机制
系统制定了一种渐进式的学时预警机制。该机制在学生大一时录入学时数据后开始计算,学生需在规定日期前完成所有规定的劳动学时实践活动。若学生未能达到要求,则在大三、大四时系统会自动触发学时预警机制,通过微信服务号推送给学生预警通知。这种预警机制通过逐步累积学时量和渐进式的提醒方式,可以使学生更加重视劳动素质培养并增强劳动实践意识。
主要技术设计流程:服务端通过QuartzScheduler自动定时技术,每天自动扫描系统需要预警的学生,获取到数据以后,通过Redis 设置一定的过期TTL,然后将待预警学生列表通过RabbitMQ 的指定Topic 和hashKey 发送异步消息到微信消息通知服务,当消息被消费以后,学生即可接收到来自系统的预警通知。
系统采用部署两台服务器的配置方案,分别为应用服务器和数据中心服务器,两台服务器各自承担着不同的功能。通过使用Nginx 实现负载均衡,可以将请求分发到不同的服务器上,提高系统的响应速度和处理能力。
应用服务器采用了Docker 容器技术来部署Spring Boot项目,将应用程序打包成一个独立的容器,便于部署和管理。同时,Docker支持动态扩展容器数量,可以根据系统负载情况自动增加或减少容器数量,以满足不同的需求。
数据中心服务器采用了MySQL和Redis 2种数据库作为数据存储方案。MySQL 数据库是一种海量数据存储与管理技术,具有良好的稳定性和可靠性,可以满足大规模数据存储和处理的需求。而Redis作为一种高性能的key-value存储系统和NOSQL类型数据库,为系统提供缓存容器,同时支持大规模的消息队列操作,解决高并发等问题。
学生在程序端“活动中心”中可以查看报名的活动,并可以根据负责人筛选可报名的活动、查看活动详情、确认报名活动、分享活动给他人。
学生可以在“我的活动”中查看自己参与的活动,了解所参与活动的详细信息和最新动态。也可以进入个人信息模块中管理个人基本信息和基础服务。
系统Web管理端主要提供给教师(书记),学生处职工、系统管理员操作系统使用。根据用户的角色不同,系统会显示不同的功能模块。以满足不同角色的权限功能需求。
对于教师(书记)用户,系统将提供以下功能模块:
1) 数据总览:该角色的此模块可以展示当前教师(书记)角色用户所发布的活动和管理的学生数据,为教师(书记)监管班级和活动管理提供可视化数据;
他们正说着,扎洛回来了,他一进家门就高兴地叫开了:阿爸——我抓到三只青蛙了。登子的脸呼地红了,赶忙喝住扎洛:你没看到张爷爷来了吗?扎洛赶忙把破衣服里包的青蛙藏在身后,青蛙窸窸窣窣地跳着。扎洛只穿了件红色的秋衣,两边的袖口都撕到了胳膊肘,右手大拇指上有个茧疤裂开了,血冻在伤口上,肥肥的裤脚上打了四五层补丁,胶鞋的鞋帮和鞋底几乎一分为二,大半个脚掌露在外面。甲洛洛赶忙拉过孩子:快过来烤烤火。登子的脸一下暗了下来:小牛犊,快回去找你阿妈去。扎洛一溜烟跑了,甲洛洛看到孩子眼窝里有泪。
2) 活动管理:该角色的此模块提供了教师(书记)角色用户管理活动流程功能,用于在劳动学时活动过程中管理和跟踪相关的操作。在该过程中有申请活动、发布活动、确认活动报名、学时认定、历史活动记录等操作和活动管理;
3) 学生管理:该角色的此模块提供了教师(书记)角色用户的带班学生信息管理,用于管理和预警自己所带班级的学生信息,预警未满学时的学生,查看修满学时学生的详情。书记角色可以同步学生的其他平台的劳动志愿时。
对于学生处职工用户,系统将提供以下功能模块:
1) 数据总览:该角色的此模块可以展示所有的教师(书记)角色用户所发布的需学生处审批的活动和系统平台的学生数据,为学生处职工用户监督和管理教师(书记)、学生提供可视化数据;
2) 活动管理:该角色的此模块提供了学生处职工角色用户活动流程审核和管理功能,用于在劳动学时活动审核过程中审核和跟踪老师(书记)的相关操作。在该过程中有审核活动、查看发布活动、查看确认活动报名、查看已完成活动、历史活动记录等操作和活动管理;
3) 学生管理:该角色的模块提供了全校学生信息管理,全校未满学时学生预警管理,全校修满学时学生的详情。
对于系统管理员用户,系统将提供以下功能模块:
1) 系统管理:该角色的此模块提供了系统的基本参数设置,可以对系统所有用户进行管理、调整组织架构、设置通知公告、系统操作日志审计等基本设置和管理;
2) 数据总览:该角色的此模块可以展示系统所有角色用户和活动的数据大屏,为系统管理员监管平台提供可视化数据;
3) 系统统计:该角色的此模块可以查看系统平台的所有在线用户,并可对可疑用户进行强制退出系统操作。
本文提出了一种以多维度数据采集与融合的方式设计劳动管理系统,该系统能够将传统的课堂学习和劳动素质实践区分管理,专门服务于劳动素质实践活动,监管劳动实践活动的过程。该系统设计在解决传统线下劳动实践管理效率低、人工时间成本投入高、劳动素质实践活动核实、认定困难等问题的同时,能够有效实现以学生为主体,教师和学生处职工作为辅助性管理,将劳动实践活动过程管理与互联网信息化相融合,形成劳动素质实践过程管理标准与预警机制,从而有助于提高学生的劳动意识。随着互联网的不断发展和普及,未来,以多维度数据采集与融合的方式设计劳动管理系统将会更成熟和完善,相信未来以多维度数据采集与融合的方式来设计劳动管理系统能够为劳动素质实践的活动管理提供更加便捷和高效的帮助。