# 房务改期旧配房人工清理

## 目标前端

- 端类型：管理后台（Web）
- 目标仓库：`mmg/hl-ui`（`https://git.1814.love:8443/mmg/hl-ui.git`）
- 联调/验收环境：`http://192.168.100.160:9527`
- 其他前端：小程序、H5 无需处理

> 服务：`hl-order-service-v3`（8086）
> PR：#5097
> 日期：2026-07-21
> 影响范围：房务订单详情弹窗的改期后旧配房清理和重新配房流程

---

## 关键变化

订单改期后，既有配房不再自动迁移到新日期，也不会自动变为新需求的可确认候选。后端将这些配房标记为待人工删除；房务必须逐条删除旧配房，再按新行程重新提交并确认配房。

当前后端已返回待清理数据和删除接口，但管理后台尚未消费该字段，导致页面无法完成该流程。

---

## 接口清单

| 接口 | 方法 | 路径 | 变更 | 用途 |
|------|------|------|------|------|
| 房务订单详情 | GET | `/admin/house/orders/{orderId}` | 响应新增字段 | 返回改期后待删除旧配房 |
| 删除配房 | DELETE | `/v3/admin/order/assignments/{assignmentId}` | 既有接口 | 删除一条待清理旧配房 |

---

## 房务订单详情

### `GET /admin/house/orders/{orderId}`

响应 `data` 新增 `pendingRescheduleAssignments`：

| 字段 | 类型 | 说明 |
|------|------|------|
| `assignmentId` | String | 待删除配房 ID |
| `originalStayDate` | String | 原入住日期，格式 `yyyy-MM-dd` |
| `hotelId` | String | 原酒店 ID |
| `hotelName` | String | 原酒店名称快照 |
| `roomTypeId` | String | 原房型 ID |
| `roomTypeName` | String | 原房型名称，资源不可用时可为空 |
| `roomCategory` | String | 房型字典 code |
| `roomCategoryLabel` | String | 房型中文 |
| `roomCount` | Integer | 房间数量 |
| `assignmentStage` | String | `UNCONFIRMED`、`DAY_CONFIRMED`、`FINAL_CONFIRMED` |
| `assignmentStageLabel` | String | 未单日确认、单日确认、最终确认 |
| `deleteEndpoint` | String | 本条配房的删除接口 |

无待清理配房时该字段返回空数组。

```json
{
  "code": 0,
  "data": {
    "pendingRescheduleAssignments": [
      {
        "assignmentId": "2079430000000000001",
        "originalStayDate": "2026-07-23",
        "hotelId": "2001",
        "hotelName": "旧日期酒店",
        "roomTypeId": "3001",
        "roomTypeName": "标准大床房",
        "roomCategory": "STANDARD",
        "roomCategoryLabel": "标准间",
        "roomCount": 2,
        "assignmentStage": "DAY_CONFIRMED",
        "assignmentStageLabel": "单日确认",
        "deleteEndpoint": "DELETE /v3/admin/order/assignments/2079430000000000001"
      }
    ]
  }
}
```

---

## 前端处理规则

1. `pendingRescheduleAssignments` 非空时，在房务订单详情中显示“改期前待清理配房”区域，逐条展示原入住日期、酒店、房型、房间数和配房阶段。
2. 每条记录使用其 `deleteEndpoint` 调用删除配房接口；删除成功后重新获取订单详情。
3. 待清理列表非空时，禁用最终确认，并提示“改期前旧日期配房尚未清理，请逐条删除”。
4. 删除完成后，由房务按当前行程重新提交配房候选，再执行单日确认。不得直接对旧配房调用确认接口。
5. `assignmentStage` 仅作展示，不可通过编辑旧配房绕过删除步骤。

---

## 边界行为

- 直接确认旧配房不会产生候选，接口将返回 `808118`“该天无可确认的询房中候选”。
- 旧配房未清理时，最终确认返回 `808183`，不得绕过。
- 删除后重新配房仍沿用现有提交和单日确认接口，无新增请求体字段。

## 不影响范围

- 抢单池、领取、转单和释放流程不变。
- 小程序、H5 无需适配。
- 非改期订单的详情和配房流程不变。

## 相关文档

- PR：[#5097](https://git.1814.love:8443/wx/HL/pulls/5097)
