# 房务日历：新增「已完成」状态点，finalize 完成的团不再误显「进行中」

> 模块：房务管家 · 日历视图（管理后台）
> 类型：后端修复 + 前端对接（日历 statusDots 新增第 5 类取值）
> 日期：2026-06-29
> 关联：PR #4624（已合并 dev-v3 + 部署测试服 + API 实测闭环）

## 背景
房务手测发现：订单详情显示「已完成」的团，在日历视图里却显示「进行中」——口径不一致。
根因：日历此前只有 4 类状态点（异常/待配房/进行中/询房中），缺「已完成」桶；finalize 完成的需求（house_status=CONFIRMED）其配房行 confirm_status 仍是 CONFIRMED，被归进「进行中」。

## 后端改动（已上线测试服）
`GET /admin/house/calendar` 与 `GET /admin/house/calendar/day` 的返回新增「已完成」桶：

1. **statusDots[] 新增第 5 类取值**：
   ```json
   { "status": "confirmed", "label": "已完成", "count": 1, "color": "blue" }
   ```
   - 触发：该团需求 house_status=CONFIRMED（房务已最终回传）
   - 整团（订单维度）覆盖其全部已确认配房行 → 该团所有住宿晚在日历显「已完成」蓝点

2. **summary 新增字段 `confirmed`**（月度摘要「已完成」团数）：
   ```json
   "summary": { "totalNights": 12, "inProgress": 2, "inquiry": 1, "pending": 0, "exception": 0, "confirmed": 2 }
   ```

3. **status 筛选参数**支持 `confirmed`（与原 inProgress/inquiry/pending/exception 并列，逗号多选）。

## 【前端必看】
- 日历状态点渲染若是按 `status` 白名单硬编码的（只认 inProgress/inquiry/pending/exception），**请补 `confirmed` 一类**，否则 finalize 完成的团会从日历消失（比修复前更糟）。
- 推荐做法：直接用接口返回的 `label` + `color` 通用渲染（status 仅作筛选 key），后端已自描述。
- 颜色约定（与文档 §2.6 一致）：异常=red / 待配房=gray / 进行中=green / 询房中=yellow / **已完成=blue（新增）**。

## 口径对齐说明（无需前端处理，仅知悉）
- 「待最终确认」(PENDING_FINALIZE) 在日历仍归「进行中」绿点（wx 拍板保持现状，日历为天级概览，不单列该态）；详情/我的接单/工作台首页仍各自显「待最终确认」。
- 「询房中」(inquiry) 是日历专属细分态（assignment 级有 INQUIRING 行），系统其它视图按 house_status 显「配房中」——文档 §2.6 设计如此，非缺陷。

## 补充（PR #4657，2026-06-29 每日 CR 收口，无需前端处理）
- 后端已把 `DayTourItemVO.status` / `CalendarRespVO.StatusDot.status` 的 swagger `@ApiModelProperty` 枚举描述补上 `confirmed`（此前漏列仅 4 类）。看 knife4j 文档对接的前端现在能看到完整 5 类取值。纯文档/契约描述对齐，响应结构与行为不变，前端行动项同上「前端必看」不变。
