结束时刻过后不再整天标留宿;请假与假期留宿可同时展示,标签仅显示状态名。 Co-authored-by: Cursor <cursoragent@cursor.com>
73 lines
2.8 KiB
Markdown
73 lines
2.8 KiB
Markdown
# 宿舍点名 · 假期留宿标识说明
|
||
|
||
## 背景
|
||
|
||
宿舍点名原先仅对「当前有效请假」自动标识为请假(状态 `1`,不可修改)。
|
||
已通过审批且仍在留宿日期内的学生,点名界面会误显示为「在寝」。现已补充「假期留宿」标识与独立统计。
|
||
|
||
## 有效留宿判定(后端统一)
|
||
|
||
接口:`getRoomStudents` 在返回学生信息时附加 `leaveInfo` / `holidayStayInfo`(**可同时返回**)。
|
||
|
||
条件(假期留宿):
|
||
|
||
1. `apply_status = '2'`(已通过)
|
||
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`
|
||
|
||
| 值 | 含义 |
|
||
|----|------|
|
||
| 0 | 在寝 |
|
||
| 1 | 请假 |
|
||
| 2 | 不在 |
|
||
| 3 | 空床位 |
|
||
| 4 | 假期留宿 |
|
||
|
||
## 统计字段
|
||
|
||
主表 `xg_dorm_roll_call.holiday_stay_count`:本房间假期留宿人数。
|
||
明细可存 `holiday_stay_id` / `holiday_type` / `holiday_start_date` / `holiday_end_date`。
|
||
|
||
## 交互
|
||
|
||
与请假一致:自动标为假期留宿后**不可修改**。
|
||
|
||
## 库表脚本
|
||
|
||
`backend/script/sql/update/update_20261020_dorm_roll_call_holiday_stay.sql`
|
||
|
||
部署时需先执行该脚本,再发布后端与前端。
|
||
|
||
## 当天点名人数汇总(移动端)
|
||
|
||
接口:`GET /dormRollCall/dormRollCall/todaySummary?buildingId=`(`buildingId` 可选)
|
||
权限:`dormRollCall:dormRollCall:list1`
|
||
|
||
口径(2026-10-21):
|
||
|
||
| 字段 | 含义 |
|
||
|------|------|
|
||
| `totalStudentCount` | 总人数:`xg_dorm_bed_student` 中 status=0 且有床位、有学生的在住人数 |
|
||
| `checkedStudentCount` | 已点名人数:本日各寝室最新点名明细中有学生记录的去重人数 |
|
||
| `leaveCount` / `holidayStayCount` / `absentCount` | 最新明细状态 `1` / `4` / `2`,并返回对应 `*Details` 名单 |
|
||
|
||
范围:
|
||
|
||
- **不传 buildingId**:全校(列表页「今日点名汇总」)
|
||
- **传 buildingId**:指定楼栋(点名选房页红圈统计;请假/留宿/异常可点开本楼名单)
|
||
|
||
移动端刷新:列表页 `onShow`/筛选;选房页加载房间、单间点名提交后刷新本楼汇总。
|
||
|