## 现状与差距
- 已有接口：`GET /api/v1/dashboard/homeroom/current`（角色≥2，受版别限制）。功能包含：
  - 当前时段课程与地点（按登录时间映射节次）
  - 所辖班级今日整体出勤率（present/total）
  - 今日请假列表（time-window 过滤）
  - 部门级近期指示（倒序取前 N 条）
- 待完善：
  - 按“当前节次”统计出勤（而不是全天）
  - 请假与指示的过滤更精确（按系部/班级目标）
  - 响应统一可序列化（去除 `ObjectId` 等）

## 接口与权限
- 路由：`GET /api/v1/dashboard/homeroom/current`
- 依赖：`Depends(require_edition_for_mode())` + `Depends(require_role(2))`
- 当前用户定位班级：`classes.head_teacher_id == current_user._id`

## 数据口径（最终返回）
- `current_lessons`
  - 每个所辖班在当前节次的课程名、地点（从共享节次 `schedules.classes` 中匹配 `class_id`）
- `attendance_rates`
  - 每班“当前节次”的出勤数据：`present/total/rate`（从 `attendance` 以 `lesson_id=W{weekday}-P{period}` 精确统计）
- `leaves`
  - 今日处于有效区间的请假记录（`from_date<=today<=to_date`），返回 `student_id/class_id/reason/status`
- `directives`
  - 部门级指示（可选：按目标包含所辖班级或专业筛选），倒序最近 N 条

## 技术实现
- 服务层（`app/services/dashboard.py`）
  - 统一序列化字典，不返回不可序列化类型
  - 当前节次计算：使用登录时间（小时→节次）
  - 出勤统计粒度：`attendance.count_documents({class_id, date=today, lesson_id=current_lesson_id, status='出勤'})`
- 索引与性能
  - 已有索引：`students.user_id`、`classes.head_teacher_id`、`schedules(classes.class_id, weekday, period)`、`attendance(lesson_id, student_id)`、`leaves(class_id, from_date)`
  - 查询按索引字段过滤，保持 O(logN) 级命中

## 验证方案
- MCP 校验：
  - 按 `head_teacher_id` 列出所辖班；按 `weekday+period` 查当前节次课表；按 `lesson_id+class_id` 统计出勤
- 接口联调：
  - 使用 `manager_edu` 登录，访问 `/dashboard/homeroom/current` 检查四块数据完整性

## 交付步骤
1. 优化 `homeroom_current_summary` 的出勤统计粒度到“当前节次”
2. 指示列表按部门或目标过滤，统一序列化输出
3. 加入最小限度的错误兜底（无所辖班时返回空集合）
4. 通过 MCP 与本地接口联调验证

## 安全与回滚
- 仅读取查询，无数据破坏；若需回滚，保留原全天出勤实现分支

确认后我将立即完善服务实现并复核接口返回，随后重启后端（端口可改回 8000 或继续 8001）进行联调验证。