一、立项背景与目标
学校老师请假目前多依赖纸质流程或零散的线上沟通,存在:
流程不透明:谁在审批、进度到哪一步不清晰。
协调成本高:教务、年级组长、学科组长之间要反复沟通。
数据分散:请假记录、代课安排、统计报表分散在多个渠道。
学校已经有信息化基础,希望在「智慧校园」体系中引入统一的请假管理子系统。
搭建一个完整的「老师请假管理系统」,覆盖:
请假申请、审批、代课安排、统计报表等全流程。
通过统一的前后端系统:
降低教务管理与审批沟通成本。
提升审批效率与透明度。
为管理层提供可视化的请假与代课数据支持决策。
二、软件整体功能概览
2.1 核心功能模块
根据开发计划,系统主要划分为以下几个核心模块:
用户与权限模块:
登录认证(JWT)
用户管理(创建/修改用户、基本信息维护)
角色权限管理(角色、权限码)
数据权限过滤(按年级、学科、部门、自身等维度控制可见范围)
请假申请模块
请假申请表单(填写基本信息、时间、事由、附件)
草稿管理(保存、编辑、删除草稿)
请假列表(查询、筛选、排序、分页)
请假详情(完整信息展示、审批流程展示、附件预览/下载)
撤销申请(待审批状态下,填写撤销原因后撤销)
审批管理模块:
与 Flowable 工作流集成,定义「请假审批流程」:
年级组长审批 → 学科组长审批 → 教导主任审批
待审批列表:按当前审批人查看待审批申请
审批操作:通过、拒绝、转交(计划中)
已审批列表与审批历史(计划中)
审批超时提醒(计划中)
代课安排模块:
审批通过后自动生成代课任务(计划中)
代课任务列表、我的代课任务
代课教师推荐(同学科、同年级、工作量均衡)
代课确认/拒绝与状态管理
统计报表模块:
请假统计:按时间、类型、部门、教师等维度统计
审批效率统计
代课统计
Excel 导出与结果缓存(Redis)
系统配置模块:
请假规则配置(类型、天数规则、审批流程配置)
代课规则配置
权限配置
系统参数配置
消息通知模块:
站内消息(待审批提醒、审批结果通知等)
WebSocket 实时推送
邮件/短信通知(可选)
消息模板管理
一、整体架构与设计思路
1.1 架构风格
前后端分离
后端:Spring Boot 提供 RESTful API。
前端:Vue 3 单页应用(SPA),通过 Axios 调用后端接口。
分层架构(后端)
Controller 层:/controller
暴露 REST 接口,只做参数接收、简单组装与结果返回。
Service 层:/service
承载主要业务逻辑(请假申请、审批流程、数据权限、文件处理、工作流等)。
Repository 层:/repository
使用 Spring Data JPA 操作数据库,聚焦持久化。
Domain 层:/entity + /dto + /vo
entity:数据库实体模型。
dto:请求对象(如 LeaveApplyRequest)。
vo:返回给前端的视图对象(如 LeaveApplicationVO)。
1.2 关键中间件与基础设施
数据库:MySQL 8(JPA + Flyway 做数据库版本管理)
缓存 / 附加能力:Redis 7(会话/统计缓存等)
工作流引擎:Flowable 7(请假审批流程)
安全:Spring Security + JWT(登录鉴权 + 数据权限)
文件存储:规划使用 MinIO / OSS(当前实现为本地存储 + 文件表管理)
文档与接口说明:SpringDoc OpenAPI + Swagger UI
1.3 设计理念与约束
高内聚、低耦合
各模块(请假、审批、代课、统计等)在 Service 层有相对清晰的边界。
业务逻辑集中在 Service
Controller 只做输入/输出,业务规则、权限校验、流程控制放在 Service。
可扩展的审批流程
请假审批使用 Flowable BPMN 流程,审批顺序、节点可通过流程定义扩展,而不写死在代码内。
统一错误与返回格式
全局异常处理 GlobalExceptionHandler + 通用返回对象 Result、PageResult。