返回作品

职工活动管理系统

创建于 2025 年 5 月 26 日

标签
  • Java
  • Spring Boot
  • MyBatis
  • MySQL
  • Vue 2
  • Element UI
  • Redis
  • Quartz

项目介绍

职工活动管理系统是面向高校与单位工会场景的教职工课余活动管理平台(前端 package.json 标注为”大连交通大学教职工课余活动管理系统”),项目基于若依 RuoYi-Vue 3.8.9 前后端分离脚手架开发,在框架自带的系统管理、系统监控、代码生成等能力之上,从零扩展出五个业务模块:活动信息(info)、活动分类(activity)、活动反馈(feedback)、活动征集(proposal)与经费管理(application)。系统围绕”活动发布 → 职工报名 → 现场参与 → 评价反馈”的完整业务链路组织功能,同时覆盖活动的事前征集(职工提案)与事后的经费申请、使用留痕,形成一个闭环的工会活动管理后台。

项目后端采用 Java 8 + Spring Boot 2.5.15,数据访问层为 MyBatis + PageHelper 分页插件,连接池使用 Druid 1.2.23,数据库为 MySQL 8.0.32(activitydb.sql 完整导出 8 张业务表:activity_info 活动信息、activity_category 活动分类、activity_registration 活动报名、activity_feedback 活动评价、activity_proposal 活动征集、fund_application 经费申请、fund_usage 经费使用记录,外加框架系统表);前端基于 Vue 2 + Element UI 构建,src/views 下按业务域拆分管理端页面,并额外开发了 views/teacher 下的职工端卡片式界面。业务后端代码位于 ruoyi-admin 模块的 com.ruoyi 包下,按 controller → service → mapper 标准分层,整体是典型的”成熟脚手架 + 领域业务扩展”结构。

项目架构

项目沿用若依经典的 Maven 多模块结构,核心模块如下:

模块技术栈说明
ruoyi-adminSpring Boot 2.5.15、MyBatis、Spring Security启动模块与业务代码所在:com.ruoyi.infocom.ruoyi.activitycom.ruoyi.feedbackcom.ruoyi.proposalcom.ruoyi.application 五个业务包
ruoyi-systemMyBatis框架内置:用户、角色、菜单、部门、字典、公告、操作日志等系统管理
ruoyi-frameworkSpring Security、JWT、Redis、Druid框架内置:登录认证、权限控制、Redis 缓存、验证码、数据源配置
ruoyi-quartzQuartz框架内置:定时任务调度与任务日志
ruoyi-generatorVelocity框架内置:代码生成器(VelocityUtils 等),本次业务模块大量由生成器产出后手工增强
ruoyi-web(前端)Vue 2、Element UI、axios、vue-cli管理端表格页 + views/teacher 职工端卡片页,src/api 按业务域封装接口

后端业务代码分层规范:controller 层提供 REST 接口(ActivityInfoControllerActivityRegistrationControllerActivityCategoryControllerActivityFeedbackControllerActivityProposalControllerFundApplicationController),service 层承载业务规则(报名人数校验、提案审核转活动等),mapper 层配合 XML 完成数据访问;activity_infoactivity_proposalfund_application 等表通过外键关联 sys_user,报名表还建立了 uniq_user_activity 唯一索引从数据库层面杜绝重复报名。框架的 @Log 操作日志、@PreAuthorize 权限注解、Excel 导入导出(ExcelUtil)、SecurityUtils 当前用户上下文等能力被业务模块大量复用。

核心功能

活动信息与分类管理。 activity_info 是系统的核心主数据,字段覆盖活动标题、分类(category_id)、主办部门(dept_id)、富文本活动内容、活动地点、开始/结束时间、报名截止时间、人数限制(max_participants,0 表示不限)、当前报名数(current_count)与封面图路径(cover_image),并通过 activity_status 实现五态状态机:0 待发布、1 报名中、2 进行中、3 已结束、4 已取消。活动分类(activity_category)以 uniq_category_name 唯一约束管理体育、文艺、书画、文史哲、退休职工、女职工、其他七类分类,分类支持停用标记(status 0 正常 1 停用)。管理端活动页在新增/编辑弹窗中嵌入富文本编辑器(editor)编写活动内容、image-upload 组件上传封面图,并支持按标题、分类、地点、时间区间多条件筛选与 Excel 导出。

职工端活动墙与报名。 views/teacher/info 面向普通职工提供卡片式活动墙:每张卡片展示封面预览(image-preview)、活动标题、内容摘要、地点、起止时间、报名截止时间与”已报名 x/y 人”,操作按钮随状态动态切换(立即报名 / 已报名 / 取消报名 / 已截止)。后端为此专门提供了 listForUser 接口:遍历活动列表,用 SecurityUtils.getUserId() 查询当前用户的报名记录并回填 canCancel 标记,前端据此渲染按钮状态。报名接口 registerActivity 的校验逻辑体现了完整的业务规则:先检查 currentCount >= maxParticipants 满员则抛出”该活动报名人数已满”,再按 用户 + 活动 查重抛”您已报名该活动”,通过后插入待审核报名记录(regStatus=0)并在同一事务内将 current_count + 1;取消报名(delActivity)则删除记录并同步 current_count - 1,保证人数统计始终准确。报名记录支持 0 待审核 / 1 已通过 / 2 已拒绝 / 3 已取消四种审核状态与审核意见、审核人、审核时间留痕。

活动征集(提案)闭环。 activity_proposal 活动征集表让职工直接参与活动规划:提交活动名称、描述与建议时间后生成状态为”待审核”的提案;管理员审核时(auditActivityProposal)填写审核意见,若审核通过(proposal_status=1)则自动以提案的活动名称和描述创建一条”待发布”的 activity_info 记录,实现”职工提想法 → 管理员审核 → 自动生成活动 → 发布报名”的完整闭环,提案审核时间与审核人均自动记录。

活动评价与管理员回复。 activity_feedback 活动评价表以 idx_activityidx_user 索引关联活动与用户,支持 1-5 分评分(rating)与评价内容,管理员可对每条评价填写回复内容(reply_content)、回复人与回复时间。接口层同时提供管理端全量列表与职工端 listForUser(自动按当前登录用户过滤)两种视角,评价数据支持 Excel 导出,供工会后续改进活动组织。

经费申请与使用管理。 fund_application 经费申请表登记申请人、所属部门、项目名称、申请金额(decimal(12,2))与用途说明,经审核后流转(0 待审核 / 1 已通过 / 2 已拒绝),审核意见与审核人留痕;fund_usage 经费使用记录表通过外键关联申请单,逐笔记录使用金额、使用日期、用途说明与凭证图片(receipt_image),实现”申请 → 审核 → 使用 → 凭证留档”的经费全链路管理。

功能截图

暂无运行截图。

快速上手

  1. 准备数据库:使用 MySQL 8 执行 activitydb.sql 全量脚本(框架系统表 + 8 张业务表 + 演示数据,库名 activitydb),已预置活动分类、活动、提案、评价等示例数据。

  2. 启动后端:

cd 20250526-职工活动管理-api
# 修改 ruoyi-admin/src/main/resources/application-druid.yml 中的数据库地址、账号、密码
mvn clean package -DskipTests
java -jar ruoyi-admin/target/ruoyi-admin.jar
# 或直接执行 ry.sh start(开发环境亦可 mvn spring-boot:run)
  1. 启动前端:
cd 20250526-职工活动管理-web
npm install
npm run dev   # 默认访问 http://localhost:8080,账号 admin / admin123(视实际配置)
  1. 体验流程:在”活动信息”管理端发布活动并设置报名截止与人数限制 → 切换职工端活动墙查看卡片并报名/取消报名 → 在”活动征集”提交提案并审核通过自动生成活动 → 对已参与活动提交评分评价 → 在”经费管理”发起申请并录入使用记录。

总结

职工活动管理系统是一个业务完整度较高的实战型管理后台项目:以若依 RuoYi-Vue 3.8.9 为底座,扩展出活动信息、活动分类、活动报名、活动评价、活动征集、经费管理六块业务,覆盖了从”职工提想法、管理员审核立项”到”发布报名、现场参与、评价反馈、经费使用留痕”的工会活动全生命周期。技术上,报名接口中”满员校验 → 重复报名校验 → 事务内同步报名人数”的写法、uniq_user_activity 数据库唯一约束、提案审核通过自动创建活动的联动逻辑,以及为职工端单独提供的 listForUser/canCancel 接口设计,都体现了对真实业务场景的细致考量。对于想学习在成熟脚手架(Spring Boot + Vue 2 + Element UI)上快速落地业务模块、或需要一套可直接借鉴的”活动 + 报名 + 征集 + 经费”管理后台的开发者,这是一个完整的参考案例。