Files
Wyndham-RSVN-0918/docs/project/integrations/ohip-fit-update-execution-cp24.md
T
2026-09-17 10:13:16 +08:00

5.1 KiB
Raw Blame History

CP24 FIT修改持久执行

当前结果

将CP23字段准备接到既有后台worker和CP18整组Excel。员工一次确认后,候选执行链可固定实际Reservation全集,逐笔修改日期、房型房数、Rate Code和原业务Note,替换Excel,并查询实际值供既有结果接口回显。仍为未注册的候选执行端口,默认Pending;FIT TA recorder尚无准确REST写读字段,最终保留失败及具体未完成项,不能称真实酒店全流程完成。

固定计划和调用顺序

  1. PREPARE以原确认Tour Code调用既有 searchHotelReservations,完整两轮查询和精确详情核实后,先由worker保存实际父编号集合。
  2. RECONCILE读取原资料、实际旧Note和附件,验证历史来源,再固定CP18附件计划与V51修改计划。在任何更新调用之前完成这一步。
  3. SAVE_DETAILS逐笔一次 putReservation,包含日期、房型房数、Rate及旧Note ID的新文本。每笔发送前再查原值,每笔发送后查询实际结果。
  4. SAVE_ROOMS只重查同一组实际预订,避免把上一步已经写过的房量再写一遍。
  5. SAVE_ATTACHMENTS沿用CP18:逐份上传新Excel并验证,全部新件齐全后精确清理历史旧件;保留无关附件。
  6. VERIFY_FINAL重新查询。其余字段和附件通过时,仍明确返回 FIT_REQUIRED_FIELDS_UNSUPPORTED 和TA未完成项。

房数为传入完整最终结果,当前支持CP23能够唯一对应的一对一Reservation范围;不自动取消、拆分或合并。相同房型一笔3间改2间使用 numberOfUnits=2,不会创建新预订或取消其他预订。Oracle是否接受最小PUT及保留省略字段仍需实际验收。

持久化与发送约束

HotelFitUpdatePlan是workflow内部业务载体;V51保存原确认摘要、实际父绑定、旧业务资料和Note来源匹配、CP23准备摘要、CP18计划摘要及逐笔请求/来源摘要。旧业务资料包含私有Note文本,用于恢复后核对其他备注,不能描述为“只保存哈希”。不保存Oracle原生请求、附件字节、URL或凭据,不对员工API返回该计划。

JdbcHotelFitUpdateRepository在原执行行锁内核对hotel/task/card/version/scope、snapshot/progress、revision、租约Token及精确到期时间;冻结只允许PREPARE/RECONCILE且零调用,所有旧Note证据必须与同酒店、环境、Tour Code和实际父子编号相符。后续恢复按原preparedAt重建请求,逐项比较摘要和来源,不使用新配置重新解释旧期望。

附件仓库增加包内附加守卫,原CP18默认构造器不变。FIT必须使用同一个修改仓库返回的 attachments():在CP18实际发送许可的同一事务内,再查所有更新回执、实际Note子编号以及已成功的资料/房量步骤。HTTP始终位于事务外。

中断和结果

每笔情况 续办处理
无调用或明确NOT_SENT,当前查询的原业务资料仍一致 可以发送尚未完成的原请求
已知读回回执的父编号、Note子编号正确,七项当前查询一致 保留成功,跳过重复PUT
两者混合 只继续明确未发送的部分
已派发/未知/拒绝、回执子编号缺失、当前值不符或查询失败 停止,不根据GET看似相符补认未知调用

每次结果保留逐笔当前查询值与已保存回执;查询失败对应条目标为UNKNOWN、清除旧的通过项。附件处理失败后仍查询资料字段,保留可确认的部分成功;附件确认后还会再次查询资料,避免附件期间的变化被忽略。其他备注变化合并为Note核验未通过,不透出无关备注正文。

同Tour Code上一笔办理未完成时,既有队列仍阻塞后续修改。测试为了建立已结案的历史来源,仅在H2夹具内显式关闭种子NEW,另外测试未关闭时UPDATE始终排队;生产代码没有跳过TA或强制结案的路径。

显式装配与未完成项

构造端口需要原确认映射、已验证附件linkType、同库 JdbcHotelFitUpdateRepository、受控Excel原件端口、HTTP/mapper/clock。updateBehaviorVerified只有获得目标环境证据后才可传true;它与scope/destination/映射/操作和权限集合一并进入固定配置摘要,合成测试中的true不代表Oracle验收。

未验收时在首次保存检查点和绑定之前停止;验收补齐后可以沿同次尚未发送的确认重新准备。已有计划则仍要求配置完全一致,不能因重试重解释旧请求。

  • 已有条目和查询接口复用,无新增前端字段、路由或员工权限。运行注册和开关没有变化。
  • V51及既有候选迁移未执行真实数据库;MySQL行锁/恢复须实际验证。
  • FIT TA读写、原生最小PUT保留语义、日期/3→2行为、已拆分预订的完整数量方案、长阶段预算、平台候选发布/权限/酒店配置及Oracle UAT仍待。
  • 本轮没有操作真实酒店、邮件、凭据、平台代码、部署或提交。

测试和独立补丁见证据。