fix(dorm): 假期留宿按时刻判定,点名可同时显示请假与留宿

结束时刻过后不再整天标留宿;请假与假期留宿可同时展示,标签仅显示状态名。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
“wuzhen”andCursor committed 2026-10-26 09:36:38 +08:00
1 parent df4c21bd0d
commit 845c7fd942
8 files changed
+169 -97

No files matched your search

@@ -7,16 +7,24 @@
## 有效留宿判定(后端统一)
接口:`getRoomStudents` 在返回学生信息时附加 `holidayStayInfo`(有有效请假时不返回,请假优先)。
接口:`getRoomStudents` 在返回学生信息时附加 `leaveInfo` / `holidayStayInfo`(**可同时返回**)。
条件:
条件(假期留宿):
1. `apply_status = '2'`(已通过)
2. 检查日落在 `[apply_start_date, apply_end_date]`(按日期比较,**结束日当天整天有效**)
2. 检查**时刻**落在 `[apply_start_date, apply_end_date]`(按 datetime 比较,与请假一致,含边界)
3. 同一学生多条记录时取最新一条
例:留宿结束为 `2026-10-25 08:00:00`,则 25 日 21 点宿舍点名**不再**显示「假期留宿」,恢复默认「在寝」。
若同一学生当前既有有效请假又有有效假期留宿:点名页**同时展示两个标签**;落库主状态仍为请假(`1`),并同时写入 `leave_*` 与 `holiday_*` 字段;今日汇总两类明细均可计入该生。
假期结束后,接口不再返回 `holidayStayInfo`,前端恢复默认「在寝」可切换。
> **变更说明(2026-10-26)**:
> 1. 原先按「结束日当天整天有效」判定 → 已改为按时刻判定。
> 2. 原先请假优先时不返回假期留宿 → 已改为两者可同时展示。
## 点名状态字典 `xg_dorm_roll_call_status`
| 值 | 含义 |