# feat: 团队填报改为表单模式——预填/暂存/提交

- **PR**: #105（基于 #104）
- **服务**: hl-order-service
- **类型**: 接口变更

---

## 接口变更

原来的 `POST /admin/team-report/sync` **废弃**，改为以下3个接口：

### 1. 预填表单（从订单自动填充）

```
GET /admin/team-report/prefill/{orderId}
```

**说明**: 首次调用从订单数据自动填充所有字段；如已有暂存记录，返回上次保存的数据。

**响应**: 返回完整的 `TeamReportFormDTO`，包含以下区块：

| 区块 | 字段 |
|------|------|
| 基础 | orderId, agencyCode, businessType |
| 团队信息 | agencyName, agencyLicense, itineraryName, teamId, dateGo, timeGoHour/Minute, dateBack, timeBackHour/Minute, sourceCity, sourceProvince, destinationCity, destinationProvince, itineraryDay, vehicle, vehicleIn, vehicleOutNums, vehicleInNums, nativeTravelAgency, teamType, peopleNums, childNums, journeyDesc, applicantName, applicantPhone |
| 导游信息 | guides: [{name, cardId, phone, type, isLeader}] |
| 车队信息 | busInfo: [{carId, carComp, driverName, driverPhone}] |
| 行程单 | itineraryList: [{dayNumber, siteNum, date, city, province, journeyDesc, title, isTransit}] |
| 游客名单 | touristList: [{name, pyFamilyName, pyGivenName, dateOfBirth, phoneNum, sex, age, isChild, hrProvince, cardType, cardId, cardValidTo}] |

---

### 2. 暂存表单

```
POST /admin/team-report/save
```

**请求体**: 完整的 `TeamReportFormDTO`（和 prefill 返回结构一致）

**说明**: 保存用户编辑的表单数据，不提交到12301。状态保持 `PENDING`。

---

### 3. 提交到12301

```
POST /admin/team-report/submit
```

**请求体**: 完整的 `TeamReportFormDTO`

**说明**: 保存表单数据并提交到12301平台。成功后状态变为 `SYNCED`。

---

### 保留的接口

| 接口 | 用途 |
|------|------|
| `GET /admin/team-report/{orderId}` | 获取同步记录（含 formData） |
| `GET /admin/team-report/status/{orderId}` | 实时查询12301审核状态 |
| `POST /admin/team-report/cancel` | 取消团队 |

---

## 前端页面对接

参考12301团队信息同步页面，在订单详情新增「同步」tab：

1. 进入页面 → 调用 `GET /admin/team-report/prefill/{orderId}` 获取预填数据
2. 用户可编辑所有字段（旅行社主体radio、业务类型radio、团队信息表单、导游/车队/行程可增删行）
3. 底部两个按钮：
   - **「暂存」** → `POST /admin/team-report/save`
   - **「提交到12301」** → `POST /admin/team-report/submit`
4. 已提交后展示 syncStatus 和 platformStatus

## 枚举值

**businessType**: 2=国内游组团, 6=入境接待, 7=国内接待
**teamType**: 1=自组自接, 2=包机, 3=专列, 4=其他
**vehicle**: 1=飞机, 2=火车, 3=轮船, 4=汽车, 5=其它

## DDL

```sql
ALTER TABLE team_report ADD COLUMN form_data JSON NULL COMMENT '表单数据JSON' AFTER upload_count;
```

## 需重启

- hl-order-service
