# 接口变更记录 — 2026-04-01 12:43

> **提交** `421ec547` · **作者** wx · **时间** 2026-04-01 12:43:52 +0800
>
> feat: 团队填报改为表单模式——预填/暂存/提交三步流程

## 变更总览

- **订单服务**
  - AdminTeamReport (+3, -1, 名1)

---

## 订单服务

### AdminTeamReport

> 📖 **接口文档**: [http://192.168.100.236:8084/doc.html](http://192.168.100.236:8084/doc.html) → 标签 **「团队填报管理」**

### 🆕 `GET` /admin/team-report/prefill/{orderId} — 预填表单（从订单数据自动填充）

**参数**

  - `{orderId}` (`Long`) — 路径参数：订单ID

**响应** `Result<TeamReportFormDTO>`

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `orderId` | `Long` | 订单ID |
| `agencyCode` | `String` | 旅行社编码 hulai/qianshou/hulai-wenlu |
| `businessType` | `Integer` | 业务类型 2=国内游组团 6=入境接待 7=国内接待 |
| `agencyName` | `String` | 旅行社名称 |
| `agencyLicense` | `String` | 经营许可证号 |
| `itineraryName` | `String` | 线路名称 |
| `teamId` | `String` | 团号 |
| `dateGo` | `String` | 出发日期 yyyy-MM-dd |
| `timeGoHour` | `String` | 出发时间 HH |
| `timeGoMinute` | `String` | 出发时间 mm |
| `dateBack` | `String` | 返回日期 yyyy-MM-dd |
| `timeBackHour` | `String` | 返回时间 HH |
| `timeBackMinute` | `String` | 返回时间 mm |
| `sourceCity` | `String` | 出发城市 |
| `sourceProvince` | `String` | 出发省份 |
| `destinationCity` | `String` | 前往城市 |
| `destinationProvince` | `String` | 前往省份 |
| `itineraryDay` | `Integer` | 天数 |
| `vehicle` | `Integer` | 出发交通 1=飞机 2=火车 3=轮船 4=汽车 5=其它 |
| `vehicleIn` | `Integer` | 返回交通 1=飞机 2=火车 3=轮船 4=汽车 5=其它 |
| `vehicleOutNums` | `String` | 出发班次/车次 |
| `vehicleInNums` | `String` | 返回班次/车次 |
| `nativeTravelAgency` | `String` | 地接社名称 |
| `teamType` | `Integer` | 团队类型 1=自组自接 2=包机 3=专列 4=其他 |
| `peopleNums` | `Integer` | 团队人数 |
| `childNums` | `Integer` | 儿童人数 |
| `journeyDesc` | `String` | 行程总描述 |
| `applicantName` | `String` | 申请人姓名 |
| `applicantPhone` | `String` | 申请人电话 |
| `guides` | `List<GuideInfo>` | 导游列表 |
| `name` | `String` | 导游姓名 |
| `cardId` | `String` | 电子导游证号 |
| `phone` | `String` | 导游电话 |
| `type` | `Integer` | 导游类型 1=全陪 2=地陪 |
| `isLeader` | `Integer` | 是否领队 0=否 1=是 |
| `busInfo` | `List<BusInfo>` | 车队列表 |
| `carId` | `String` | 车牌号 |
| `carComp` | `String` | 所属公司 |
| `driverName` | `String` | 驾驶员姓名 |
| `driverPhone` | `String` | 驾驶员联系电话 |
| `itineraryList` | `List<ItineraryItem>` | 行程列表（按天按站点） |
| `dayNumber` | `Integer` | 第几天 |
| `siteNum` | `Integer` | 当天第几个站点 |
| `date` | `String` | 具体日期 yyyy-MM-dd |
| `city` | `String` | 前往城市 |
| `province` | `String` | 前往省份 |
| `journeyDesc` | `String` | 站点行程描述 |
| `title` | `String` | 站点标题 |
| `isTransit` | `Integer` | 是否过境 0=否 1=是 |
| `touristList` | `List<TouristInfo>` | 游客列表 |
| `name` | `String` | 姓名 |
| `pyFamilyName` | `String` | 姓拼音 |
| `pyGivenName` | `String` | 名拼音 |
| `dateOfBirth` | `String` | 出生日期 yyyy-MM-dd |
| `phoneNum` | `String` | 联系方式 |
| `sex` | `Integer` | 性别 0=男 1=女 |
| `age` | `Integer` | 年龄 |
| `isChild` | `Integer` | 是否儿童 0=否 1=是 |
| `hrProvince` | `String` | 户籍所在省 |
| `cardType` | `Integer` | 证件类型 1=身份证 2=护照 |
| `cardId` | `String` | 证件号码 |
| `cardValidTo` | `String` | 证件有效期至 yyyy-MM-dd |

### 🆕 `POST` /admin/team-report/save — 暂存表单（不提交到12301）

**请求体** `TeamReportFormDTO`

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `orderId` | `Long` | 订单ID |
| `agencyCode` | `String` | 旅行社编码 hulai/qianshou/hulai-wenlu |
| `businessType` | `Integer` | 业务类型 2=国内游组团 6=入境接待 7=国内接待 |
| `agencyName` | `String` | 旅行社名称 |
| `agencyLicense` | `String` | 经营许可证号 |
| `itineraryName` | `String` | 线路名称 |
| `teamId` | `String` | 团号 |
| `dateGo` | `String` | 出发日期 yyyy-MM-dd |
| `timeGoHour` | `String` | 出发时间 HH |
| `timeGoMinute` | `String` | 出发时间 mm |
| `dateBack` | `String` | 返回日期 yyyy-MM-dd |
| `timeBackHour` | `String` | 返回时间 HH |
| `timeBackMinute` | `String` | 返回时间 mm |
| `sourceCity` | `String` | 出发城市 |
| `sourceProvince` | `String` | 出发省份 |
| `destinationCity` | `String` | 前往城市 |
| `destinationProvince` | `String` | 前往省份 |
| `itineraryDay` | `Integer` | 天数 |
| `vehicle` | `Integer` | 出发交通 1=飞机 2=火车 3=轮船 4=汽车 5=其它 |
| `vehicleIn` | `Integer` | 返回交通 1=飞机 2=火车 3=轮船 4=汽车 5=其它 |
| `vehicleOutNums` | `String` | 出发班次/车次 |
| `vehicleInNums` | `String` | 返回班次/车次 |
| `nativeTravelAgency` | `String` | 地接社名称 |
| `teamType` | `Integer` | 团队类型 1=自组自接 2=包机 3=专列 4=其他 |
| `peopleNums` | `Integer` | 团队人数 |
| `childNums` | `Integer` | 儿童人数 |
| `journeyDesc` | `String` | 行程总描述 |
| `applicantName` | `String` | 申请人姓名 |
| `applicantPhone` | `String` | 申请人电话 |
| `guides` | `List<GuideInfo>` | 导游列表 |
| `name` | `String` | 导游姓名 |
| `cardId` | `String` | 电子导游证号 |
| `phone` | `String` | 导游电话 |
| `type` | `Integer` | 导游类型 1=全陪 2=地陪 |
| `isLeader` | `Integer` | 是否领队 0=否 1=是 |
| `busInfo` | `List<BusInfo>` | 车队列表 |
| `carId` | `String` | 车牌号 |
| `carComp` | `String` | 所属公司 |
| `driverName` | `String` | 驾驶员姓名 |
| `driverPhone` | `String` | 驾驶员联系电话 |
| `itineraryList` | `List<ItineraryItem>` | 行程列表（按天按站点） |
| `dayNumber` | `Integer` | 第几天 |
| `siteNum` | `Integer` | 当天第几个站点 |
| `date` | `String` | 具体日期 yyyy-MM-dd |
| `city` | `String` | 前往城市 |
| `province` | `String` | 前往省份 |
| `journeyDesc` | `String` | 站点行程描述 |
| `title` | `String` | 站点标题 |
| `isTransit` | `Integer` | 是否过境 0=否 1=是 |
| `touristList` | `List<TouristInfo>` | 游客列表 |
| `name` | `String` | 姓名 |
| `pyFamilyName` | `String` | 姓拼音 |
| `pyGivenName` | `String` | 名拼音 |
| `dateOfBirth` | `String` | 出生日期 yyyy-MM-dd |
| `phoneNum` | `String` | 联系方式 |
| `sex` | `Integer` | 性别 0=男 1=女 |
| `age` | `Integer` | 年龄 |
| `isChild` | `Integer` | 是否儿童 0=否 1=是 |
| `hrProvince` | `String` | 户籍所在省 |
| `cardType` | `Integer` | 证件类型 1=身份证 2=护照 |
| `cardId` | `String` | 证件号码 |
| `cardValidTo` | `String` | 证件有效期至 yyyy-MM-dd |

**响应** `Result<TeamReportVO>`

### 🆕 `POST` /admin/team-report/submit — 提交到12301平台

**请求体** `TeamReportFormDTO`

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `orderId` | `Long` | 订单ID |
| `agencyCode` | `String` | 旅行社编码 hulai/qianshou/hulai-wenlu |
| `businessType` | `Integer` | 业务类型 2=国内游组团 6=入境接待 7=国内接待 |
| `agencyName` | `String` | 旅行社名称 |
| `agencyLicense` | `String` | 经营许可证号 |
| `itineraryName` | `String` | 线路名称 |
| `teamId` | `String` | 团号 |
| `dateGo` | `String` | 出发日期 yyyy-MM-dd |
| `timeGoHour` | `String` | 出发时间 HH |
| `timeGoMinute` | `String` | 出发时间 mm |
| `dateBack` | `String` | 返回日期 yyyy-MM-dd |
| `timeBackHour` | `String` | 返回时间 HH |
| `timeBackMinute` | `String` | 返回时间 mm |
| `sourceCity` | `String` | 出发城市 |
| `sourceProvince` | `String` | 出发省份 |
| `destinationCity` | `String` | 前往城市 |
| `destinationProvince` | `String` | 前往省份 |
| `itineraryDay` | `Integer` | 天数 |
| `vehicle` | `Integer` | 出发交通 1=飞机 2=火车 3=轮船 4=汽车 5=其它 |
| `vehicleIn` | `Integer` | 返回交通 1=飞机 2=火车 3=轮船 4=汽车 5=其它 |
| `vehicleOutNums` | `String` | 出发班次/车次 |
| `vehicleInNums` | `String` | 返回班次/车次 |
| `nativeTravelAgency` | `String` | 地接社名称 |
| `teamType` | `Integer` | 团队类型 1=自组自接 2=包机 3=专列 4=其他 |
| `peopleNums` | `Integer` | 团队人数 |
| `childNums` | `Integer` | 儿童人数 |
| `journeyDesc` | `String` | 行程总描述 |
| `applicantName` | `String` | 申请人姓名 |
| `applicantPhone` | `String` | 申请人电话 |
| `guides` | `List<GuideInfo>` | 导游列表 |
| `name` | `String` | 导游姓名 |
| `cardId` | `String` | 电子导游证号 |
| `phone` | `String` | 导游电话 |
| `type` | `Integer` | 导游类型 1=全陪 2=地陪 |
| `isLeader` | `Integer` | 是否领队 0=否 1=是 |
| `busInfo` | `List<BusInfo>` | 车队列表 |
| `carId` | `String` | 车牌号 |
| `carComp` | `String` | 所属公司 |
| `driverName` | `String` | 驾驶员姓名 |
| `driverPhone` | `String` | 驾驶员联系电话 |
| `itineraryList` | `List<ItineraryItem>` | 行程列表（按天按站点） |
| `dayNumber` | `Integer` | 第几天 |
| `siteNum` | `Integer` | 当天第几个站点 |
| `date` | `String` | 具体日期 yyyy-MM-dd |
| `city` | `String` | 前往城市 |
| `province` | `String` | 前往省份 |
| `journeyDesc` | `String` | 站点行程描述 |
| `title` | `String` | 站点标题 |
| `isTransit` | `Integer` | 是否过境 0=否 1=是 |
| `touristList` | `List<TouristInfo>` | 游客列表 |
| `name` | `String` | 姓名 |
| `pyFamilyName` | `String` | 姓拼音 |
| `pyGivenName` | `String` | 名拼音 |
| `dateOfBirth` | `String` | 出生日期 yyyy-MM-dd |
| `phoneNum` | `String` | 联系方式 |
| `sex` | `Integer` | 性别 0=男 1=女 |
| `age` | `Integer` | 年龄 |
| `isChild` | `Integer` | 是否儿童 0=否 1=是 |
| `hrProvince` | `String` | 户籍所在省 |
| `cardType` | `Integer` | 证件类型 1=身份证 2=护照 |
| `cardId` | `String` | 证件号码 |
| `cardValidTo` | `String` | 证件有效期至 yyyy-MM-dd |

**响应** `Result<TeamReportVO>`

### ❌ ~~`POST` /admin/team-report/sync — 同步团队信息到监管平台~~

### 接口名称更新

| 方法 | 路径 | 原名称 → 新名称 |
| --- | --- | --- |
| `GET` | `/admin/team-report/{orderId}` | 获取同步记录 → **获取同步记录（含表单数据）** |

---

<details>
<summary>📁 全部变更文件 (点击展开)</summary>

```
M	hl-order-service/src/main/java/com/hulalv/teamreport/builder/TeamReportRequestBuilder.java
M	hl-order-service/src/main/java/com/hulalv/teamreport/controller/AdminTeamReportController.java
A	hl-order-service/src/main/java/com/hulalv/teamreport/dto/TeamReportFormDTO.java
M	hl-order-service/src/main/java/com/hulalv/teamreport/entity/TeamReport.java
M	hl-order-service/src/main/java/com/hulalv/teamreport/service/TeamReportService.java
M	sql/team_report.sql
```
</details>