1、立项背景和目标:中学走读生请销假长期依赖纸质假条:班主任手写审批、门卫肉眼核验,假条易伪造、难留痕,学生超时未归无人知晓,管理员统计靠翻本。本项目目标是打造覆盖“申请—审批—放行—销假—预警”全流程的数字化工作台,实现多级审批、门卫核验、超时自动预警、数据全程留痕。
2、软件功能与核心模块:系统设管理员、班主任、门卫、年级主任、年级校长、总校长 6 类角色。核心模块:①请假申请——按学生名册建单,自动拦截重复请假,自动计算请假天数(含过夜修正规则);②多级审批链——按请假天数自动分流审批层级,支持驳回修改后重提;③门卫核验——放行出校、返校销假,超时未返校、已过期独立看板;④智能预警——未按时返校自动标记,过期假条每日自动作废留痕,支持延长假期(跨档位只补未通过环节);⑤数据管理——年级/班级/状态多维筛选、分页浏览、CSV 导出、名册与权限管理。
3、业务流程:班主任建单 → 系统按天数自动流转(半天由门卫直核;2 天内加签年级主任;7 天内加签年级校长;超 7 天加签总校长)→ 全部通过后门卫放行出校 → 返校后销假闭环;超时未返校自动标红、过期未出校次日自动作废,异常单据全程可视可查。
1、整体架构与技术栈:前后端分离。前端为单文件 HTML + 原生 JavaScript + CSS,零框架零依赖,浏览器即开即用;后端为 Node.js 云函数,统一负责 token 鉴权与 6 类角色权限校验;数据层采用 PostgreSQL(8 张表,假条主表 34 列),启用行级安全策略(RLS),前端不直连数据库,全部经云函数中转读写;两个定时触发器每日 0 点/0:05 自动扫描超时未返校与过期假条。基于腾讯云 CloudBase 部署:静态托管发布前端、HTTP 网关挂载云函数 API,免服务器免运维。
2、我的负责模块与结果:独立完成需求分析、数据库建模(8 表)、云函数 API(20+ 个操作)、6 角色前端界面及部署上线,覆盖 18 个班级约 1000 名学生;实现 4 档审批链自动分流、超时/过期双定时任务无人值守管理、重复请假 100% 拦截,系统上线后稳定运行,假条全流程线上留痕。
3、难点、坑与解决方案:①数据库行级安全与前端直连的矛盾 → 设计“云函数中转 + token 鉴权”架构绕开 anon 直写风险;②云数据库迁移工具对脚本命名和版本号有严格限制(名称禁数字、版本须严格递增)→ 沉淀出一套迁移规范并固化 32 个迁移脚本;③“逾期未出校”与“已过期”两个状态语义重叠、菜单冗余 → 重构为白天保持待放行、次日 0:05 自动作废的单状态模型并合并菜单;④历史演示数据创建人字段为空导致延期鉴权误报 → 数据回填 + 后端兼容;⑤环境调用配额紧张 → 清理冗余字段、优化查询密度,降低资源消耗。