diff --git a/changelogs/2026-04/2026-04-01_1243_421ec547_feat.md b/changelogs/2026-04/2026-04-01_1243_421ec547_feat.md new file mode 100644 index 0000000..ffe0cd1 --- /dev/null +++ b/changelogs/2026-04/2026-04-01_1243_421ec547_feat.md @@ -0,0 +1,256 @@ +# 接口变更记录 — 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` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `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` | 导游列表 | +| `name` | `String` | 导游姓名 | +| `cardId` | `String` | 电子导游证号 | +| `phone` | `String` | 导游电话 | +| `type` | `Integer` | 导游类型 1=全陪 2=地陪 | +| `isLeader` | `Integer` | 是否领队 0=否 1=是 | +| `busInfo` | `List` | 车队列表 | +| `carId` | `String` | 车牌号 | +| `carComp` | `String` | 所属公司 | +| `driverName` | `String` | 驾驶员姓名 | +| `driverPhone` | `String` | 驾驶员联系电话 | +| `itineraryList` | `List` | 行程列表(按天按站点) | +| `dayNumber` | `Integer` | 第几天 | +| `siteNum` | `Integer` | 当天第几个站点 | +| `date` | `String` | 具体日期 yyyy-MM-dd | +| `city` | `String` | 前往城市 | +| `province` | `String` | 前往省份 | +| `journeyDesc` | `String` | 站点行程描述 | +| `title` | `String` | 站点标题 | +| `isTransit` | `Integer` | 是否过境 0=否 1=是 | +| `touristList` | `List` | 游客列表 | +| `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` | 导游列表 | +| `name` | `String` | 导游姓名 | +| `cardId` | `String` | 电子导游证号 | +| `phone` | `String` | 导游电话 | +| `type` | `Integer` | 导游类型 1=全陪 2=地陪 | +| `isLeader` | `Integer` | 是否领队 0=否 1=是 | +| `busInfo` | `List` | 车队列表 | +| `carId` | `String` | 车牌号 | +| `carComp` | `String` | 所属公司 | +| `driverName` | `String` | 驾驶员姓名 | +| `driverPhone` | `String` | 驾驶员联系电话 | +| `itineraryList` | `List` | 行程列表(按天按站点) | +| `dayNumber` | `Integer` | 第几天 | +| `siteNum` | `Integer` | 当天第几个站点 | +| `date` | `String` | 具体日期 yyyy-MM-dd | +| `city` | `String` | 前往城市 | +| `province` | `String` | 前往省份 | +| `journeyDesc` | `String` | 站点行程描述 | +| `title` | `String` | 站点标题 | +| `isTransit` | `Integer` | 是否过境 0=否 1=是 | +| `touristList` | `List` | 游客列表 | +| `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` + +### 🆕 `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` | 导游列表 | +| `name` | `String` | 导游姓名 | +| `cardId` | `String` | 电子导游证号 | +| `phone` | `String` | 导游电话 | +| `type` | `Integer` | 导游类型 1=全陪 2=地陪 | +| `isLeader` | `Integer` | 是否领队 0=否 1=是 | +| `busInfo` | `List` | 车队列表 | +| `carId` | `String` | 车牌号 | +| `carComp` | `String` | 所属公司 | +| `driverName` | `String` | 驾驶员姓名 | +| `driverPhone` | `String` | 驾驶员联系电话 | +| `itineraryList` | `List` | 行程列表(按天按站点) | +| `dayNumber` | `Integer` | 第几天 | +| `siteNum` | `Integer` | 当天第几个站点 | +| `date` | `String` | 具体日期 yyyy-MM-dd | +| `city` | `String` | 前往城市 | +| `province` | `String` | 前往省份 | +| `journeyDesc` | `String` | 站点行程描述 | +| `title` | `String` | 站点标题 | +| `isTransit` | `Integer` | 是否过境 0=否 1=是 | +| `touristList` | `List` | 游客列表 | +| `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` + +### ❌ ~~`POST` /admin/team-report/sync — 同步团队信息到监管平台~~ + +### 接口名称更新 + +| 方法 | 路径 | 原名称 → 新名称 | +| --- | --- | --- | +| `GET` | `/admin/team-report/{orderId}` | 获取同步记录 → **获取同步记录(含表单数据)** | + +--- + +
+📁 全部变更文件 (点击展开) + +``` +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 +``` +
\ No newline at end of file