Files
Wyndham-RSVN-0918/docs/project/integrations/ohip-group-fields-cp20.md
T
2026-09-17 10:13:16 +08:00

45 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GROUP新建字段与酒店餐食边界 CP20
2026-09-16,本地实现;默认Pending未启用。不是GROUP全流程或四流程全部完成。
## 产品规则
用户明确酒店不选择BUALUANG/LEELA,只选择Rate Code。工作台Meal仍可独立选择并保存,接口不猜餐厅字段、breakfast.description或套餐收费。FIT酒店端按最终Rate设置并逐日回查,不再另列“餐厅/Meal未对接”;也不制造“早餐或餐厅已查询”结果。GROUP原流程的Breakfast Included仍按确认布尔值设置并核对。此澄清替代CP1/15/19中“独立酒店餐厅/Meal映射必需”的待办,工作台编辑规则不变。
## 内部实现与字段
`OhipGroupNewBookingConverter`仅从原员工确认及显式环境目录准备一笔postBlock,发送仍需CP12冻结与守卫。`OhipGroupNewBookingReadbackConverter`先检查酒店、实际Block编号、Block Name、完整性及时间,再逐字段输出一致/不一致/缺资料。`OhipGroupNewBooking`为内部结果,不是员工成功响应。
以下相对路径均位于postBlock的`blocks.blockInfo[0].block`,getBlock使用同一内层结构:
| 业务内容 | Oracle字段 |
| --- | --- |
| Tour Code/团名 | `blockDetails.blockName` |
| 入住/离店 | `blockDetails.timeSpan.startDate/endDate` |
| 状态TEN | `blockDetails.blockStatus.bookingStatus.status.code` |
| Reservation Type GC | `blockDetails.reservationType.reservationType` |
| Market/Source | `blockDetails.marketCode.marketCode`/`blockDetails.sourceOfSale.sourceCode.sourceCode` |
| BTQR/THB | `blockDetails.paymentMethod.code`/`blockDetails.currencyCode` |
| Rate Code | `reservationDetails.ratePlanCode[0].ratePlanCode`,唯一主Rate |
| 含早 | `reservationDetails.breakfast.breakfastIncluded` |
| TA recorder | `reservationDetails.taRecordLocator`,最多50字符 |
| Account及固定Contact | `blockProfiles.blockProfile[]`,对应角色、primary及实际Profile ID |
固定值须存在显式映射且不得映射成别的代码。整份住期/全部房型映射预先检查,不先创建后忽略坏房型;不同本地房型映到同一酒店房型会拒绝。日期取最早入住及最晚离店;这只是头住期,间隙和完整每日放量仍另走房量流程。读取显式请求`Block, Profiles, Rates`。单一Rate省略primary可接受;显式false不符合主Rate。多Rate、多同角色Account/Contact、多个Profile ID不任选一条当作完成。
原Prepared保留快照SHA、酒店作用域和请求;不能跨确认重用。实际读取不从原请求补缺值,部分字段不一致仍保留其他字段事实。Header全部一致也不代表房量、附件已处理;`businessComplete`及`executionEnabled`仍false。CP12衔接测试使用真实H2/localhost,创建后重建仓库仅查询原编号,无重复POST;酒店含早变化会在回查中显示false。
## 证据与外部边界
[Oracle26.3 BLK固定契约](https://github.com/oracle/hospitality-api-docs/blob/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/blk.json),SHA256 `9d1ed11e8118963394e6638655983593b0e9a26f3c6223e72ef0d9479677e4ff`。日期format=date但maxLength=8冲突仍明确保留,沿用ISO日期并需Oracle环境验收。
本轮公开无凭据CLI getBlock返回200,目录仍0.6.0,路由`GET /api/v1/blocks/{blockID}`,能力`blocks.read`;未调用酒店业务。候选平台CP13/14/18仍未部署,此观察不代表其能力已在线。
获准只读代理复核Oracle当前main与[RSV契约](https://github.com/oracle/hospitality-api-docs/blob/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/rest-api-specs/property/v1/rsv.json)仍相同:FIT TA搜索`taRecordLocatorList`已证实,post/put/getReservation写读字段尚无明确契约。[Data API](https://github.com/oracle/hospitality-api-docs/blob/dd631fbd5d0fce74a7dbdf96b43f07ce587211f2/graphql/data-apis/BookingsReservation.graphql#L3009)分别定义TA和Custom Reference,不能用后者替代。需技术侧向Oracle取得准确请求/返回JSON路径、示例和fetchInstructions,不需用户重新解释业务。未发送外部消息。
## 验证与后续
新增55项:GROUP转换/回查52、CP12衔接1、草稿餐厅边界1、业务核验边界1;相关236项通过。首次测试编译因两个Readback通配导入重名失败,改显式导入后通过;完整后端verify2313项(2297通过、16条件跳过、零失败错误,229份XML)通过;JVM26.0.2、release17。
下一步连接GROUP新建的房量、整组附件和最终逐项结果,再接GROUP/FIT UPDATE;仍需长阶段执行预算、平台发布/授权、真实MySQL迁移及Oracle测试环境验收。FIT TA契约缺口独立保留。未读取真实凭据/邮件、未写酒店、未部署/重启/提交推送,无新公开接口、数据表、权限、ADR或架构方向变更。