01 · 模块定位
智能考勤设备中心
智能考勤设备中心负责设备档案、教室绑定、证件照更新同步、目标设备自动解析、人员照片下发、识别流水、离线打卡补传、权益课时校验、课时耗尽人脸清除、异常队列和隐私审计。学员证件照一经在教师端、家长端或学员端更新,系统可自动推导目标设备并完成新增/更新下发;不建设家长手动人脸撤回,但课时耗尽、合同到期或权益终止时必须自动清除设备侧人脸信息。业务目标
打通人脸识别考勤机,实现人员下发、识别回传、自动签到、自动消课和异常队列。
使用终端
PC Web 设备管理端、人脸考勤机 API、教师端/家长端/学员端证件照上传入口;智能考勤设备必须绑定指定校区的指定教室。
验收主线
智能考勤设备中心负责设备档案、教室绑定、证件照更新同步、目标设备自动解析、人员照片下发、识别流水、离线打卡补传、权益课时校验、课时耗尽人脸清除、异常队列和隐私审计。学员证件照一经在教师端、家长端或学员端更新,系统可自动推导目标设备并完成新增/更新下发;不建设家长手动人脸撤回,但课时耗尽、合同到期或权益终止时必须自动清除设备侧人脸信息。
02 · 范围边界
明确本模块负责什么、依赖什么、不负责什么
边界清晰后,原型、接口和数据库设计才能避免重复建设。模块内范围
- 设备档案
- 人员下发
- 识别流水
- 异常队列
- 证件照更新自动下发
- 设备日志
- 隐私审计
- 考勤设备教室绑定
- 设备绑定异常队列
- 证件照来源管理
- 证件照更新同步队列
- 目标设备自动解析
- 离线打卡补传
- 权益课时校验
- 课时耗尽人脸清除
上游依赖
- 组织校区与账号权限
- 课程/客户/合同等主数据
- 审批流、消息模板、文件中心
- 必要的第三方接口密钥
下游输出
- 业务状态和待办
- 消息通知和审批记录
- 报表指标和数据快照
- 审计日志和接口回执
03 · 确认口径、后台配置与默认实施规则
智能考勤设备中心必须承接的已确认规则
本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。| 分类 | 事项 | 本模块落地要求 | 责任方 |
|---|---|---|---|
| 默认实施规则 | 接口设计说明书组织方式 | 采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。 | 产品/研发 |
| 默认实施规则 | 接口错误码与重试中间件 | 所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。 | 后端/测试/运维 |
04 · 业务流程
智能考勤设备中心主流程
流程用于指导原型图的页面顺序、按钮状态和异常分支。设备档案需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
人员下发包含学员、教师、员工、证件照/人脸照片、有效期和校区权限
人脸识别事件匹配课次后必须校验合同权益、课程有效期和剩余课时;无有效权益、合同到期或剩余课时为 0 时,不允许自动课消,识别流水进入异常队列并返回不可课消错误码与提示文案。
设备识别事件自动匹配课次时,优先按设备绑定教室、当前时间、班级课表和学员名单匹配,跨校区或未绑定教室的事件进入异常队列。
证件照更新自动下发需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
设备日志需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
隐私审计需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
考勤设备教室绑定需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
05 · 功能清单
按子模块拆到可设计、可开发、可测试的颗粒度
每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。| 一级功能 | 二级功能 | 功能说明 | 规则/验收 |
|---|---|---|---|
| 设备档案 | 基础维护 | 设备档案支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 设备档案 | 业务处理 | 设备档案需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 设备档案 | 异常闭环 | 低置信度处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 人员下发 | 基础维护 | 人员下发支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 人员下发 | 业务处理 | 人员下发包含学员、教师、员工、证件照/人脸照片、有效期和校区权限 | 必须联动状态、权限、消息、审批和指标 |
| 人员下发 | 异常闭环 | 设备离线处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 识别流水 | 基础维护 | 识别流水支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 识别流水 | 业务处理 | 人脸识别事件匹配课次后必须校验合同权益、课程有效期和剩余课时;无有效权益、合同到期或剩余课时为 0 时,不允许自动课消,识别流水进入异常队列并返回不可课消错误码与提示文案。 | 必须联动状态、权限、消息、审批和指标 |
| 识别流水 | 异常闭环 | 跨校区识别处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 异常队列 | 基础维护 | 异常队列支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 异常队列 | 业务处理 | 设备识别事件自动匹配课次时,优先按设备绑定教室、当前时间、班级课表和学员名单匹配,跨校区或未绑定教室的事件进入异常队列。 | 必须联动状态、权限、消息、审批和指标 |
| 异常队列 | 异常闭环 | 设备未绑定教室处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 证件照更新自动下发 | 基础维护 | 证件照更新自动下发支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 证件照更新自动下发 | 业务处理 | 证件照更新自动下发需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 证件照更新自动下发 | 异常闭环 | 设备跨校区绑定处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 设备日志 | 基础维护 | 设备日志支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 设备日志 | 业务处理 | 设备日志需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 设备日志 | 异常闭环 | 绑定教室已停用处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 隐私审计 | 基础维护 | 隐私审计支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 隐私审计 | 业务处理 | 隐私审计需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 隐私审计 | 异常闭环 | 设备教室与课次不匹配处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 考勤设备教室绑定 | 基础维护 | 考勤设备教室绑定支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 考勤设备教室绑定 | 业务处理 | 考勤设备教室绑定需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 考勤设备教室绑定 | 异常闭环 | 证件照缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 设备绑定异常队列 | 基础维护 | 设备绑定异常队列支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 设备绑定异常队列 | 业务处理 | 设备绑定异常队列需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 设备绑定异常队列 | 异常闭环 | 证件照质量不合格处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 证件照来源管理 | 基础维护 | 证件照来源管理支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 证件照来源管理 | 业务处理 | 证件照来源管理需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 证件照来源管理 | 异常闭环 | 学员课程未关联教室处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 证件照更新同步队列 | 基础维护 | 证件照更新同步队列支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 证件照更新同步队列 | 业务处理 | 证件照更新同步队列需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 证件照更新同步队列 | 异常闭环 | 目标教室无考勤设备处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 目标设备自动解析 | 基础维护 | 目标设备自动解析支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 目标设备自动解析 | 业务处理 | 目标设备自动解析需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 目标设备自动解析 | 异常闭环 | 设备离线待补传处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 离线打卡补传 | 基础维护 | 离线打卡补传支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 离线打卡补传 | 业务处理 | 离线打卡补传需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 离线打卡补传 | 异常闭环 | 离线补传重复事件处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 权益课时校验 | 基础维护 | 权益课时校验支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 权益课时校验 | 业务处理 | 权益课时校验需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 权益课时校验 | 异常闭环 | 无有效权益处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 课时耗尽人脸清除 | 基础维护 | 课时耗尽人脸清除支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 课时耗尽人脸清除 | 业务处理 | 课时耗尽人脸清除需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 课时耗尽人脸清除 | 异常闭环 | 剩余课时不足处理 | 失败原因可见、可重试、可转人工、可追溯 |
功能到数据对象/接口/表映射
| 功能域 | 承接对象 | 核心表 | 代表接口 | 状态机/状态字段 | 研发落地校验 |
|---|---|---|---|---|---|
| 设备档案 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/01 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 人员下发 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | PATCH /api/v1/face/devices/{id}/classroom-binding | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 识别流水 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/03 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 异常队列 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/04 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 证件照更新自动下发 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/05 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 设备日志 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/06 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 隐私审计 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/07 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 考勤设备教室绑定 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/08 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 设备绑定异常队列 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/09 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 证件照来源管理 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/10 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 证件照更新同步队列 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/11 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 目标设备自动解析 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/12 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 离线打卡补传 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/13 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 权益课时校验 | FaceDevice、FacePerson、FaceDispatchTask、FacePhotoSyncTask | dev_face_device、dev_face_person、dev_face_dispatch_task、dev_face_photo_sync_task | 接口资源组 /api/v1/fac/features/14 | device_status、person_type、sync_status、action_type、task_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 课时耗尽人脸清除 | FaceClearanceTask | dev_face_clearance_task | 接口资源组 /api/v1/fac/features/15 | trigger_type、clearance_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
06 · 原子级功能需求
用于研发任务拆分和测试用例追踪
需求编号可直接进入项目管理工具。| 编号 | 需求描述 | 入口页面 | 关键动作 | 输入校验 | 输出结果 | 异常处理 | 验收标准 |
|---|---|---|---|---|---|---|---|
| FR-FAC-001 | 设备需支持 API 二次开发、人员照片下发、识别事件回传和心跳 | 设备档案 | 设备建档 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 低置信度 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-002 | 人员下发包含学员、教师、员工、证件照/人脸照片、有效期和校区权限 | 证件照更新同步队列 | 证件照更新、目标设备解析、人员照片下发或离线打卡补传 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 证件照质量不合格、课程教室设备关系缺失、设备离线或补传重复事件 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-003 | 识别事件按学生、校区、课表、时间窗口、班级和课程匹配课次 | 考勤设备绑定教室 | 换绑教室 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 跨校区识别 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-004 | 低置信度、未匹配、重复识别、跨校识别进入人工确认 | 学员证件照上传 | 证件照更新 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 设备未绑定教室 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-005 | 人脸识别考勤设备必须绑定到指定校区的指定教室,设备创建、编辑、启用和人员下发前必须校验 campusId、classroomId、教室启用状态和设备归属一致性。 | 证件照更新同步队列 | 证件照更新、目标设备解析、人员照片下发或离线打卡补传 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 证件照质量不合格、课程教室设备关系缺失、设备离线或补传重复事件 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-006 | 设备识别事件自动匹配课次时,优先按设备绑定教室、当前时间、班级课表和学员名单匹配,跨校区或未绑定教室的事件进入异常队列。 | 指标异常处理 | 异常订阅、责任人处理或口径审批 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 指标延迟、责任人缺失或口径版本不一致 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-007 | 教师端、家长端、学员端均可按权限手动上传或更新学员证件照,系统保留照片版本、上传来源、上传人和审核/质量校验结果。 | 证件照更新同步队列 | 证件照更新、目标设备解析、人员照片下发或离线打卡补传 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 证件照质量不合格、课程教室设备关系缺失、设备离线或补传重复事件 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-008 | 学员关联课程,课程关联教室,教室关联人脸识别考勤设备;学员证件照更新后,系统自动解析该学员当前有效课程、班级、教室和目标设备范围,生成新增或更新下发任务。 | 证件照更新同步队列 | 证件照更新、目标设备解析、人员照片下发或离线打卡补传 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 证件照质量不合格、课程教室设备关系缺失、设备离线或补传重复事件 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-009 | 人脸信息不设置撤回流程,只支持更新;新照片下发成功后覆盖设备侧旧照片或旧特征值,所有更新、失败、重试和人工处理必须留痕。 | 证件照更新同步队列 | 证件照更新、目标设备解析、人员照片下发或离线打卡补传 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 证件照质量不合格、课程教室设备关系缺失、设备离线或补传重复事件 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-010 | 设备离线时产生的打卡记录由设备本地缓存,联网恢复后自动补传;系统按 deviceId + deviceEventId 去重,补传成功后继续匹配课次、签到和课消。 | 权益课时校验异常 | 人脸自动清除 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 学员课程未关联教室 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-011 | 人脸识别事件匹配课次后必须校验合同权益、课程有效期和剩余课时;无有效权益、合同到期或剩余课时为 0 时,不允许自动课消,识别流水进入异常队列并返回不可课消错误码与提示文案。 | 指标异常处理 | 异常订阅、责任人处理或口径审批 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 指标延迟、责任人缺失或口径版本不一致 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-012 | 每次成功课消后必须触发权益余额复核;当学员在对应课程、班级或合同下的课时全部消耗完成后,系统自动解析关联教室设备并生成设备侧人脸清除任务,清除成功后该学员不再参与对应设备识别匹配。 | 证件照更新同步队列 | 证件照更新、目标设备解析、人员照片下发或离线打卡补传 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 证件照质量不合格、课程教室设备关系缺失、设备离线或补传重复事件 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FAC-013 | 课时耗尽触发的设备侧人脸清除属于权益生命周期自动动作,不属于家长手动撤回;清除任务需要保留触发原因、剩余课时快照、目标设备、回执、失败重试和人工处理记录。 | 活动大屏配置/实时战报 | 配置模板、数据源、指标口径、战区 PK、投屏发布或实时刷新 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 数据源缺失、指标口径校验失败、公开访问令牌过期或实时刷新断连 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
07 · 关联闭环补充需求
智能考勤设备中心在跨模块闭环中的责任边界
本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。| 闭环项 | 本模块责任 | 关键场景 | 页面/功能补充 | 关联对象/接口 | 验收口径 |
|---|---|---|---|---|---|
| 考勤设备绑定教室 | 负责人脸考勤设备与指定校区、指定教室的绑定校验、换绑审计和识别事件课次匹配 | 设备扫脸签到必须知道发生在哪个校区和教室,才能匹配课次并自动签到课消 | 设备建档、绑定教室、换绑审计、识别流水、异常队列 | FaceDevice、Classroom、FaceAttendanceEvent、/api/v1/face/devices | 设备必须绑定同校区启用教室;未绑定或跨校区事件不得自动签到课消 |
| 设备维修工单 | 考勤机离线、识别异常或照片下发失败时生成设备异常线索 | 人脸考勤设备故障影响签到、课消和到访接待 | 设备状态、识别事件、异常上报、维修工单入口 | Device/FaceAttendanceEvent、AssetLifecycle/Maintenance | 设备异常必须能转维修工单并回写处理结果 |
08 · 页面与原型设计说明
页面清单、布局要求、按钮字段和状态
原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。| 终端 | 页面 | 用户 | 页面目标 | 布局结构 | 关键按钮 | 关键字段 | 异常状态 | 原型备注 |
|---|---|---|---|---|---|---|---|---|
| PC Web | 设备档案 | 设备管理员 | 维护设备、校区、在线状态、心跳 | 设备页按校区、设备、人员、事件四层组织,识别流水支持照片、置信度、课次匹配和异常处理入口。 | 新增设备、证件照更新、目标设备解析、人员照片下发、查看心跳、确认异常、重试下发、查看回执 | 设备编号、设备品牌、所属校区、绑定教室、人员编号、人脸照片、照片版本、来源终端、置信度、匹配课次 | 设备离线、证件照质量不合格、学员课程未关联教室、目标教室无考勤设备、人员下发失败、低置信度、跨校区识别、离线补传重复事件 | 需覆盖教师端/家长端/学员端证件照上传、课程教室设备自动解析、人员照片新增/更新下发、识别异常确认、设备离线打卡联网后自动补传和隐私审计。 建议 Figma Frame:FAC-设备档案;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 识别流水 | 教务/设备管理员 | 查看扫脸事件、匹配课次、异常确认 | 设备页按校区、设备、人员、事件四层组织,识别流水支持照片、置信度、课次匹配和异常处理入口。 | 新增设备、证件照更新、目标设备解析、人员照片下发、查看心跳、确认异常、重试下发、查看回执 | 设备编号、设备品牌、所属校区、绑定教室、人员编号、人脸照片、照片版本、来源终端、置信度、匹配课次 | 设备离线、证件照质量不合格、学员课程未关联教室、目标教室无考勤设备、人员下发失败、低置信度、跨校区识别、离线补传重复事件 | 需覆盖教师端/家长端/学员端证件照上传、课程教室设备自动解析、人员照片新增/更新下发、识别异常确认、设备离线打卡联网后自动补传和隐私审计。 建议 Figma Frame:FAC-识别流水;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 考勤设备绑定教室 | 设备管理员/教务 | 创建或编辑考勤设备时必须选择校区和教室,系统校验教室存在、未停用、未逻辑删除且归属同校区 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-考勤设备绑定教室;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 教师端 App/小程序 | 学员证件照上传 | 教师/班主任/学管师 | 按权限为本人负责班级或学员上传证件照,提交后进入照片质量校验和人脸下发同步队列 | 设备页按校区、设备、人员、事件四层组织,识别流水支持照片、置信度、课次匹配和异常处理入口。 | 新增设备、证件照更新、目标设备解析、人员照片下发、查看心跳、确认异常、重试下发、查看回执 | 设备编号、设备品牌、所属校区、绑定教室、人员编号、人脸照片、照片版本、来源终端、置信度、匹配课次 | 设备离线、证件照质量不合格、学员课程未关联教室、目标教室无考勤设备、人员下发失败、低置信度、跨校区识别、离线补传重复事件 | 需覆盖教师端/家长端/学员端证件照上传、课程教室设备自动解析、人员照片新增/更新下发、识别异常确认、设备离线打卡联网后自动补传和隐私审计。 建议 Figma Frame:FAC-学员证件照上传;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 家长端小程序/H5 | 学员证件照上传 | 家长 | 为绑定学员上传或更新证件照,系统记录家长来源、照片版本和隐私授权确认信息 | 家长端使用移动端卡片流和底部主按钮,重要操作采用二次确认弹窗并展示处理进度。 | 绑定学员、查看课表、提交请假、确认补课、改期取消、缴费、签署合同、提交工单 | 绑定学员、课程、合同、应缴金额、请假课次、补课候选、服务工单、服务消息、设备编号、设备品牌 | 绑定关系异常、补课候选过期、支付失败、合同签署失败、工单已关闭、消息发送失败 | 需覆盖微信小程序/H5 状态、合同缴费、补课候选确认、服务通知、工单进度和异常联系入口。 建议 Figma Frame:FAC-学员证件照上传;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 学员端小程序/App | 学员证件照上传 | 学员 | 学员可按学校开放范围上传或更新本人证件照,提交后由系统进入质量校验与设备同步 | 移动端采用顶部标题/状态区、内容卡片流和底部主按钮;平板端需要分栏布局和横屏适配。 | 查看、提交、保存、取消、确认、联系客服、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 网络异常、权限不足、提交失败、状态已变化 | 需分别标注小程序、App、H5、平板和桌面壳的适配差异。 建议 Figma Frame:FAC-学员证件照上传;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 证件照更新同步队列 | 设备管理员/教务/安全管理员 | 查看照片来源、照片版本、目标课程、目标教室、目标设备、下发状态、失败原因和重试入口 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-证件照更新同步队列;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 目标设备自动解析 | 设备管理员/教务 | 根据学员有效课程、班级、教室与教室绑定设备自动生成目标设备清单,缺失关系进入异常队列 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-目标设备自动解析;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 设备离线打卡补传 | 设备管理员/教务 | 查看设备离线期间缓存的打卡记录,联网后按事件号自动补传、去重、匹配课次并回写考勤课消 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-设备离线打卡补传;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 权益课时校验异常 | 教务/设备管理员/校区前台 | 查看无有效权益、合同到期、剩余课时为 0 等打卡异常,确认不可课消原因、设备提示结果和后续续费/人工处理入口 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、设备编号、设备品牌 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:FAC-权益课时校验异常;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 课时耗尽人脸清除队列 | 设备管理员/教务/安全管理员 | 查看课时耗尽或权益终止触发的人脸清除任务,包含剩余课时快照、目标设备、清除状态、失败原因和重试入口 | 设备页按校区、设备、人员、事件四层组织,识别流水支持照片、置信度、课次匹配和异常处理入口。 | 新增设备、证件照更新、目标设备解析、人员照片下发、查看心跳、确认异常、重试下发、查看回执 | 设备编号、设备品牌、所属校区、绑定教室、人员编号、人脸照片、照片版本、来源终端、置信度、匹配课次 | 设备离线、证件照质量不合格、学员课程未关联教室、目标教室无考勤设备、人员下发失败、低置信度、跨校区识别、离线补传重复事件 | 需覆盖教师端/家长端/学员端证件照上传、课程教室设备自动解析、人员照片新增/更新下发、识别异常确认、设备离线打卡联网后自动补传和隐私审计。 建议 Figma Frame:FAC-课时耗尽人脸清除队列;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 设备列表 | 授权用户 | 围绕设备闭环完善设备列表的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-设备列表;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 人员下发 | 授权用户 | 围绕设备闭环完善人员下发的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-人员下发;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 考勤异常 | 授权用户 | 围绕设备闭环完善考勤异常的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-考勤异常;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 设备回执 | 授权用户 | 围绕证件照更新同步完善设备回执的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-设备回执;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 考勤异常 | 授权用户 | 围绕离线补传联动完善考勤异常的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-考勤异常;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 考勤异常 | 授权用户 | 围绕权益课时校验完善考勤异常的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-考勤异常;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 人员下发 | 授权用户 | 围绕课时耗尽人脸清除完善人员下发的入口、字段、状态、异常提示、处理进度和验收反馈 | 设备页按校区、设备、人员、事件四层组织,识别流水支持照片、置信度、课次匹配和异常处理入口。 | 新增设备、证件照更新、目标设备解析、人员照片下发、查看心跳、确认异常、重试下发、查看回执 | 设备编号、设备品牌、所属校区、绑定教室、人员编号、人脸照片、照片版本、来源终端、置信度、匹配课次 | 设备离线、证件照质量不合格、学员课程未关联教室、目标教室无考勤设备、人员下发失败、低置信度、跨校区识别、离线补传重复事件 | 需覆盖教师端/家长端/学员端证件照上传、课程教室设备自动解析、人员照片新增/更新下发、识别异常确认、设备离线打卡联网后自动补传和隐私审计。 建议 Figma Frame:FAC-人员下发;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 设备回执 | 授权用户 | 围绕课时耗尽人脸清除完善设备回执的入口、字段、状态、异常提示、处理进度和验收反馈 | 设备页按校区、设备、人员、事件四层组织,识别流水支持照片、置信度、课次匹配和异常处理入口。 | 新增设备、证件照更新、目标设备解析、人员照片下发、查看心跳、确认异常、重试下发、查看回执 | 设备编号、设备品牌、所属校区、绑定教室、人员编号、人脸照片、照片版本、来源终端、置信度、匹配课次 | 设备离线、证件照质量不合格、学员课程未关联教室、目标教室无考勤设备、人员下发失败、低置信度、跨校区识别、离线补传重复事件 | 需覆盖教师端/家长端/学员端证件照上传、课程教室设备自动解析、人员照片新增/更新下发、识别异常确认、设备离线打卡联网后自动补传和隐私审计。 建议 Figma Frame:FAC-设备回执;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 设备告警 | 授权用户 | 围绕运维联动完善设备告警的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-设备告警;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 维修工单 | 授权用户 | 围绕运维联动完善维修工单的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-维修工单;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 资产详情 | 授权用户 | 围绕运维联动完善资产详情的入口、字段、状态、异常提示、处理进度和验收反馈 | 资产库存页采用左侧分类树、顶部仓库/校区筛选、中部台账表格,详情抽屉展示流水、成本、责任人和审计。 | 新增 SKU、采购申请、验收入库、领用出库、调拨、盘点、报损报废、维修派工 | 物料编码、分类、仓库/校区、库存数量、批次成本、供应商、责任人、盘点差异、设备编号、设备品牌 | 库存不足、编码重复、入库差异、责任人缺失、维修超期、成本调整失败 | 需覆盖图书仅进销存、固定资产责任人变更、维修工单、礼品库存、成本策略和财务凭证联动。 建议 Figma Frame:FAC-资产详情;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 设备事件类型区分:学生上课考勤 | 授权用户 | 围绕人力 Excel 反补:设备事件类型区分:学生上课考勤、员工上下班考勤。完善设备事件类型区分:学生上课考勤的入口、字段、状态、异常提示、处理进度和验收反馈 | PC 端采用顶部筛选、左侧列表或导航、中部主工作区、右侧详情抽屉,复杂操作进入弹窗或步骤条。 | 查询、新增、编辑、提交、导出、查看日志、设备建档、绑定教室 | 设备编号、设备品牌、所属校区、绑定教室、教室状态、在线状态、照片来源终端、照片版本、剩余课时、权益校验状态 | 空数据、无权限、加载失败、保存失败、审批驳回、批量部分失败 | 管理员端沿用统一框架,原型重点标注信息架构、表单弹窗、状态流和异常处理。 建议 Figma Frame:FAC-设备事件类型区分_学生上课考勤;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
09 · 页面到接口的前后端闭环矩阵
把原型页面、后端接口、数据对象、状态和消息审批绑定到一起
设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。| 原型页面 | 关键接口 | 关联对象 | 状态流 | 审批/权限触发 | 消息/待办触达 | 原型验收要求 |
|---|---|---|---|---|---|---|
| 设备档案 | PATCH /api/v1/face/devices/{id}/classroom-binding | FaceDevice | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 识别流水 | PATCH /api/v1/face/devices/{id}/classroom-binding | FacePerson | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 考勤设备绑定教室 | PATCH /api/v1/face/devices/{id}/classroom-binding | FaceDispatchTask | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 学员证件照上传 | PATCH /api/v1/face/devices/{id}/classroom-binding | FacePhotoSyncTask | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 学员证件照上传 | PATCH /api/v1/face/devices/{id}/classroom-binding | FaceClearanceTask | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 学员证件照上传 | PATCH /api/v1/face/devices/{id}/classroom-binding | FaceAttendanceEvent | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 证件照更新同步队列 | PATCH /api/v1/face/devices/{id}/classroom-binding | FaceDevice | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 目标设备自动解析 | PATCH /api/v1/face/devices/{id}/classroom-binding | FacePerson | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 设备离线打卡补传 | PATCH /api/v1/face/devices/{id}/classroom-binding | FaceDispatchTask | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 权益课时校验异常 | PATCH /api/v1/face/devices/{id}/classroom-binding | FacePhotoSyncTask | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 课时耗尽人脸清除队列 | PATCH /api/v1/face/devices/{id}/classroom-binding | FaceClearanceTask | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 设备列表 | PATCH /api/v1/face/devices/{id}/classroom-binding | FaceAttendanceEvent | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
10 · 原型、UI、研发、测试交付补充
把关键闭环补强为下一阶段可执行任务
本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。| 能力域 | 功能补充要求 | 原型交付要求 | UI 交互要求 | 研发实现要求 | 测试验收要求 |
|---|---|---|---|---|---|
| 设备闭环 | 补齐设备下发回执、低置信度识别、重复识别、人工复核、自动签到和课消联动。 | 设备列表、人员下发、识别流水、考勤异常 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;识别异常可人工确认,确认后同步教务考勤和课消状态。 |
| 证件照更新同步 | 补齐照片来源、照片版本、质量校验、课程教室设备解析、目标设备清单、下发任务、失败重试和审计。 | 证件照更新同步队列、目标设备自动解析、设备回执 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;学员照片更新后可自动推导目标设备并完成新增或更新下发;不提供家长手动撤回入口,设备侧清除仅由课时耗尽、合同到期或权益终止规则触发。 |
| 离线补传联动 | 补齐离线缓存、联网补传、事件去重、课次匹配、异常队列、自动签到和自动课消。 | 设备离线打卡补传、识别流水、考勤异常 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;设备恢复联网后离线记录可自动补传,重复事件不会重复签到或重复课消。 |
| 权益课时校验 | 补齐合同权益、剩余课时、课程有效期、可课消状态、错误码、设备提示、异常队列和消息通知。 | 权益课时校验异常、识别流水、考勤异常 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;课时不足时打卡记录可追踪但不生成课消,设备或后台能明确提示不可课消原因。 |
| 课时耗尽人脸清除 | 补齐课消后余额复核、课时耗尽触发、人脸清除任务、设备回执、离线重试和人工处理。 | 课时耗尽人脸清除队列、人员下发、设备回执 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;最后一次课消完成后自动清除目标设备上的学员人脸信息,并保留触发原因和回执。 |
| 运维联动 | 补齐离线告警、维修工单、资产状态、恢复校验和影响课次范围。 | 设备告警、维修工单、资产详情 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;设备恢复后可自动回测签到、直播或录像相关能力。 |
| 人力 Excel 反补:设备事件类型区分:学生上课考勤、员工上下班考勤。 | 按《系统功能-人力-PRD完善方案》补齐设备事件类型区分:学生上课考勤、员工上下班考勤。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。 | 设备事件类型区分:学生上课考勤、员工上下班考勤。相关列表、详情、表单、审批、消息、异常、审计和报表页面 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:设备离线缓存。 | 按《系统功能-人力-PRD完善方案》补齐设备离线缓存。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。 | 设备离线缓存。相关列表、详情、表单、审批、消息、异常、审计和报表页面 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:恢复联网后批量补传。 | 按《系统功能-人力-PRD完善方案》补齐恢复联网后批量补传。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。 | 恢复联网后批量补传。相关列表、详情、表单、审批、消息、异常、审计和报表页面 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:同步失败日志。 | 按《系统功能-人力-PRD完善方案》补齐同步失败日志。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。 | 同步失败日志。相关列表、详情、表单、审批、消息、异常、审计和报表页面 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:设备事件去重。 | 按《系统功能-人力-PRD完善方案》补齐设备事件去重。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。 | 设备事件去重。相关列表、详情、表单、审批、消息、异常、审计和报表页面 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:员工打卡设备采集打卡事件。 | 按《系统功能-人力-PRD完善方案》补齐员工打卡设备采集打卡事件。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。 | 员工打卡设备采集打卡事件。相关列表、详情、表单、审批、消息、异常、审计和报表页面 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:离线时本地缓存。 | 按《系统功能-人力-PRD完善方案》补齐离线时本地缓存。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。 | 离线时本地缓存。相关列表、详情、表单、审批、消息、异常、审计和报表页面 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:联网后推送到设备中心。 | 按《系统功能-人力-PRD完善方案》补齐联网后推送到设备中心。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。 | 联网后推送到设备中心。相关列表、详情、表单、审批、消息、异常、审计和报表页面 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
10A · 人力 Excel 反补
系统功能-人力 Excel 缺失项落地要求
本章节从完善方案自动生成,作为各模块 PRD 的正式补充范围,后续原型、接口、数据库和测试均需按此执行。06-智能考勤设备中心详细 PRD
需要补齐的功能
学生人脸考勤设备逻辑已经比较明确,但员工考勤 Excel 中出现了“接口断开、设备离线、本地缓存、恢复同步”等逻辑。该能力需要在设备中心补充为通用设备能力,避免只服务学生消课场景。
需要补充:
- 设备事件类型区分:学生上课考勤、员工上下班考勤。
- 设备心跳。
- 设备离线缓存。
- 恢复联网后批量补传。
- 同步失败日志。
- 人工重试。
- 设备事件去重。
需要补齐的闭环
- 员工打卡设备采集打卡事件。
- 离线时本地缓存。
- 联网后推送到设备中心。
- 设备中心区分员工考勤事件。
- HR 考勤模块生成员工考勤结果。
- 考勤结果进入薪酬工资因子。
技术方案
补充对象:
DeviceAttendanceEventDeviceOfflineCacheBatchDeviceSyncRetryTask
补充字段:
attendance_subject_type:student、employeedevice_event_iddevice_local_timesync_statusretry_count
补充接口:
POST /api/v1/devices/attendance-eventsPOST /api/v1/devices/offline-batchesPOST /api/v1/devices/sync-retry
本模块缺失项覆盖矩阵
| 缺失清单来源 | 缺失逻辑 | 已补入模块/章节 | 覆盖状态 |
|---|---|---|---|
| 考勤 R135 | 设备离线、本地缓存、恢复同步、失败重试 | 06 智能考勤设备、13 考勤规则 | 已覆盖 |
| 考勤 R142 | 打卡区域白名单、区域外异常 | 13 考勤规则、06 设备事件 | 已覆盖 |
11 · 数据对象与字段字典
明确页面、接口、数据库共同使用的数据语言
字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。核心对象
| 对象 | 说明 |
|---|---|
| FaceDevice | 人脸识别考勤设备;落地表:dev_face_device |
| FacePerson | 人脸人员库;落地表:dev_face_person |
| FaceDispatchTask | 人脸下发任务;落地表:dev_face_dispatch_task |
| FacePhotoSyncTask | 证件照更新同步任务;落地表:dev_face_photo_sync_task |
| FaceClearanceTask | 课时耗尽人脸清除任务;落地表:dev_face_clearance_task |
| FaceAttendanceEvent | 人脸识别回传事件;落地表:dev_face_event |
关联引用对象
| 对象 | 说明 |
|---|---|
| Organization | 集团、区域、校区、部门组织树;引用来源:FND / sys_organization |
| User/Employee | 统一登录账号;引用来源:FND / sys_user |
| Employee | 员工基础档案;引用来源:FND / sys_employee |
| Role | 角色定义;引用来源:FND / sys_role |
| ApprovalFlow | 审批流配置;引用来源:FND / sys_approval_flow |
| MessageTemplate | 消息模板与多端触达配置;引用来源:FND / sys_message_template |
| AuditLog | 全平台操作审计日志;引用来源:FND / sys_audit_log |
| IntegrationLog | 接口调用日志;引用来源:OPEN / int_integration_log |
| SensitiveFieldPolicy | 敏感字段脱敏策略;引用来源:SEC / sec_sensitive_field_policy |
| Student | 学员基础档案;引用来源:CRM / stu_student |
| Classroom | 校区教室档案与教学空间资源;引用来源:EDU / edu_classroom |
| Schedule/Lesson | 课次和排课;引用来源:EDU / edu_lesson |
| Attendance | 上课签到记录;引用来源:EDU / edu_attendance |
| Consumption | 课消记录;引用来源:EDU / edu_consumption |
| Asset | 固定资产台账;引用来源:MAT / mat_asset |
| AssetLifecycle/Maintenance | 资产维修与生命周期;引用来源:MAT / mat_maintenance_order |
完整字段字典
| 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|
| FaceDevice | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| FaceDevice | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| FaceDevice | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| FaceDevice | campus_id | BIGINT | 是 | 所属校区,跨校区或总部级数据为空;本表业务要求必填 | 普通 |
| FaceDevice | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| FaceDevice | created_at | DATETIME | 是 | 创建时间 | 普通 |
| FaceDevice | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| FaceDevice | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| FaceDevice | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| FaceDevice | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| FaceDevice | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| FaceDevice | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| FaceDevice | device_code | VARCHAR(64) | 是 | 设备编码,唯一 | 普通 |
| FaceDevice | vendor_code | VARCHAR(32) | 是 | 设备品牌/厂商 | 普通 |
| FaceDevice | device_name | VARCHAR(128) | 是 | 设备名称 | 普通 |
| FaceDevice | classroom_id | BIGINT | 是 | 绑定教室 ID,必须属于同一校区且教室未逻辑删除 | 普通 |
| FaceDevice | api_endpoint | VARCHAR(512) | 否 | 设备或平台 API 地址 | 普通 |
| FaceDevice | device_status | VARCHAR(32) | 是 | 在线/离线/停用/异常 | 普通 |
| FacePerson | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| FacePerson | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| FacePerson | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| FacePerson | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| FacePerson | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| FacePerson | created_at | DATETIME | 是 | 创建时间 | 普通 |
| FacePerson | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| FacePerson | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| FacePerson | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| FacePerson | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| FacePerson | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| FacePerson | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| FacePerson | person_no | VARCHAR(64) | 是 | 人员编号,唯一 | 普通 |
| FacePerson | person_type | VARCHAR(32) | 是 | 学员/教师/员工 | 普通 |
| FacePerson | person_id | BIGINT | 是 | 业务人员 ID | 普通 |
| FacePerson | photo_file_id | BIGINT | 是 | 人脸照片文件 ID | 高敏 |
| FacePerson | photo_version | INT | 是 | 证件照版本号,照片更新后递增 | 普通 |
| FacePerson | source_terminal | VARCHAR(32) | 是 | 照片来源终端:教师端/家长端/学员端/后台 | 普通 |
| FacePerson | source_uploaded_at | DATETIME | 是 | 来源照片上传时间 | 普通 |
| FacePerson | valid_until | DATETIME | 否 | 设备侧人员照片业务有效期 | 普通 |
| FacePerson | sync_status | VARCHAR(32) | 是 | 未同步/待下发/已下发/待更新/待清除/已清除/失败 | 普通 |
| FaceDispatchTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| FaceDispatchTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| FaceDispatchTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| FaceDispatchTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| FaceDispatchTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| FaceDispatchTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| FaceDispatchTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| FaceDispatchTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| FaceDispatchTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| FaceDispatchTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| FaceDispatchTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| FaceDispatchTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| FaceDispatchTask | task_no | VARCHAR(64) | 是 | 任务编号,唯一 | 普通 |
| FaceDispatchTask | device_id | BIGINT | 是 | 设备 ID | 普通 |
| FaceDispatchTask | person_id | BIGINT | 是 | 人员库 ID | 普通 |
| FaceDispatchTask | action_type | VARCHAR(32) | 是 | 新增/更新/清除/重试 | 普通 |
| FaceDispatchTask | request_payload | JSON | 是 | 下发请求 | 普通 |
| FaceDispatchTask | response_payload | JSON | 否 | 设备响应 | 普通 |
| FaceDispatchTask | task_status | VARCHAR(32) | 是 | 待执行/成功/失败/重试中/设备离线待重试 | 普通 |
| FacePhotoSyncTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| FacePhotoSyncTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| FacePhotoSyncTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| FacePhotoSyncTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| FacePhotoSyncTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| FacePhotoSyncTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| FacePhotoSyncTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| FacePhotoSyncTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| FacePhotoSyncTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| FacePhotoSyncTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| FacePhotoSyncTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| FacePhotoSyncTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| FacePhotoSyncTask | sync_no | VARCHAR(64) | 是 | 同步任务编号,唯一 | 普通 |
| FacePhotoSyncTask | student_id | BIGINT | 是 | 学员 ID | 普通 |
| FacePhotoSyncTask | photo_file_id | BIGINT | 是 | 最新证件照文件 ID | 高敏 |
| FacePhotoSyncTask | photo_version | INT | 是 | 照片版本号 | 普通 |
| FacePhotoSyncTask | source_terminal | VARCHAR(32) | 是 | 教师端/家长端/学员端/后台 | 普通 |
| FacePhotoSyncTask | course_scope | JSON | 是 | 学员关联课程与班级范围快照 | 普通 |
| FacePhotoSyncTask | target_device_scope | JSON | 是 | 由课程教室推导出的人脸设备范围 | 普通 |
| FacePhotoSyncTask | sync_status | VARCHAR(32) | 是 | 待解析/待下发/部分成功/成功/失败/设备离线待重试 | 普通 |
| FaceClearanceTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| FaceClearanceTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| FaceClearanceTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| FaceClearanceTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| FaceClearanceTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| FaceClearanceTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| FaceClearanceTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| FaceClearanceTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| FaceClearanceTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| FaceClearanceTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| FaceClearanceTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| FaceClearanceTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| FaceClearanceTask | clearance_no | VARCHAR(64) | 是 | 清除任务编号,唯一 | 普通 |
| FaceClearanceTask | student_id | BIGINT | 是 | 学员 ID | 普通 |
| FaceClearanceTask | person_id | BIGINT | 是 | 人员库 ID | 普通 |
| FaceClearanceTask | trigger_type | VARCHAR(32) | 是 | 课时耗尽/合同到期/权益终止/人工重算 | 普通 |
| FaceClearanceTask | remaining_hours_snapshot | DECIMAL(8,2) | 是 | 触发时剩余课时快照 | 普通 |
| FaceClearanceTask | target_device_scope | JSON | 是 | 需要清除的人脸设备范围 | 普通 |
| FaceClearanceTask | clearance_status | VARCHAR(32) | 是 | 待清除/清除中/部分成功/成功/失败/设备离线待重试 | 普通 |
| FaceClearanceTask | triggered_at | DATETIME | 是 | 触发时间 | 普通 |
| FaceAttendanceEvent | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| FaceAttendanceEvent | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| FaceAttendanceEvent | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| FaceAttendanceEvent | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| FaceAttendanceEvent | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| FaceAttendanceEvent | created_at | DATETIME | 是 | 创建时间 | 普通 |
| FaceAttendanceEvent | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| FaceAttendanceEvent | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| FaceAttendanceEvent | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| FaceAttendanceEvent | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| FaceAttendanceEvent | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| FaceAttendanceEvent | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| FaceAttendanceEvent | device_id | BIGINT | 是 | 设备 ID | 普通 |
| FaceAttendanceEvent | device_event_id | VARCHAR(128) | 是 | 设备侧事件号 | 普通 |
| FaceAttendanceEvent | person_id | BIGINT | 否 | 匹配人员 ID | 普通 |
| FaceAttendanceEvent | lesson_id | BIGINT | 否 | 匹配课次 ID | 普通 |
| FaceAttendanceEvent | event_time | DATETIME | 是 | 识别时间 | 普通 |
| FaceAttendanceEvent | confidence | DECIMAL(8,4) | 是 | 识别置信度 | 普通 |
| FaceAttendanceEvent | match_status | VARCHAR(32) | 是 | 已匹配/低置信/未匹配/重复 | 普通 |
| FaceAttendanceEvent | rights_check_status | VARCHAR(32) | 是 | 通过/无有效权益/课时不足/合同到期 | 普通 |
| FaceAttendanceEvent | consume_result | VARCHAR(32) | 是 | 未处理/已课消/不可课消/待人工确认 | 普通 |
| FaceAttendanceEvent | error_code | VARCHAR(64) | 否 | 不可课消错误码 | 普通 |
| FaceAttendanceEvent | error_message | VARCHAR(255) | 否 | 不可课消提示文案 | 普通 |
| FaceAttendanceEvent | upload_mode | VARCHAR(32) | 是 | 实时上传/离线补传 | 普通 |
| FaceAttendanceEvent | device_cached_at | DATETIME | 否 | 设备离线缓存时间 | 普通 |
| FaceAttendanceEvent | raw_payload | JSON | 是 | 设备原始报文 | 敏感 |
引用对象字段字典
| 引用表 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| sys_organization | Organization | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_organization | Organization | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_organization | Organization | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_organization | Organization | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_organization | Organization | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_organization | Organization | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_organization | Organization | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_organization | Organization | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_organization | Organization | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_organization | Organization | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_organization | Organization | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_organization | Organization | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_organization | Organization | org_code | VARCHAR(64) | 是 | 组织编码,租户内唯一 | 普通 |
| sys_organization | Organization | org_name | VARCHAR(128) | 是 | 组织名称 | 普通 |
| sys_organization | Organization | org_type | VARCHAR(32) | 是 | 集团/区域/校区/部门/法人主体 | 普通 |
| sys_organization | Organization | parent_id | BIGINT | 否 | 上级组织 ID,根节点为空 | 普通 |
| sys_organization | Organization | sort_no | INT | 否 | 同级排序 | 普通 |
| sys_organization | Organization | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_user | User/Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_user | User/Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_user | User/Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_user | User/Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_user | User/Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_user | User/Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_user | User/Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_user | User/Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_user | User/Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_user | User/Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_user | User/Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_user | User/Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_user | User/Employee | user_no | VARCHAR(64) | 是 | 账号编号,唯一 | 普通 |
| sys_user | User/Employee | login_name | VARCHAR(64) | 是 | 登录名,唯一 | 普通 |
| sys_user | User/Employee | mobile | VARCHAR(32) | 否 | 手机号,敏感脱敏展示 | 敏感 |
| sys_user | User/Employee | password_hash | VARCHAR(255) | 否 | 密码哈希,禁止前端返回 | 高敏 |
| sys_user | User/Employee | user_type | VARCHAR(32) | 是 | 员工/学员/家长/外部账号 | 普通 |
| sys_user | User/Employee | login_status | VARCHAR(32) | 是 | 正常/锁定/停用/待激活 | 普通 |
| sys_employee | Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_employee | Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_employee | Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_employee | Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_employee | Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_employee | Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_employee | Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_employee | Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_employee | Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_employee | Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_employee | Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_employee | Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_employee | Employee | employee_no | VARCHAR(64) | 是 | 工号,唯一 | 普通 |
| sys_employee | Employee | user_id | BIGINT | 否 | 关联账号 ID | 普通 |
| sys_employee | Employee | employee_name | VARCHAR(64) | 是 | 员工姓名 | 普通 |
| sys_employee | Employee | primary_campus_id | BIGINT | 否 | 主校区 ID | 普通 |
| sys_employee | Employee | job_title | VARCHAR(64) | 否 | 岗位名称 | 普通 |
| sys_employee | Employee | hire_status | VARCHAR(32) | 是 | 在职/试用/离职/停用 | 普通 |
| sys_role | Role | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_role | Role | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_role | Role | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_role | Role | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_role | Role | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_role | Role | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_role | Role | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_role | Role | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_role | Role | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_role | Role | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_role | Role | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_role | Role | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_role | Role | role_code | VARCHAR(64) | 是 | 角色编码,唯一 | 普通 |
| sys_role | Role | role_name | VARCHAR(128) | 是 | 角色名称 | 普通 |
| sys_role | Role | role_level | VARCHAR(32) | 是 | 总部/区域/校区/个人 | 普通 |
| sys_role | Role | data_scope_type | VARCHAR(32) | 是 | 数据范围类型 | 普通 |
| sys_role | Role | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_approval_flow | ApprovalFlow | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_approval_flow | ApprovalFlow | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_approval_flow | ApprovalFlow | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_approval_flow | ApprovalFlow | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_approval_flow | ApprovalFlow | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_approval_flow | ApprovalFlow | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_approval_flow | ApprovalFlow | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_code | VARCHAR(64) | 是 | 审批流编码,唯一 | 普通 |
| sys_approval_flow | ApprovalFlow | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_name | VARCHAR(128) | 是 | 审批流名称 | 普通 |
| sys_approval_flow | ApprovalFlow | condition_json | JSON | 否 | 触发条件 | 普通 |
| sys_approval_flow | ApprovalFlow | node_json | JSON | 是 | 节点、审批人和超时规则 | 普通 |
| sys_approval_flow | ApprovalFlow | version_no | INT | 是 | 审批流版本号 | 普通 |
| sys_approval_flow | ApprovalFlow | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_message_template | MessageTemplate | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_message_template | MessageTemplate | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_message_template | MessageTemplate | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_message_template | MessageTemplate | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_message_template | MessageTemplate | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_message_template | MessageTemplate | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_message_template | MessageTemplate | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_message_template | MessageTemplate | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_message_template | MessageTemplate | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_message_template | MessageTemplate | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_message_template | MessageTemplate | template_code | VARCHAR(64) | 是 | 模板编码,唯一 | 普通 |
| sys_message_template | MessageTemplate | template_name | VARCHAR(128) | 是 | 模板名称 | 普通 |
| sys_message_template | MessageTemplate | channel | VARCHAR(32) | 是 | 站内信/短信/微信小程序/企微/Push | 普通 |
| sys_message_template | MessageTemplate | receiver_rule | JSON | 是 | 接收人规则 | 普通 |
| sys_message_template | MessageTemplate | content_template | TEXT | 是 | 模板内容 | 普通 |
| sys_message_template | MessageTemplate | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_audit_log | AuditLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_audit_log | AuditLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_audit_log | AuditLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_audit_log | AuditLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_audit_log | AuditLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_audit_log | AuditLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_audit_log | AuditLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_audit_log | AuditLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_audit_log | AuditLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_audit_log | AuditLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_audit_log | AuditLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_audit_log | AuditLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_audit_log | AuditLog | operator_id | BIGINT | 是 | 操作人 ID | 普通 |
| sys_audit_log | AuditLog | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_audit_log | AuditLog | biz_id | BIGINT | 否 | 业务主键 ID | 普通 |
| sys_audit_log | AuditLog | action_code | VARCHAR(64) | 是 | 操作编码 | 普通 |
| sys_audit_log | AuditLog | before_snapshot | JSON | 否 | 变更前快照 | 普通 |
| sys_audit_log | AuditLog | after_snapshot | JSON | 否 | 变更后快照 | 普通 |
| sys_audit_log | AuditLog | ip_address | VARCHAR(64) | 否 | 操作 IP | 普通 |
| int_integration_log | IntegrationLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| int_integration_log | IntegrationLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| int_integration_log | IntegrationLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| int_integration_log | IntegrationLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| int_integration_log | IntegrationLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| int_integration_log | IntegrationLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| int_integration_log | IntegrationLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| int_integration_log | IntegrationLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| int_integration_log | IntegrationLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| int_integration_log | IntegrationLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| int_integration_log | IntegrationLog | request_id | VARCHAR(128) | 是 | 请求 ID,幂等键 | 普通 |
| int_integration_log | IntegrationLog | system_code | VARCHAR(64) | 是 | 外部系统编码 | 普通 |
| int_integration_log | IntegrationLog | api_path | VARCHAR(512) | 是 | 接口路径 | 普通 |
| int_integration_log | IntegrationLog | biz_type | VARCHAR(64) | 否 | 业务类型 | 普通 |
| int_integration_log | IntegrationLog | biz_id | BIGINT | 否 | 业务 ID | 普通 |
| int_integration_log | IntegrationLog | request_payload | JSON | 否 | 请求报文,敏感字段脱敏 | 敏感 |
| int_integration_log | IntegrationLog | response_payload | JSON | 否 | 响应报文 | 普通 |
| int_integration_log | IntegrationLog | call_status | VARCHAR(32) | 是 | 成功/失败/超时/重试中 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | field_code | VARCHAR(128) | 是 | 字段编码,唯一 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | VARCHAR(64) | 是 | 脱敏规则 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | view_requires_approval | TINYINT | 是 | 明文查看是否需审批 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | watermark_required | TINYINT | 是 | 是否加水印 | 普通 |
| stu_student | Student | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| stu_student | Student | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| stu_student | Student | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| stu_student | Student | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| stu_student | Student | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| stu_student | Student | created_at | DATETIME | 是 | 创建时间 | 普通 |
| stu_student | Student | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| stu_student | Student | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| stu_student | Student | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| stu_student | Student | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| stu_student | Student | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| stu_student | Student | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| stu_student | Student | student_no | VARCHAR(64) | 是 | 学员编号,唯一 | 普通 |
| stu_student | Student | family_id | BIGINT | 否 | 家庭 ID | 普通 |
| stu_student | Student | student_name | VARCHAR(64) | 是 | 学员姓名 | 普通 |
| stu_student | Student | gender | VARCHAR(16) | 否 | 性别 | 普通 |
| stu_student | Student | birthday | DATE | 否 | 出生日期 | 普通 |
| stu_student | Student | grade | VARCHAR(32) | 否 | 年级 | 普通 |
| stu_student | Student | school_name | VARCHAR(128) | 否 | 学校名称 | 普通 |
| stu_student | Student | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| stu_student | Student | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| edu_classroom | Classroom | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_classroom | Classroom | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_classroom | Classroom | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_classroom | Classroom | campus_id | BIGINT | 是 | 所属校区,跨校区或总部级数据为空;本表业务要求必填 | 普通 |
| edu_classroom | Classroom | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_classroom | Classroom | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_classroom | Classroom | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_classroom | Classroom | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_classroom | Classroom | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_classroom | Classroom | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_classroom | Classroom | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_classroom | Classroom | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_classroom | Classroom | classroom_code | VARCHAR(64) | 是 | 教室编码,同一校区内唯一 | 普通 |
| edu_classroom | Classroom | classroom_name | VARCHAR(128) | 是 | 教室名称 | 普通 |
| edu_classroom | Classroom | classroom_type | VARCHAR(32) | 是 | 普通教室/多媒体教室/直播教室/一对一教室/活动教室 | 普通 |
| edu_classroom | Classroom | building_name | VARCHAR(128) | 否 | 楼栋或校区内部区域 | 普通 |
| edu_classroom | Classroom | floor_no | VARCHAR(32) | 否 | 楼层或楼层描述 | 普通 |
| edu_classroom | Classroom | capacity | INT | 是 | 教室容量,必须大于 0 | 普通 |
| edu_classroom | Classroom | equipment_profile | JSON | 否 | 教室内 TV、摄像头、考勤机、音响、白板等设备能力摘要 | 普通 |
| edu_classroom | Classroom | classroom_status | VARCHAR(32) | 是 | 可用/停用/维修中/装修中/已关闭 | 普通 |
| edu_classroom | Classroom | enabled | TINYINT | 是 | 是否启用,停用后禁止新排课 | 普通 |
| edu_lesson | Schedule/Lesson | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_lesson | Schedule/Lesson | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_lesson | Schedule/Lesson | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_lesson | Schedule/Lesson | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_lesson | Schedule/Lesson | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_lesson | Schedule/Lesson | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_lesson | Schedule/Lesson | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_lesson | Schedule/Lesson | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_lesson | Schedule/Lesson | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_lesson | Schedule/Lesson | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_lesson | Schedule/Lesson | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_lesson | Schedule/Lesson | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_lesson | Schedule/Lesson | lesson_no | VARCHAR(64) | 是 | 课次编号,唯一 | 普通 |
| edu_lesson | Schedule/Lesson | class_id | BIGINT | 是 | 班级 ID | 普通 |
| edu_lesson | Schedule/Lesson | teacher_id | BIGINT | 是 | 授课教师 ID | 普通 |
| edu_lesson | Schedule/Lesson | classroom_id | BIGINT | 否 | 教室 ID | 普通 |
| edu_lesson | Schedule/Lesson | start_at | DATETIME | 是 | 上课开始时间 | 普通 |
| edu_lesson | Schedule/Lesson | end_at | DATETIME | 是 | 上课结束时间 | 普通 |
| edu_lesson | Schedule/Lesson | lesson_status | VARCHAR(32) | 是 | 待上课/上课中/已下课/已取消/需补课 | 普通 |
| edu_attendance | Attendance | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_attendance | Attendance | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_attendance | Attendance | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_attendance | Attendance | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_attendance | Attendance | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_attendance | Attendance | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_attendance | Attendance | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_attendance | Attendance | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_attendance | Attendance | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_attendance | Attendance | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_attendance | Attendance | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_attendance | Attendance | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_attendance | Attendance | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| edu_attendance | Attendance | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_attendance | Attendance | checkin_type | VARCHAR(32) | 是 | 人工/人脸/补签/家长确认 | 普通 |
| edu_attendance | Attendance | checkin_at | DATETIME | 否 | 签到时间 | 普通 |
| edu_attendance | Attendance | attendance_status | VARCHAR(32) | 是 | 到课/请假/旷课/迟到/待确认 | 普通 |
| edu_attendance | Attendance | source_event_id | BIGINT | 否 | 来源设备或操作事件 | 普通 |
| edu_consumption | Consumption | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_consumption | Consumption | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_consumption | Consumption | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_consumption | Consumption | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_consumption | Consumption | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_consumption | Consumption | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_consumption | Consumption | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_consumption | Consumption | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_consumption | Consumption | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_consumption | Consumption | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_consumption | Consumption | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_consumption | Consumption | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_consumption | Consumption | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| edu_consumption | Consumption | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_consumption | Consumption | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| edu_consumption | Consumption | consumed_hours | DECIMAL(8,2) | 是 | 消耗课时 | 普通 |
| edu_consumption | Consumption | consume_amount | DECIMAL(18,2) | 否 | 课消金额 | 普通 |
| edu_consumption | Consumption | consume_status | VARCHAR(32) | 是 | 待确认/已课消/已冲销/异常 | 普通 |
| mat_asset | Asset | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_asset | Asset | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_asset | Asset | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_asset | Asset | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_asset | Asset | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_asset | Asset | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_asset | Asset | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_asset | Asset | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_asset | Asset | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_asset | Asset | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_asset | Asset | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_asset | Asset | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_asset | Asset | asset_no | VARCHAR(64) | 是 | 资产编号,唯一 | 普通 |
| mat_asset | Asset | sku_id | BIGINT | 是 | 资产 SKU | 普通 |
| mat_asset | Asset | owner_org_id | BIGINT | 否 | 归属组织 | 普通 |
| mat_asset | Asset | keeper_id | BIGINT | 否 | 保管人 | 普通 |
| mat_asset | Asset | purchase_date | DATE | 否 | 购置日期 | 普通 |
| mat_asset | Asset | asset_status | VARCHAR(32) | 是 | 在用/闲置/维修/报废/调拨中 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | created_at | DATETIME | 是 | 创建时间 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | maintenance_no | VARCHAR(64) | 是 | 维修单编号,唯一 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | asset_id | BIGINT | 是 | 资产 ID | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | fault_desc | VARCHAR(512) | 是 | 故障描述 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | repair_vendor_id | BIGINT | 否 | 维修供应商 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | repair_amount | DECIMAL(18,2) | 否 | 维修金额 | 普通 |
| mat_maintenance_order | AssetLifecycle/Maintenance | maintenance_status | VARCHAR(32) | 是 | 待维修/维修中/已完成/已报废 | 普通 |
JSON 字段结构与校验
| 表名 | 对象 | 字段 | 结构编码 | 结构定义 | 校验规则 | 示例 |
|---|---|---|---|---|---|---|
| dev_face_dispatch_task | FaceDispatchTask | request_payload | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
| dev_face_dispatch_task | FaceDispatchTask | response_payload | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
| dev_face_photo_sync_task | FacePhotoSyncTask | course_scope | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| dev_face_photo_sync_task | FacePhotoSyncTask | target_device_scope | ORG_SCOPE | {scopeType:string, orgIds:number[], campusIds:number[], includeChildren:boolean} | 组织和校区必须在当前租户授权范围内 | {"scopeType":"CAMPUS","campusIds":[101,102],"includeChildren":false} |
| dev_face_clearance_task | FaceClearanceTask | target_device_scope | ORG_SCOPE | {scopeType:string, orgIds:number[], campusIds:number[], includeChildren:boolean} | 组织和校区必须在当前租户授权范围内 | {"scopeType":"CAMPUS","campusIds":[101,102],"includeChildren":false} |
| dev_face_event | FaceAttendanceEvent | raw_payload | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
状态/枚举标准字典
| 表名 | 对象 | 字段 | 枚举编码 | 取值 | 终态/流转规则 | 字段说明 |
|---|---|---|---|---|---|---|
| dev_face_device | FaceDevice | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| dev_face_device | FaceDevice | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| dev_face_device | FaceDevice | vendor_code | VENDOR_CODE | 设备品牌、厂商 | 非终态,可按状态机或字典规则流转 | 设备品牌/厂商 |
| dev_face_device | FaceDevice | device_status | DEVICE_STATUS | ONLINE 在线、OFFLINE 离线、DISABLED 停用、ABNORMAL 异常 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 在线/离线/停用/异常 |
| dev_face_person | FacePerson | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| dev_face_person | FacePerson | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| dev_face_person | FacePerson | person_type | PERSON_TYPE | 学员、教师、员工 | 非终态,可按状态机或字典规则流转 | 学员/教师/员工 |
| dev_face_person | FacePerson | source_terminal | SOURCE_TERMINAL | 教师端、家长端、学员端、后台 | 非终态,可按状态机或字典规则流转 | 照片来源终端:教师端/家长端/学员端/后台 |
| dev_face_person | FacePerson | sync_status | SYNC_STATUS | 未同步、待下发、已下发、待更新、待清除、已清除、失败 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 未同步/待下发/已下发/待更新/待清除/已清除/失败 |
| dev_face_dispatch_task | FaceDispatchTask | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| dev_face_dispatch_task | FaceDispatchTask | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| dev_face_dispatch_task | FaceDispatchTask | action_type | ACTION_TYPE | 新增、更新、清除、重试 | 非终态,可按状态机或字典规则流转 | 新增/更新/清除/重试 |
| dev_face_dispatch_task | FaceDispatchTask | task_status | TASK_STATUS | 待执行、成功、失败、重试中、设备离线待重试 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待执行/成功/失败/重试中/设备离线待重试 |
| dev_face_photo_sync_task | FacePhotoSyncTask | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| dev_face_photo_sync_task | FacePhotoSyncTask | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| dev_face_photo_sync_task | FacePhotoSyncTask | source_terminal | SOURCE_TERMINAL | 教师端、家长端、学员端、后台 | 非终态,可按状态机或字典规则流转 | 教师端/家长端/学员端/后台 |
| dev_face_photo_sync_task | FacePhotoSyncTask | course_scope | COURSE_SCOPE | 按业务字典配置,需在字典中心维护编码、名称、排序、启停和终态标识 | 非终态,可按状态机或字典规则流转 | 学员关联课程与班级范围快照 |
| dev_face_photo_sync_task | FacePhotoSyncTask | target_device_scope | TARGET_DEVICE_SCOPE | 按业务字典配置,需在字典中心维护编码、名称、排序、启停和终态标识 | 非终态,可按状态机或字典规则流转 | 由课程教室推导出的人脸设备范围 |
| dev_face_photo_sync_task | FacePhotoSyncTask | sync_status | SYNC_STATUS | 待解析、待下发、部分成功、成功、失败、设备离线待重试 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待解析/待下发/部分成功/成功/失败/设备离线待重试 |
| dev_face_clearance_task | FaceClearanceTask | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| dev_face_clearance_task | FaceClearanceTask | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| dev_face_clearance_task | FaceClearanceTask | trigger_type | TRIGGER_TYPE | 课时耗尽、合同到期、权益终止、人工重算 | 非终态,可按状态机或字典规则流转 | 课时耗尽/合同到期/权益终止/人工重算 |
| dev_face_clearance_task | FaceClearanceTask | target_device_scope | TARGET_DEVICE_SCOPE | 按业务字典配置,需在字典中心维护编码、名称、排序、启停和终态标识 | 非终态,可按状态机或字典规则流转 | 需要清除的人脸设备范围 |
| dev_face_clearance_task | FaceClearanceTask | clearance_status | CLEARANCE_STATUS | 待清除、清除中、部分成功、成功、失败、设备离线待重试 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待清除/清除中/部分成功/成功/失败/设备离线待重试 |
| dev_face_event | FaceAttendanceEvent | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| dev_face_event | FaceAttendanceEvent | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| dev_face_event | FaceAttendanceEvent | match_status | MATCH_STATUS | 已匹配、低置信、未匹配、重复 | 非终态,可按状态机或字典规则流转 | 已匹配/低置信/未匹配/重复 |
| dev_face_event | FaceAttendanceEvent | rights_check_status | RIGHTS_CHECK_STATUS | 通过、无有效权益、课时不足、合同到期 | 非终态,可按状态机或字典规则流转 | 通过/无有效权益/课时不足/合同到期 |
| dev_face_event | FaceAttendanceEvent | consume_result | CONSUME_RESULT | 未处理、已课消、不可课消、待人工确认 | 非终态,可按状态机或字典规则流转 | 未处理/已课消/不可课消/待人工确认 |
| dev_face_event | FaceAttendanceEvent | upload_mode | UPLOAD_MODE | 实时上传、离线补传 | 非终态,可按状态机或字典规则流转 | 实时上传/离线补传 |
敏感字段与数据安全策略
| 来源 | 表名 | 对象 | 字段 | 数据级别 | 脱敏/返回策略 | 明文查看条件 | 导出策略 | 审计要求 | 端侧展示规则 |
|---|---|---|---|---|---|---|---|---|---|
| 本模块对象 | dev_face_person | FacePerson | photo_file_id | 高敏 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 本模块对象 | dev_face_person | FacePerson | photo_version | 普通 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 本模块对象 | dev_face_person | FacePerson | source_terminal | 普通 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 本模块对象 | dev_face_person | FacePerson | source_uploaded_at | 普通 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 本模块对象 | dev_face_person | FacePerson | valid_until | 普通 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 本模块对象 | dev_face_dispatch_task | FaceDispatchTask | request_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 本模块对象 | dev_face_dispatch_task | FaceDispatchTask | response_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 本模块对象 | dev_face_photo_sync_task | FacePhotoSyncTask | photo_file_id | 高敏 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 本模块对象 | dev_face_photo_sync_task | FacePhotoSyncTask | photo_version | 普通 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 本模块对象 | dev_face_photo_sync_task | FacePhotoSyncTask | target_device_scope | 普通 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 本模块对象 | dev_face_clearance_task | FaceClearanceTask | target_device_scope | 普通 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
| 本模块对象 | dev_face_event | FaceAttendanceEvent | raw_payload | 敏感 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sys_user | User/Employee | mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | sys_user | User/Employee | password_hash | 高敏 | NEVER_RETURN | 禁止接口返回明文;仅密钥中心/鉴权服务按服务身份读取密钥引用 | 禁止导出;配置导出只允许导出脱敏引用和启停状态 | 配置新增、修改、启停、轮换和失败读取均记录安全审计 | 前端只展示已配置/未配置、到期时间和连通性状态,不展示密钥值 |
| 引用对象 | int_integration_log | IntegrationLog | request_payload | 敏感 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | int_integration_log | IntegrationLog | response_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | stu_student | Student | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | edu_attendance | Attendance | checkin_type | 普通 | FACE_IMAGE_PROTECTED | 默认只返回受控文件 ID/缩略图;证件照上传、查看、更新和设备下发需授权和审计 | 禁止常规导出;仅证件照更新、设备下发和合规取证场景允许 | 证件照上传、更新、下发、识别、失败重试全链路留痕 | 未授权端不展示原图;设备端按任务有效期拉取 |
核心数据表完整字段
| 表名 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| dev_face_device | FaceDevice | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| dev_face_device | FaceDevice | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| dev_face_device | FaceDevice | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| dev_face_device | FaceDevice | campus_id | BIGINT | 是 | 所属校区,跨校区或总部级数据为空;本表业务要求必填 | 普通 |
| dev_face_device | FaceDevice | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| dev_face_device | FaceDevice | created_at | DATETIME | 是 | 创建时间 | 普通 |
| dev_face_device | FaceDevice | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| dev_face_device | FaceDevice | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| dev_face_device | FaceDevice | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| dev_face_device | FaceDevice | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| dev_face_device | FaceDevice | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| dev_face_device | FaceDevice | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| dev_face_device | FaceDevice | device_code | VARCHAR(64) | 是 | 设备编码,唯一 | 普通 |
| dev_face_device | FaceDevice | vendor_code | VARCHAR(32) | 是 | 设备品牌/厂商 | 普通 |
| dev_face_device | FaceDevice | device_name | VARCHAR(128) | 是 | 设备名称 | 普通 |
| dev_face_device | FaceDevice | classroom_id | BIGINT | 是 | 绑定教室 ID,必须属于同一校区且教室未逻辑删除 | 普通 |
| dev_face_device | FaceDevice | api_endpoint | VARCHAR(512) | 否 | 设备或平台 API 地址 | 普通 |
| dev_face_device | FaceDevice | device_status | VARCHAR(32) | 是 | 在线/离线/停用/异常 | 普通 |
| dev_face_person | FacePerson | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| dev_face_person | FacePerson | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| dev_face_person | FacePerson | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| dev_face_person | FacePerson | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| dev_face_person | FacePerson | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| dev_face_person | FacePerson | created_at | DATETIME | 是 | 创建时间 | 普通 |
| dev_face_person | FacePerson | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| dev_face_person | FacePerson | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| dev_face_person | FacePerson | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| dev_face_person | FacePerson | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| dev_face_person | FacePerson | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| dev_face_person | FacePerson | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| dev_face_person | FacePerson | person_no | VARCHAR(64) | 是 | 人员编号,唯一 | 普通 |
| dev_face_person | FacePerson | person_type | VARCHAR(32) | 是 | 学员/教师/员工 | 普通 |
| dev_face_person | FacePerson | person_id | BIGINT | 是 | 业务人员 ID | 普通 |
| dev_face_person | FacePerson | photo_file_id | BIGINT | 是 | 人脸照片文件 ID | 高敏 |
| dev_face_person | FacePerson | photo_version | INT | 是 | 证件照版本号,照片更新后递增 | 普通 |
| dev_face_person | FacePerson | source_terminal | VARCHAR(32) | 是 | 照片来源终端:教师端/家长端/学员端/后台 | 普通 |
| dev_face_person | FacePerson | source_uploaded_at | DATETIME | 是 | 来源照片上传时间 | 普通 |
| dev_face_person | FacePerson | valid_until | DATETIME | 否 | 设备侧人员照片业务有效期 | 普通 |
| dev_face_person | FacePerson | sync_status | VARCHAR(32) | 是 | 未同步/待下发/已下发/待更新/待清除/已清除/失败 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | task_no | VARCHAR(64) | 是 | 任务编号,唯一 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | device_id | BIGINT | 是 | 设备 ID | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | person_id | BIGINT | 是 | 人员库 ID | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | action_type | VARCHAR(32) | 是 | 新增/更新/清除/重试 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | request_payload | JSON | 是 | 下发请求 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | response_payload | JSON | 否 | 设备响应 | 普通 |
| dev_face_dispatch_task | FaceDispatchTask | task_status | VARCHAR(32) | 是 | 待执行/成功/失败/重试中/设备离线待重试 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | sync_no | VARCHAR(64) | 是 | 同步任务编号,唯一 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | student_id | BIGINT | 是 | 学员 ID | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | photo_file_id | BIGINT | 是 | 最新证件照文件 ID | 高敏 |
| dev_face_photo_sync_task | FacePhotoSyncTask | photo_version | INT | 是 | 照片版本号 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | source_terminal | VARCHAR(32) | 是 | 教师端/家长端/学员端/后台 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | course_scope | JSON | 是 | 学员关联课程与班级范围快照 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | target_device_scope | JSON | 是 | 由课程教室推导出的人脸设备范围 | 普通 |
| dev_face_photo_sync_task | FacePhotoSyncTask | sync_status | VARCHAR(32) | 是 | 待解析/待下发/部分成功/成功/失败/设备离线待重试 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| dev_face_clearance_task | FaceClearanceTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| dev_face_clearance_task | FaceClearanceTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | clearance_no | VARCHAR(64) | 是 | 清除任务编号,唯一 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | student_id | BIGINT | 是 | 学员 ID | 普通 |
| dev_face_clearance_task | FaceClearanceTask | person_id | BIGINT | 是 | 人员库 ID | 普通 |
| dev_face_clearance_task | FaceClearanceTask | trigger_type | VARCHAR(32) | 是 | 课时耗尽/合同到期/权益终止/人工重算 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | remaining_hours_snapshot | DECIMAL(8,2) | 是 | 触发时剩余课时快照 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | target_device_scope | JSON | 是 | 需要清除的人脸设备范围 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | clearance_status | VARCHAR(32) | 是 | 待清除/清除中/部分成功/成功/失败/设备离线待重试 | 普通 |
| dev_face_clearance_task | FaceClearanceTask | triggered_at | DATETIME | 是 | 触发时间 | 普通 |
| dev_face_event | FaceAttendanceEvent | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| dev_face_event | FaceAttendanceEvent | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| dev_face_event | FaceAttendanceEvent | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| dev_face_event | FaceAttendanceEvent | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| dev_face_event | FaceAttendanceEvent | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | created_at | DATETIME | 是 | 创建时间 | 普通 |
| dev_face_event | FaceAttendanceEvent | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| dev_face_event | FaceAttendanceEvent | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| dev_face_event | FaceAttendanceEvent | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| dev_face_event | FaceAttendanceEvent | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| dev_face_event | FaceAttendanceEvent | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| dev_face_event | FaceAttendanceEvent | device_id | BIGINT | 是 | 设备 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | device_event_id | VARCHAR(128) | 是 | 设备侧事件号 | 普通 |
| dev_face_event | FaceAttendanceEvent | person_id | BIGINT | 否 | 匹配人员 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | lesson_id | BIGINT | 否 | 匹配课次 ID | 普通 |
| dev_face_event | FaceAttendanceEvent | event_time | DATETIME | 是 | 识别时间 | 普通 |
| dev_face_event | FaceAttendanceEvent | confidence | DECIMAL(8,4) | 是 | 识别置信度 | 普通 |
| dev_face_event | FaceAttendanceEvent | match_status | VARCHAR(32) | 是 | 已匹配/低置信/未匹配/重复 | 普通 |
| dev_face_event | FaceAttendanceEvent | rights_check_status | VARCHAR(32) | 是 | 通过/无有效权益/课时不足/合同到期 | 普通 |
| dev_face_event | FaceAttendanceEvent | consume_result | VARCHAR(32) | 是 | 未处理/已课消/不可课消/待人工确认 | 普通 |
| dev_face_event | FaceAttendanceEvent | error_code | VARCHAR(64) | 否 | 不可课消错误码 | 普通 |
| dev_face_event | FaceAttendanceEvent | error_message | VARCHAR(255) | 否 | 不可课消提示文案 | 普通 |
| dev_face_event | FaceAttendanceEvent | upload_mode | VARCHAR(32) | 是 | 实时上传/离线补传 | 普通 |
| dev_face_event | FaceAttendanceEvent | device_cached_at | DATETIME | 否 | 设备离线缓存时间 | 普通 |
| dev_face_event | FaceAttendanceEvent | raw_payload | JSON | 是 | 设备原始报文 | 敏感 |
数据表与对象映射
| 表名 | 对象 | 用途 | 完整字段 | 索引建议 |
|---|---|---|---|---|
| dev_face_device | FaceDevice | 人脸识别考勤设备 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT,必填)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、device_code(VARCHAR(64),必填)、vendor_code(VARCHAR(32),必填)、device_name(VARCHAR(128),必填)、classroom_id(BIGINT,必填)、api_endpoint(VARCHAR(512))、device_status(VARCHAR(32),必填) | uk_device_code、idx_campus_classroom_status |
| dev_face_person | FacePerson | 人脸人员库 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、person_no(VARCHAR(64),必填)、person_type(VARCHAR(32),必填)、person_id(BIGINT,必填)、photo_file_id(BIGINT,必填)、photo_version(INT,必填)、source_terminal(VARCHAR(32),必填)、source_uploaded_at(DATETIME,必填)、valid_until(DATETIME)、sync_status(VARCHAR(32),必填) | uk_person_type_id、idx_sync |
| dev_face_dispatch_task | FaceDispatchTask | 人脸下发任务 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、task_no(VARCHAR(64),必填)、device_id(BIGINT,必填)、person_id(BIGINT,必填)、action_type(VARCHAR(32),必填)、request_payload(JSON,必填)、response_payload(JSON)、task_status(VARCHAR(32),必填) | uk_task_no、idx_device_status |
| dev_face_photo_sync_task | FacePhotoSyncTask | 证件照更新同步任务 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、sync_no(VARCHAR(64),必填)、student_id(BIGINT,必填)、photo_file_id(BIGINT,必填)、photo_version(INT,必填)、source_terminal(VARCHAR(32),必填)、course_scope(JSON,必填)、target_device_scope(JSON,必填)、sync_status(VARCHAR(32),必填) | uk_sync_no、idx_student_status、idx_photo_version |
| dev_face_clearance_task | FaceClearanceTask | 课时耗尽人脸清除任务 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、clearance_no(VARCHAR(64),必填)、student_id(BIGINT,必填)、person_id(BIGINT,必填)、trigger_type(VARCHAR(32),必填)、remaining_hours_snapshot(DECIMAL(8,2),必填)、target_device_scope(JSON,必填)、clearance_status(VARCHAR(32),必填)、triggered_at(DATETIME,必填) | uk_clearance_no、idx_student_status、idx_person_status |
| dev_face_event | FaceAttendanceEvent | 人脸识别回传事件 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、device_id(BIGINT,必填)、device_event_id(VARCHAR(128),必填)、person_id(BIGINT)、lesson_id(BIGINT)、event_time(DATETIME,必填)、confidence(DECIMAL(8,4),必填)、match_status(VARCHAR(32),必填)、rights_check_status(VARCHAR(32),必填)、consume_result(VARCHAR(32),必填)、error_code(VARCHAR(64))、error_message(VARCHAR(255))、upload_mode(VARCHAR(32),必填)、device_cached_at(DATETIME)、raw_payload(JSON,必填) | uk_device_event、idx_lesson_person、idx_event_time |
12 · 状态机与业务规则
约束业务对象如何流转、何时可编辑、何时触发审批
原型需要把状态标签、可操作按钮和禁用原因展示清楚。| 对象 | 状态 | 触发与说明 |
|---|---|---|
| 督课评分 | 待评分 -> 系统初评 -> 待复核 -> 已确认 -> 申诉中 -> 已调整 -> 已归档 | 学生数据采集、教师数据采集、系统评分、督课复核、校长确认和申诉处理 |
| 监管报送 | 待生成 -> 待报送 -> 报送中 -> 成功 -> 失败 -> 待重报 -> 人工处理 | 合同备案、收款、课消、退费报送与回执 |
| 退费单 | 草稿 -> 待学管确认 -> 待校长审批 -> 待财务复核 -> 监管退款中 -> 已退款 -> 已驳回 -> 已取消 | 退费测算、审批、退款回执和凭证冲销 |
| 报销单 | 草稿 -> 待 OCR -> 待核验 -> 待审批 -> 已通过 -> 待付款 -> 已付款 -> 已驳回 -> 已作废 | 员工填单、票据识别、发票核验、查重、审批、付款归档 |
| 工单 | 新建 -> 已分派 -> 处理中 -> 待家长确认 -> 已关闭 -> 已升级 -> 已驳回 | 投诉建议、服务请求、教学反馈和退费咨询 |
| 学习任务 | 未开始 -> 学习中 -> 已提交 -> 已批改 -> 需订正 -> 已完成 -> 已过期 | 资源学习、作业提交、教师批改和进度归档 |
| 员工培训 | 未分配 -> 待学习 -> 学习中 -> 待考试 -> 已通过 -> 未通过 -> 补训中 -> 已逾期 | 培训计划发布、学习进度、考试成绩、补考复训和学习档案归档 |
| 直播房间 | 草稿 -> 待开播 -> 直播中 -> 已结束 -> 回放生成中 -> 可回放 -> 异常 -> 已关闭 | 创建房间、供应商资源申请、教师开播、下课、录制转码、回放发布和异常关闭 |
| 直播录制 | 未录制 -> 录制中 -> 转码中 -> 可回放 -> 转码失败 -> 已过期 -> 已归档 | 供应商录制回调、转码任务、回放发布、留存过期和资料归档 |
| 活动落地页 | 草稿 -> 编辑中 -> 待发布 -> 发布中 -> 已发布 -> 发布失败 -> 已停用 | 选择模板、编辑、发布、生成链接/活码、停用和复盘 |
| 作业草稿 | 无草稿 -> 编辑中 -> 自动保存中 -> 已保存 -> 待提交 -> 已提交 -> 已删除 -> 已过期 -> 冲突待恢复 | 学员进入作业后可自动或手动保存草稿,提交成功后关闭草稿;删除、过期和多端冲突必须可提示、可审计、可恢复到安全状态 |
| 直播连麦请求 | 未举手 -> 已举手排队 -> 教师邀请中 -> 连接中 -> 上麦中 -> 已下麦 -> 已拒绝 -> 已取消 -> 已超时 -> 连接失败 | 学员举手进入队列,教师处理后进入邀请和连接;取消、拒绝、超时、失败、下麦均写入互动事件和连麦请求记录 |
| 直播连麦座席 | 空闲 -> 占用中 -> 静音 -> 下麦中 -> 已释放 -> 异常 | 教师端按座席管理当前上麦人员,人数达到上限后新请求继续排队或提示人数已满 |
| 请假补课 | 草稿 -> 待审批 -> 已同意 -> 已驳回 -> 已取消 -> 补课待安排 -> 补课待确认 -> 补课已预约 -> 已补课 -> 已关闭 | 家长请假、教务审批、课消冻结或回滚、补课安排、家长确认和补课完成 |
| 转班转课 | 待测算 -> 待确认 -> 审批中 -> 补差待收 -> 退差待退 -> 已生效 -> 已驳回 -> 已取消 | 顾问或教务发起,完成权益重算、家长确认、审批、收退差和课表变更 |
| 试听课 | 已预约 -> 已提醒 -> 已到访 -> 已试听 -> 待反馈 -> 已反馈 -> 已转化 -> 未到访 -> 已关闭 | 预约、提醒、到访签到、教师反馈、家长评价、未到访唤醒和转化 |
| 积分兑换售后 | 待处理 -> 积分退回中 -> 库存释放中 -> 已完成 -> 失败待人工 -> 已关闭 | 兑换取消、过期未核销、核销撤销和库存回滚 |
| 电子工资条 | 待生成 -> 待审核 -> 待发布 -> 已发布 -> 员工已查看 -> 异议中 -> 已确认 -> 已归档 | 薪资核算、审批、发布、员工查看确认、异议处理和归档 |
| 补课改期取消 | 已确认 -> 改期申请中 -> 取消申请中 -> 教务处理中 -> 已重新安排 -> 已拒绝 -> 已关闭 -> 待冲正 -> 已冲正 | 家长发起改期或取消,教务处理候选课次和课消冲正,最终回到补课安排或关闭 |
| 回放补传替换 | 录制失败 -> 待补传 -> 审核中 -> 已发布 -> 替换中 -> 已替换 -> 已通知 -> 已驳回 -> 已下架 | 录制失败或回放损坏后人工补传、审核、版本替换、通知和学习记录处理 |
| 工资条撤回重发 | 已发布 -> 撤回中 -> 已撤回 -> 重发待审核 -> 已重发 -> 待重新确认 -> 已确认 -> 已归档 | 工资条发布错误后撤回、重发、员工重新确认和版本留痕 |
| 国税核验配置 | 草稿 -> 启用中 -> 频控中 -> 异常 -> 已停用 -> 已过期 | 校区税务主体、官方接口凭证、额度、启用状态和调用日志 |
| 付款失败补偿 | 付款失败 -> 待重试 -> 重试中 -> 换账户中 -> 撤销审批中 -> 线下付款登记 -> 已补偿 -> 人工关闭 | 报销、采购、退款、工资付款失败后的统一补偿 |
| 课堂端会话 | 待绑定 -> 已绑定 -> 待开课 -> 授课中 -> 暂停中 -> 已结束 -> 异常断开 | 教师或教室设备创建课堂会话,TV 与教师端完成绑定后同步课件、互动和课堂状态;断开后可重连,结束后归档审计。 |
| TV 课件播放 | 未加载 -> 加载中 -> 播放中 -> 暂停 -> 互动展示中 -> 播放失败 -> 已退出 | TV 端接收课堂联动指令,按课件类型播放或展示,失败时回传错误码并提示教师端重试。 |
| 教师端工作台任务 | 待处理 -> 处理中 -> 已完成 -> 已驳回 -> 已超时 -> 已取消 | 课程、批改、审批、培训、报销、工资条和直播任务统一进入工作台待办,并按业务模块回写处理状态。 |
| 员工推广资产 | 待生成 -> 已生成 -> 分享中 -> 已停用 -> 已失效 -> 生成失败 | 员工在教师端领取活动后生成专属短链、二维码和海报,活动停用或超期后资产失效 |
| 员工分享记录 | 已分享 -> 已访问 -> 已扫码 -> 已留资 -> 已生成线索 -> 已预约试听 -> 已签约 -> 已流失 | 外部访问、扫码、留资和转化阶段均回写员工分享记录 |
| 活动大屏指标 | 未配置 -> 已配置 -> 口径校验中 -> 校验通过 -> 校验失败 -> 刷新中 -> 已刷新 -> 部分失败 | 指标按系统实时数据优先刷新,退费、作废和补录撤销需回滚 |
| 大屏补录流水 | 有效 -> 已撤回 -> 已作废 -> 重算中 -> 重算失败 | 补录和撤回均触发指标重算,最近20条流水在后台可快捷查看 |
| 大屏展示组件 | 未配置 -> 已配置 -> 校验通过 -> 校验失败 -> 已停用 | 组件配置控制战区/校区切换、排名维度、显示全部老师、语数英分组和空状态 |
| 片段录制任务 | 待处理 -> 录制中 -> 可下载 -> 失败 -> 已过期 -> 已取消 | 宇视回放下载必须先生成片段录制任务,任务完成后才提供片段回放和下载地址 |
| 拼团活动 | 草稿 -> 待审核 -> 进行中 -> 已成团 -> 成团失败 -> 退款处理中 -> 已结束 -> 已关闭 | 拼团发布、成团、失败退款和线索归因 |
| 快速点名 | 待点名 -> 点名中 -> 已点名 -> 待课消 -> 已课消 -> 课消失败 -> 待人工确认 | 快速点名与考勤课消联动 |
| 课堂报告 | 待生成 -> 生成中 -> 已生成 -> 待发送 -> 已发送 -> 家长已读 -> 已评价 -> 生成失败 | 课后报告生成、触达和评价老师 |
| 相册作品内容 | 草稿 -> 待审核 -> 已发布 -> 已下架 -> 已举报 -> 整改中 -> 已归档 | 班级相册、成长相册、作品展和在校生活内容管理 |
| 总账账套 | 草稿 -> 待初始化 -> 初始化中 -> 已启用 -> 结账中 -> 已停用 -> 异常 | 法人、校区、会计政策、会计日历、账簿和科目体系启停审计 |
| 财务事件 | 待生成 -> 待制证 -> 制证中 -> 已生成凭证 -> 制证失败 -> 待冲正 -> 已冲正 -> 已关闭 | 业务单据生成财务事件、凭证生成、失败重试、冲正和关闭 |
| 网银付款指令 | 待提交 -> 提交中 -> 银行受理 -> 付款成功 -> 付款失败 -> 结果未知 -> 已撤销 | 网上银行和开放银行付款指令、回单归档和失败补偿 |
| 阿米巴报表 | 待取数 -> 计算中 -> 待复核 -> 已发布 -> 规则异常 -> 已归档 | 校区、课程、项目和团队阿米巴经营损益核算 |
| 成本结转 | 待归集 -> 归集中 -> 待分摊 -> 待结转 -> 已结转 -> 结转失败 | 物料、图书、资产、课酬、活动和公共费用成本归集、分摊和结转 |
| 自定义报表 | 草稿 -> 待校验 -> 已发布 -> 刷新中 -> 刷新成功 -> 刷新失败 -> 导出审批中 -> 已停用 | 自定义报表配置、刷新和导出审批 |
| AI 助手任务 | 待执行 -> 执行中 -> 待人工确认 -> 已采纳 -> 已驳回 -> 执行失败 -> 已关闭 | AI 问查做评结果必须支持人工确认和审计 |
| 考勤设备教室绑定 | 未绑定 -> 待校验 -> 已绑定 -> 绑定失败 -> 跨校区拦截 -> 教室停用拦截 -> 换绑中 -> 已停用 | 考勤设备必须绑定指定校区的指定教室,启用前校验教室存在、启用且未逻辑删除 |
| 考勤事件课次匹配 | 待匹配 -> 按教室匹配成功 -> 低置信度 -> 未匹配 -> 跨校区异常 -> 重复事件 -> 人工复核中 -> 已回写考勤 | 识别事件按设备绑定教室、课表时间和学员名单匹配课次 |
智能考勤设备中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
智能考勤设备中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
智能考勤设备中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
智能考勤设备中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
智能考勤设备中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
智能考勤设备中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
13 · 权限、审批与消息
动作权限、数据范围、审批触发和消息触达必须闭环
权限需要覆盖菜单、按钮、字段、接口和导出。动作权限
- 设备建档:需映射菜单、按钮、接口和字段权限
- 绑定教室:需映射菜单、按钮、接口和字段权限
- 换绑教室:需映射菜单、按钮、接口和字段权限
- 证件照更新:需映射菜单、按钮、接口和字段权限
- 目标设备解析:需映射菜单、按钮、接口和字段权限
- 人员照片下发:需映射菜单、按钮、接口和字段权限
- 事件回传:需映射菜单、按钮、接口和字段权限
- 权益校验:需映射菜单、按钮、接口和字段权限
- 课消阻断:需映射菜单、按钮、接口和字段权限
- 人脸自动清除:需映射菜单、按钮、接口和字段权限
- 离线补传:需映射菜单、按钮、接口和字段权限
- 异常确认:需映射菜单、按钮、接口和字段权限
- 设备巡检:需映射菜单、按钮、接口和字段权限
数据范围
- 总部全量
- 区域辖区
- 校区本地
- 部门/岗位
- 本人负责
- 授权班级/学员
审批配置
| 审批名称 | 触发条件 | 流程 | 结果 | 留痕 |
|---|---|---|---|---|
| 退费审批 | 任意退费或转课产生金额冲减 | 学管师确认 -> 校长审批 -> 财务复核 | 通过后进入监管退款,驳回后关闭退费单 | 保留测算明细、附件和退款回执 |
| 报销审批 | 员工提交费用报销或发票查重命中风险 | 员工提交 -> 部门主管 -> 校长/预算负责人 -> 财务复核 | 通过后进入付款,驳回后返回报销人修改 | 保留票据影像、OCR 结果、核验结果、查重结果和审批意见 |
| 账套反结账审批 | 已结账期间需要反结账或更正税务资料 | 校区财务提交 -> 总部财务复核 -> 财务负责人终审 | 通过后解锁期间并记录调整原因 | 保留反结账前后凭证、税表和审批说明 |
| 物料采购审批 | 采购金额超过阈值、跨校区采购或固定资产采购 | 申请人 -> 校区负责人 -> 采购/财务 -> 总部审批 | 通过后生成采购订单和到货验收任务 | 保留预算、供应商、报价和采购合同附件 |
| 固定资产报废审批 | 固定资产、图书或高价值物料需要报废 | 责任人提交 -> 校区负责人 -> 资产管理员 -> 财务复核 | 通过后出库、报废并生成财务核销记录 | 保留照片、盘点记录、处置说明和残值 |
| 转校审批 | 学员权益跨校区转移 | 原校区校长 -> 目标校区校长 -> 财务确认 | 权益和服务归属迁移 | 记录转出转入校区和余额 |
| 督课评分复核 | 教学质量分低于阈值、教师提出申诉或总部抽检命中 | 教研督导 -> 校长/区域教学负责人 -> 总部教研 | 维持评分、调整评分或生成整改复训任务 | 保留评分明细、回放片段、调整原因和复核人 |
| 培训课程发布审批 | 面向全员、跨校区或涉及制度类培训内容 | 人事/教研提交 -> 部门负责人 -> 总部审核 | 发布培训计划或退回修改 | 记录适用岗位、资料版本和考试规则 |
消息模板
| 消息 | 接收人 | 触发 | 渠道 | 变量 |
|---|---|---|---|---|
| 新线索分配提醒 | 课程顾问 | 线索分配成功 | 站内信、App、企微 | 学员姓名、来源渠道、校区、保护期 |
| 试听预约通知 | 家长/教师/顾问 | 试听课预约成功或变更 | 小程序、短信、App | 上课时间、校区、教室、教师 |
| 电子合同待签署 | 家长 | 合同生成后 | 短信、小程序、H5 | 合同名称、金额、签署链接、有效期 |
| 收款成功通知 | 家长/顾问/财务 | 支付成功 | 小程序、站内信 | 订单金额、课程、支付时间 |
| 库存预警 | 库管/校区负责人 | 物料或礼品低于安全库存 | 站内信、App、企微 | SKU、校区、当前库存、安全库存、补货建议 |
| 积分兑换核销通知 | 学员/家长/校区前台 | 兑换成功、即将过期或核销完成 | 小程序、App、站内信 | 礼品名称、兑换码、核销校区、有效期 |
| 到校签到通知 | 家长 | 人脸或人工签到成功 | 小程序、App | 学员姓名、签到时间、校区、课程 |
| 签到异常提醒 | 教务/前台 | 识别未匹配或低置信度 | 站内信、App | 设备、时间、候选学员、置信度 |
14 · 接口与技术细节
接口需支持幂等、权限、审计、重试和回执
每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。| 接口 | 方法 | 方向 | 请求字段 | 响应字段 | 幂等/权限 |
|---|---|---|---|---|---|
| /api/v1/face/devices | POST/GET | PC Web 到设备中心 | deviceCode, vendorCode, deviceName, campusId, classroomId, apiEndpoint, requestId | deviceId, deviceStatus, bindStatus, classroomName | campusId 与 classroomId 必填且必须一致;绑定教室停用或逻辑删除时不可启用 |
| /api/v1/face/devices/{id}/classroom-binding | PATCH | PC Web 到设备中心 | deviceId, campusId, classroomId, bindReason, requestId | bindStatus, oldClassroomId, newClassroomId, auditId | 换绑需校验同校区启用教室;换绑后人员下发范围和课次匹配规则同步刷新 |
| /api/v1/face/student-photos | POST | 教师端/家长端/学员端到设备中心 | studentId, photoFileId, sourceTerminal, uploaderId, requestId | photoVersion, qualityStatus, syncTaskId, nextAction | studentId + photoVersion 幂等;照片更新后自动解析课程、教室和目标设备 |
| /api/v1/face/photo-sync-tasks | GET/POST | 平台到设备中心 | studentId, photoVersion, courseScope, targetDeviceScope, requestId | syncTaskId, targetDevices, dispatchSummary, syncStatus | 按学员有效课程、课程教室、教室设备自动生成目标设备清单 |
| /api/v1/face/persons | POST/PATCH | 平台到设备网关 | personId, studentId, name, photoFileId, photoVersion, campusId, targetDeviceIds | deviceTaskId, dispatchStatus, failedItems | personId + deviceId + photoVersion 幂等;用于新增或更新照片 |
| /api/v1/face/person-clearance-tasks | POST/GET | 平台到设备中心 | studentId, personId, triggerType, remainingHoursSnapshot, targetDeviceScope, requestId | clearanceTaskId, clearanceStatus, targetDevices, dispatchSummary | 课时耗尽/合同到期/权益终止触发;studentId + triggerType + targetDeviceScope 幂等 |
| /api/v1/face/persons/{personId}/clear | POST | 平台到设备网关 | personId, studentId, deviceIds, clearanceTaskId, reason, requestId | deviceTaskId, clearanceStatus, failedItems | 仅由课时耗尽、合同到期或权益终止任务触发;设备离线进入待重试 |
| /api/v1/face/events | POST | 设备到平台 | deviceId, deviceEventId, personId, eventTime, confidence, photoId, uploadMode, deviceCachedAt | attendanceId, matchStatus, rightsCheckStatus, consumeResult, errorCode, errorMessage, matchedClassroomId | deviceId + deviceEventId 去重;先按设备绑定教室匹配课次,再校验权益与剩余课时,课时不足不生成课消 |
| /api/v1/face/devices/{id}/heartbeat | POST | 设备到平台 | deviceId, appVersion, onlineStatus, metrics | serverTime, commands | 设备签名校验 |
| /api/v1/face/offline-events/sync | POST | 设备到平台 | deviceId, offlineBatchNo, events, firstCachedAt, lastCachedAt | acceptedCount, duplicateCount, failedItems, lessonMatchSummary | 离线补传批次幂等;重复事件不重复签到或课消 |
前端约束
- 统一登录态和租户校区上下文
- 列表分页、筛选、排序、列显隐
- 表单本地校验与服务端错误映射
- 移动/平板/TV 按终端适配交互
后端约束
- 领域服务封装业务规则
- 写操作事务一致性
- 关键操作审计快照
- 异步任务失败重试和告警
集成约束
- 第三方接口统一走开放集成中心
- 回执文件归档
- 接口日志可按业务单号追踪
- 密钥和回调地址按环境隔离
15 · 数据库与存储设计
核心表建议、关键字段和索引方向
详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。| 表名 | 用途 | 核心字段 | 索引建议 |
|---|---|---|---|
| dev_face_device | 人脸识别考勤设备 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、device_code、vendor_code、device_name、classroom_id、api_endpoint、device_status | uk_device_code、idx_campus_classroom_status |
| dev_face_person | 人脸人员库 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、person_no、person_type、person_id、photo_file_id、photo_version、source_terminal、source_uploaded_at、valid_until、sync_status | uk_person_type_id、idx_sync |
| dev_face_dispatch_task | 人脸下发任务 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、task_no、device_id、person_id、action_type、request_payload、response_payload、task_status | uk_task_no、idx_device_status |
| dev_face_photo_sync_task | 证件照更新同步任务 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、sync_no、student_id、photo_file_id、photo_version、source_terminal、course_scope、target_device_scope、sync_status | uk_sync_no、idx_student_status、idx_photo_version |
| dev_face_clearance_task | 课时耗尽人脸清除任务 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、clearance_no、student_id、person_id、trigger_type、remaining_hours_snapshot、target_device_scope、clearance_status、triggered_at | uk_clearance_no、idx_student_status、idx_person_status |
| dev_face_event | 人脸识别回传事件 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、device_id、device_event_id、person_id、lesson_id、event_time、confidence、match_status、rights_check_status、consume_result、error_code、error_message、upload_mode、device_cached_at、raw_payload | uk_device_event、idx_lesson_person、idx_event_time |
DDL 草案
dev_face_deviceFaceDevice
CREATE TABLE `dev_face_device` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NOT NULL COMMENT '所属校区,跨校区或总部级数据为空;本表业务要求必填;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`device_code` VARCHAR(64) NOT NULL COMMENT '设备编码,唯一;数据级别:普通',
`vendor_code` VARCHAR(32) NOT NULL COMMENT '设备品牌/厂商;数据级别:普通',
`device_name` VARCHAR(128) NOT NULL COMMENT '设备名称;数据级别:普通',
`classroom_id` BIGINT NOT NULL COMMENT '绑定教室 ID,必须属于同一校区且教室未逻辑删除;数据级别:普通',
`api_endpoint` VARCHAR(512) NULL COMMENT '设备或平台 API 地址;数据级别:普通',
`device_status` VARCHAR(32) NOT NULL COMMENT '在线/离线/停用/异常;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_device_code` (`device_code`),
KEY `idx_campus_classroom_status` (`campus_id`, `classroom_id`, `device_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FaceDevice:人脸识别考勤设备';
dev_face_personFacePerson
CREATE TABLE `dev_face_person` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`person_no` VARCHAR(64) NOT NULL COMMENT '人员编号,唯一;数据级别:普通',
`person_type` VARCHAR(32) NOT NULL COMMENT '学员/教师/员工;数据级别:普通',
`person_id` BIGINT NOT NULL COMMENT '业务人员 ID;数据级别:普通',
`photo_file_id` BIGINT NOT NULL COMMENT '人脸照片文件 ID;数据级别:高敏',
`photo_version` INT NOT NULL COMMENT '证件照版本号,照片更新后递增;数据级别:普通',
`source_terminal` VARCHAR(32) NOT NULL COMMENT '照片来源终端:教师端/家长端/学员端/后台;数据级别:普通',
`source_uploaded_at` DATETIME NOT NULL COMMENT '来源照片上传时间;数据级别:普通',
`valid_until` DATETIME NULL COMMENT '设备侧人员照片业务有效期;数据级别:普通',
`sync_status` VARCHAR(32) NOT NULL COMMENT '未同步/待下发/已下发/待更新/待清除/已清除/失败;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_person_type_id` (`person_no`, `person_type`, `id`),
KEY `idx_sync` (`sync_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FacePerson:人脸人员库';
dev_face_dispatch_taskFaceDispatchTask
CREATE TABLE `dev_face_dispatch_task` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`task_no` VARCHAR(64) NOT NULL COMMENT '任务编号,唯一;数据级别:普通',
`device_id` BIGINT NOT NULL COMMENT '设备 ID;数据级别:普通',
`person_id` BIGINT NOT NULL COMMENT '人员库 ID;数据级别:普通',
`action_type` VARCHAR(32) NOT NULL COMMENT '新增/更新/清除/重试;数据级别:普通',
`request_payload` JSON NOT NULL COMMENT '下发请求;数据级别:普通',
`response_payload` JSON NULL COMMENT '设备响应;数据级别:普通',
`task_status` VARCHAR(32) NOT NULL COMMENT '待执行/成功/失败/重试中/设备离线待重试;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_no` (`task_no`),
KEY `idx_device_status` (`device_id`, `task_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FaceDispatchTask:人脸下发任务';
dev_face_photo_sync_taskFacePhotoSyncTask
CREATE TABLE `dev_face_photo_sync_task` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`sync_no` VARCHAR(64) NOT NULL COMMENT '同步任务编号,唯一;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`photo_file_id` BIGINT NOT NULL COMMENT '最新证件照文件 ID;数据级别:高敏',
`photo_version` INT NOT NULL COMMENT '照片版本号;数据级别:普通',
`source_terminal` VARCHAR(32) NOT NULL COMMENT '教师端/家长端/学员端/后台;数据级别:普通',
`course_scope` JSON NOT NULL COMMENT '学员关联课程与班级范围快照;数据级别:普通',
`target_device_scope` JSON NOT NULL COMMENT '由课程教室推导出的人脸设备范围;数据级别:普通',
`sync_status` VARCHAR(32) NOT NULL COMMENT '待解析/待下发/部分成功/成功/失败/设备离线待重试;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_sync_no` (`sync_no`),
KEY `idx_student_status` (`student_id`, `sync_status`),
KEY `idx_photo_version` (`photo_version`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FacePhotoSyncTask:证件照更新同步任务';
dev_face_clearance_taskFaceClearanceTask
CREATE TABLE `dev_face_clearance_task` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`clearance_no` VARCHAR(64) NOT NULL COMMENT '清除任务编号,唯一;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`person_id` BIGINT NOT NULL COMMENT '人员库 ID;数据级别:普通',
`trigger_type` VARCHAR(32) NOT NULL COMMENT '课时耗尽/合同到期/权益终止/人工重算;数据级别:普通',
`remaining_hours_snapshot` DECIMAL(8,2) NOT NULL COMMENT '触发时剩余课时快照;数据级别:普通',
`target_device_scope` JSON NOT NULL COMMENT '需要清除的人脸设备范围;数据级别:普通',
`clearance_status` VARCHAR(32) NOT NULL COMMENT '待清除/清除中/部分成功/成功/失败/设备离线待重试;数据级别:普通',
`triggered_at` DATETIME NOT NULL COMMENT '触发时间;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_clearance_no` (`clearance_no`),
KEY `idx_student_status` (`student_id`, `clearance_status`),
KEY `idx_person_status` (`person_id`, `clearance_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FaceClearanceTask:课时耗尽人脸清除任务';
dev_face_eventFaceAttendanceEvent
CREATE TABLE `dev_face_event` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`device_id` BIGINT NOT NULL COMMENT '设备 ID;数据级别:普通',
`device_event_id` VARCHAR(128) NOT NULL COMMENT '设备侧事件号;数据级别:普通',
`person_id` BIGINT NULL COMMENT '匹配人员 ID;数据级别:普通',
`lesson_id` BIGINT NULL COMMENT '匹配课次 ID;数据级别:普通',
`event_time` DATETIME NOT NULL COMMENT '识别时间;数据级别:普通',
`confidence` DECIMAL(8,4) NOT NULL COMMENT '识别置信度;数据级别:普通',
`match_status` VARCHAR(32) NOT NULL COMMENT '已匹配/低置信/未匹配/重复;数据级别:普通',
`rights_check_status` VARCHAR(32) NOT NULL COMMENT '通过/无有效权益/课时不足/合同到期;数据级别:普通',
`consume_result` VARCHAR(32) NOT NULL COMMENT '未处理/已课消/不可课消/待人工确认;数据级别:普通',
`error_code` VARCHAR(64) NULL COMMENT '不可课消错误码;数据级别:普通',
`error_message` VARCHAR(255) NULL COMMENT '不可课消提示文案;数据级别:普通',
`upload_mode` VARCHAR(32) NOT NULL COMMENT '实时上传/离线补传;数据级别:普通',
`device_cached_at` DATETIME NULL COMMENT '设备离线缓存时间;数据级别:普通',
`raw_payload` JSON NOT NULL COMMENT '设备原始报文;数据级别:敏感',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_device_event` (`device_id`, `device_event_id`),
KEY `idx_lesson_person` (`lesson_id`, `person_id`),
KEY `idx_event_time` (`event_time`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FaceAttendanceEvent:人脸识别回传事件';
16 · 异常、指标、测试与初始化
保证模块上线后可运营、可追踪、可验收
测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。异常状态
指标埋点
测试用例
| 编号 | 场景 | 前置 | 步骤 | 预期 | 优先级 |
|---|---|---|---|---|---|
| TC-FAC-ROOM-001 | 考勤设备必须绑定指定教室 | 校区下已有启用教室 | 新增人脸考勤设备时不选教室、选择停用教室、选择其他校区教室、选择同校区启用教室分别提交 | 前三种被拦截并给出原因;同校区启用教室可保存并生成设备绑定审计 | 高 |
| TC-FAC-ROOM-002 | 考勤事件按设备教室匹配课次 | 考勤设备已绑定教室且该教室当前有课次 | 模拟设备识别事件回调 | 系统按设备绑定教室、时间窗口、学员名单匹配课次;未匹配或跨校区进入异常队列,不自动课消 | 高 |
| TC-003 | 试听预约和反馈 | 线索已分配并选择体验课 | 预约试听、教师填写反馈 | 客户状态更新,生成报价任务 | 高 |
| TC-005 | 电子合同签署和收款 | 合同模板启用 | 生成合同、家长签署、支付 | 合同已签署、订单已收款、权益生效 | 高 |
| TC-006 | 合同监管备案失败重报 | 监管接口模拟字段失败 | 提交备案后修复字段重报 | 失败回执保留,重报成功 | 高 |
| TC-007 | 入班排课冲突校验 | 教师同时间已有课程 | 为同教师同时间排课 | 系统拦截并提示冲突对象 | 高 |
| TC-008 | 人脸签到自动课消 | 学员已上传证件照、照片已下发到教室考勤设备且课次待签到 | 模拟设备回传识别事件 | 签到成功、课消成功、家长收到通知 | 高 |
| TC-009 | 人脸未匹配异常 | 设备回传未绑定人员 | 提交识别事件 | 进入异常队列,可人工确认或忽略 | 高 |
| TC-011 | 学员端访问授权资源 | 合同权益生效 | 学员登录微信小程序或 App 打开课程资源 | 资源可访问并记录学习进度,家长端仅查看学习报告摘要 | 高 |
| TC-013 | 教师发布作业并批改 | 课次已完成 | 教师发布作业,学员提交,教师批改 | 学员端展示批改结果和成长档案 | 中 |
| TC-015 | 退费审批和监管退款 | 合同有剩余权益 | 提交退费、审批、模拟退款回执 | 退款完成、课时冻结、收入和提成冲回 | 高 |
| TC-016 | 内置凭证入账失败重推 | 科目映射缺失 | 生成凭证失败后补充科目并重推 | 凭证编号回写,失败记录关闭 | 高 |
| TC-FAC-ENH-001 | 设备闭环交付闭环验收 | 设备列表、人员下发、识别流水、考勤异常相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐设备下发回执、低置信度识别、重复识别、人工复核、自动签到和课消联动。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 识别异常可人工确认,确认后同步教务考勤和课消状态。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-002 | 证件照更新同步交付闭环验收 | 证件照更新同步队列、目标设备自动解析、设备回执相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐照片来源、照片版本、质量校验、课程教室设备解析、目标设备清单、下发任务、失败重试和审计。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 学员照片更新后可自动推导目标设备并完成新增或更新下发;不提供家长手动撤回入口,设备侧清除仅由课时耗尽、合同到期或权益终止规则触发。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-003 | 离线补传联动交付闭环验收 | 设备离线打卡补传、识别流水、考勤异常相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐离线缓存、联网补传、事件去重、课次匹配、异常队列、自动签到和自动课消。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 设备恢复联网后离线记录可自动补传,重复事件不会重复签到或重复课消。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-004 | 权益课时校验交付闭环验收 | 权益课时校验异常、识别流水、考勤异常相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐合同权益、剩余课时、课程有效期、可课消状态、错误码、设备提示、异常队列和消息通知。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 课时不足时打卡记录可追踪但不生成课消,设备或后台能明确提示不可课消原因。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-005 | 课时耗尽人脸清除交付闭环验收 | 课时耗尽人脸清除队列、人员下发、设备回执相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐课消后余额复核、课时耗尽触发、人脸清除任务、设备回执、离线重试和人工处理。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 最后一次课消完成后自动清除目标设备上的学员人脸信息,并保留触发原因和回执。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-006 | 运维联动交付闭环验收 | 设备告警、维修工单、资产详情相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐离线告警、维修工单、资产状态、恢复校验和影响课次范围。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 设备恢复后可自动回测签到、直播或录像相关能力。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-007 | 人力 Excel 反补:设备事件类型区分:学生上课考勤、员工上下班考勤。交付闭环验收 | 设备事件类型区分:学生上课考勤、员工上下班考勤。相关列表、详情、表单、审批、消息、异常、审计和报表页面相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按按《系统功能-人力-PRD完善方案》补齐设备事件类型区分:学生上课考勤、员工上下班考勤。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-008 | 人力 Excel 反补:设备离线缓存。交付闭环验收 | 设备离线缓存。相关列表、详情、表单、审批、消息、异常、审计和报表页面相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按按《系统功能-人力-PRD完善方案》补齐设备离线缓存。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-009 | 人力 Excel 反补:恢复联网后批量补传。交付闭环验收 | 恢复联网后批量补传。相关列表、详情、表单、审批、消息、异常、审计和报表页面相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按按《系统功能-人力-PRD完善方案》补齐恢复联网后批量补传。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-010 | 人力 Excel 反补:同步失败日志。交付闭环验收 | 同步失败日志。相关列表、详情、表单、审批、消息、异常、审计和报表页面相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按按《系统功能-人力-PRD完善方案》补齐同步失败日志。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-011 | 人力 Excel 反补:设备事件去重。交付闭环验收 | 设备事件去重。相关列表、详情、表单、审批、消息、异常、审计和报表页面相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按按《系统功能-人力-PRD完善方案》补齐设备事件去重。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-012 | 人力 Excel 反补:员工打卡设备采集打卡事件。交付闭环验收 | 员工打卡设备采集打卡事件。相关列表、详情、表单、审批、消息、异常、审计和报表页面相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按按《系统功能-人力-PRD完善方案》补齐员工打卡设备采集打卡事件。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-013 | 人力 Excel 反补:离线时本地缓存。交付闭环验收 | 离线时本地缓存。相关列表、详情、表单、审批、消息、异常、审计和报表页面相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按按《系统功能-人力-PRD完善方案》补齐离线时本地缓存。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FAC-ENH-014 | 人力 Excel 反补:联网后推送到设备中心。交付闭环验收 | 联网后推送到设备中心。相关列表、详情、表单、审批、消息、异常、审计和报表页面相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按按《系统功能-人力-PRD完善方案》补齐联网后推送到设备中心。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
上线初始化
| 初始化项 | 动作 | 数据 | 验收 |
|---|---|---|---|
| 设备参数 | 登记人脸考勤机设备和校区绑定 | 设备编号、位置、API 密钥、心跳阈值、识别阈值 | 设备心跳正常且可接收人员下发 |
| 巡课设备维修工单规则 | 初始化设备离线告警、派单规则、SLA、恢复校验、升级规则和责任角色 | issueType、ownerRule、sla、recheckRule、escalationRule | 设备离线可形成维修闭环 |
| 教室主数据初始化 | 初始化各校区教室档案、容量、教室类型、楼栋楼层、启用状态和历史教室编码映射 | campusId、classroomCode、classroomName、classroomType、capacity、buildingName、floorNo、classroomStatus | 排课、班级、考勤设备、巡课摄像头和 TV 设备均可引用统一教室主数据 |
| 教室设备绑定初始化 | 梳理一千多台教室摄像头、智能考勤设备、教学 TV 与校区教室的绑定关系 | deviceCode、cameraCode、tvDeviceCode、campusId、classroomId、vendorCode、onlineStatusMapping | 所有设备均能下钻到指定校区和指定教室,未绑定设备进入异常清单 |
| 教室占用规则初始化 | 初始化教室可排课状态、维修不可用时段、冲突校验规则和容量校验规则 | classroomStatusRule、maintenanceWindow、conflictRule、capacityRule | 排课和补课安排可准确拦截教室冲突、停用和容量不足 |
| 组织与校区 | 导入集团、品牌、法人主体、区域、校区、部门、岗位 | 总部组织树、校区编码、法人关系、营业时间 | 组织层级正确且权限可继承 |
| 账号与权限 | 初始化总部、区域、校区、顾问、教务、教师、财务、家长、学员角色 | 账号、角色、菜单、按钮、字段、数据范围 | 测试账号可按角色访问指定页面 |
| 课程与价格 | 导入课程、班型、课包、课时、价格、适用校区 | 课程编码、班型、价格表、有效期、赠课规则 | 报价和合同可正确引用价格 |
| 优惠规则 | 初始化折扣、满减、优惠券、老带新、多科联报和组合包规则 | 规则编码、叠加互斥、适用课程、校区、有效期、审批阈值 | 报价单可正确计算并生成分摊明细 |
| 财务科目 | 配置收款、预收、课消收入、退费、薪资、报销和内置科目映射 | 科目、辅助核算、校区、项目、部门 | 凭证可生成并写入测试账套 |
| 多账套会计 | 按校区初始化独立账套、会计期间、凭证字、科目和税务参数 | 账套编码、法人主体、校区、期间、税种、申报模板 | 校区账套可独立记账,总部可汇总和复核 |
| 监管账户 | 维护资金监管账户和教育局监管平台参数 | 账户编号、校区映射、接口地址、证书、回调 | 合同、收款、课消、退费可报送测试 |
| 设备闭环交付配置 | 初始化补齐设备下发回执、低置信度识别、重复识别、人工复核、自动签到和课消联动。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 设备列表、人员下发、识别流水、考勤异常 | 识别异常可人工确认,确认后同步教务考勤和课消状态。 |
| 证件照更新同步交付配置 | 初始化补齐照片来源、照片版本、质量校验、课程教室设备解析、目标设备清单、下发任务、失败重试和审计。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 证件照更新同步队列、目标设备自动解析、设备回执 | 学员照片更新后可自动推导目标设备并完成新增或更新下发;不提供家长手动撤回入口,设备侧清除仅由课时耗尽、合同到期或权益终止规则触发。 |
| 离线补传联动交付配置 | 初始化补齐离线缓存、联网补传、事件去重、课次匹配、异常队列、自动签到和自动课消。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 设备离线打卡补传、识别流水、考勤异常 | 设备恢复联网后离线记录可自动补传,重复事件不会重复签到或重复课消。 |
| 权益课时校验交付配置 | 初始化补齐合同权益、剩余课时、课程有效期、可课消状态、错误码、设备提示、异常队列和消息通知。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 权益课时校验异常、识别流水、考勤异常 | 课时不足时打卡记录可追踪但不生成课消,设备或后台能明确提示不可课消原因。 |
| 课时耗尽人脸清除交付配置 | 初始化补齐课消后余额复核、课时耗尽触发、人脸清除任务、设备回执、离线重试和人工处理。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 课时耗尽人脸清除队列、人员下发、设备回执 | 最后一次课消完成后自动清除目标设备上的学员人脸信息,并保留触发原因和回执。 |
| 运维联动交付配置 | 初始化补齐离线告警、维修工单、资产状态、恢复校验和影响课次范围。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 设备告警、维修工单、资产详情 | 设备恢复后可自动回测签到、直播或录像相关能力。 |
| 人力 Excel 反补:设备事件类型区分:学生上课考勤、员工上下班考勤。交付配置 | 初始化按《系统功能-人力-PRD完善方案》补齐设备事件类型区分:学生上课考勤、员工上下班考勤。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 设备事件类型区分:学生上课考勤、员工上下班考勤。相关列表、详情、表单、审批、消息、异常、审计和报表页面 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:设备离线缓存。交付配置 | 初始化按《系统功能-人力-PRD完善方案》补齐设备离线缓存。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 设备离线缓存。相关列表、详情、表单、审批、消息、异常、审计和报表页面 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:恢复联网后批量补传。交付配置 | 初始化按《系统功能-人力-PRD完善方案》补齐恢复联网后批量补传。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 恢复联网后批量补传。相关列表、详情、表单、审批、消息、异常、审计和报表页面 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:同步失败日志。交付配置 | 初始化按《系统功能-人力-PRD完善方案》补齐同步失败日志。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 同步失败日志。相关列表、详情、表单、审批、消息、异常、审计和报表页面 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:设备事件去重。交付配置 | 初始化按《系统功能-人力-PRD完善方案》补齐设备事件去重。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 设备事件去重。相关列表、详情、表单、审批、消息、异常、审计和报表页面 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:员工打卡设备采集打卡事件。交付配置 | 初始化按《系统功能-人力-PRD完善方案》补齐员工打卡设备采集打卡事件。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 员工打卡设备采集打卡事件。相关列表、详情、表单、审批、消息、异常、审计和报表页面 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:离线时本地缓存。交付配置 | 初始化按《系统功能-人力-PRD完善方案》补齐离线时本地缓存。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 离线时本地缓存。相关列表、详情、表单、审批、消息、异常、审计和报表页面 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |
| 人力 Excel 反补:联网后推送到设备中心。交付配置 | 初始化按《系统功能-人力-PRD完善方案》补齐联网后推送到设备中心。相关功能、流程、角色终端、数据对象、接口、异常状态和验收口径。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 联网后推送到设备中心。相关列表、详情、表单、审批、消息、异常、审计和报表页面 | 对应模块 PRD 的“人力 Excel 反补”章节、数据字段、接口技术、测试用例和初始化项均可追溯。 |