5.2 KiB
FIT 新建 TA 条件写入:代码与测试交付
2026-09-18 后续更新:用户已授权更新本机服务,原8082及配套模拟接口现已加载并验证。交付的本机包附加类已修正为Java17,当前SHA256见release/manifest.json;普通平台包未安装。7封邮件的前置预订数据仍未装入。详见本机更新证据。
以下为首次代码交付记录,运行状态以页首后续更新为准。2026-09-18。消费端代码已接入现有 postReservation / getReservation,无需平台新增封装;本轮未更新运行服务或操作平台沙箱。写入映射依据官方API结构与数据字典组合推导,TA特殊类型是否落入沙箱页面的输入框尚待用户确认,不能把模拟回显当作页面验收。
当前行为
| 情况 | 请求和完成判断 |
|---|---|
| GROUP NEW | 不发送TA,继续保留Block Name等原字段 |
| FIT NEW有Tour Code | 创建请求发送确认的Tour Code;逐笔回查唯一TA类型且值一致,才授予TA核验通过 |
| FIT NEW无Tour Code | 省略TA字段;不会因缺Tour而阻止新建,不生成TA核验项 |
| UPDATE | 不修改原预订TA;同类型新增房型仍沿用此前不传TA的范围 |
| GROUP→FIT | 实际按FIT NEW创建,使用最终Tour Code规则 |
缺失、空字符串、null、空白Tour均作为无值处理;非空值不自动改写或截断,超过Reservation说明中的50字符限制提前拒绝。Source Code=TA与TA Record Locator无关,保留原值。酒店附件上传仍取消。
请求结构与依据
Edge POST /api/v1/reservations 的原生正文内:
{
"reservations": {
"reservation": [{
"externalReferences": [{
"id": "确认的Tour Code",
"idContext": "TA_RECORD_LOCATOR"
}]
}]
}
}
这里只展示本次增加的字段,其余创建必填内容仍由原转换器构造。无Tour时省略整个externalReferences;不传空数组或空值。不是把 taRecordLocatorList 查询参数塞进创建请求,也不改写成Custom Reference。
Oracle RSV schema提供创建和详情的externalReferences/id/idContext结构;官方数据字典第718页把Travel Agent Locator对应为EXTERNAL_REFERENCE_TYPE=TA_RECORD_LOCATOR。两者组合是本次实现依据,官方公开材料仍没有直接的TA专用REST写入样例。平台公开0.11.0目录本轮再次确认两个操作存在。
实现与验证
新增窄范围TA转换器,实际创建与调用预览共用映射;回查按idContext查找唯一项,不假定第一项,不用其他类型同值替代。缺失、错误、重复类型阻止完整成功;确认值/酒店读回和调用摘要均能显示TA,其他外部参考号仍不进入调用展示。
修正此前隐藏的Tour必填条件及备注来源不能为空条件:仅允许无Tour的FIT NEW,酒店、任务/卡片/确认版本、来源邮件、正文摘要和调用锁仍严格一致;无Tour不能由此绕过UPDATE/附件归属。冻结创建计划使用null安全比较,新版本检查点拒绝旧计划静默续办。GROUP与既有FIT ID定位不改。
- 完整后端2714项:2697通过、17条件跳过、0失败/错误。
- 页面相关42项及类型检查通过;模拟器70项通过。
- 独立47参数场景(45成功、2预期零写拒绝)和3类取消故障符合预期;20笔创建携带TA专用类型,GROUP/UPDATE请求不携带。
- 无Tour的FIT真实Worker/H2/本地HTTP创建链成功;TA不一致时失败且不重复创建;官方固定版本schema切片校验通过。
全部为合成数据,无XML/EML上传。详细证据见记录。
当前运行与用户下一步
当前原本机服务已经完成更新,不需要重复替换程序或重启。7封邮件中的修改/取消/转换需要先准备对应旧预订,再由用户上传及确认;本次只完成服务更新,没有导入这些预订。原本机模拟连接保留;使用平台沙箱的普通配置并未由本轮切换。
原交付包说明:更新包位于 .planning/fit-new-ta-20260918/release/:平台沙箱配置使用 th-hotel-server-0.0.1-SNAPSHOT.jar,原本机模拟装配使用 th-hotel-local-simulation.jar。manifest.json记录SHA256与尚未完成的页面核验。首次交付时仅生成文件;后续本机更新已完成,见页首。
历史安装参考:沿原环境更新步骤使用这个新目录的包;继续使用原本机模拟酒店时,也需由用户更新匹配的模拟服务。不要用旧无TA包验收本次规则,不续办旧版本冻结任务。
服务更新后,以一笔有Tour的FIT新建、一笔无Tour的FIT新建和一笔GROUP新建核对。对有Tour的FIT,需同时查看Stay Details的TA输入框与同笔getReservation结果;若接口返回成功而输入框没有值,本映射不能算完成验收。无需为验证代码额外上传XML。