5.4 KiB
CP22 GROUP 修改后台办理
状态:本地实现,验证结果见下方证据;显式装配的候选执行器,默认运行仍为 OhipPendingBookingExecutionAdapter。没有启用真实酒店写入。
产品行为
员工确认一次,系统用 Tour Code 查询唯一实际团队并保存编号。修改前固定原日期、完整房量和可证明属于本业务的旧 Excel;随后更新日期、TA recorder 和完整房型房数,替换全部本次 Excel,最后再查询显示酒店实际结果。旧附件仅按已有调用来源、实际附件编号和内容摘要识别,不按名称猜。
输入是完整最终房量。旧新日期与旧新房型组成完整矩形,未保留的格明确为零;不让旧房型或旧日期残留。UPDATE 不重新写入 Account/Contact、Rate Code、TEN、GC、BTQR、早餐或其他 NEW 默认字段。加床仍不在本范围。
接口及层次
OhipGroupUpdateBookingExecutionAdapter 实现既有后台 Port,无 Spring 注册、无新增公共 API。操作依次使用 searchBlocks/getBlock、getBlockRoomRateGrid、putBlock、putBlockAllocation 及 CP18 附件接口。
OhipGroupUpdateBookingConverter:从原确认映射全部房型,构造仅含实际 Block ID、hotelId、timeSpan、taRecordLocator 的最小修改正文。房型先统一成原生代码,再合并旧范围,拒绝映射碰撞。HotelGroupUpdatePlan/JdbcHotelGroupUpdateRepository/ V50:同一执行行锁内固定原绑定、快照摘要、配置摘要、原日期/房量、CP18计划摘要、两个实际请求摘要。没有原生请求正文、文件字节或密钥。OhipGroupGridReadAdapter:由 CP21 抽取的共同完整查询。所有房型、指定类别、旧新窗口加离店日,分页/重复/四列/范围严格检查;目标格缺失不补零,目标外正房量不忽略。- CP8 增加包内单类别入口,保留原双类别入口的行为;实际
allowPickup必须与显式类别一致,另一类别不被推断为零或改写。 - CP18 沿用先固定整组、全部新文件查证后清理确切旧 ID 的流程。每次附件处理后独立查询日期与房量;附件 VERIFIED 只授予附件完成资格。
准备、恢复与失败
首次绑定通过 worker CAS 保存;不能把内存临时绑定交给附件仓库。后续 PREPARE/RECONCILE 在零调用记录时固定旧资料与附件计划,任何酒店写入都要经过持久请求守卫。首次搜索失败后续办也会在写前完成准备。
每次加载及 reserve 校验酒店、任务、卡片、确认版本、scope key、原快照、进度、revision、租约及实际目标。原附件计划以同一事务内的只读摘要检查,未放宽 CP18 的公开 load 阶段限制。SAVE_ROOMS 必须有已确认的日期修改回执。
写前重新查询原头资料/原房格,发现外部变化停止;后续每次头查询还需保持原状态代码、NonElastic、类别、无 shoulder/catering-only 范围。状态缺失也不能当未变化。
UNKNOWN/DISPATCHED/未确认回执即使 GET 匹配也不升级成功、不重复发送。只有无调用或明确 NOT_SENT,且当前完整查询成功,才允许同一确认、同一键继续。日期/房量/附件各有实际查询项;最终阶段再次核验 DATES、ROOMS、TA_RECORDER、ATTACHMENTS。某项最新查询失败撤销对应通过资格,保留其他独立成功事实。
改日期的原生验收边界
固定 Oracle 26.3 BLK 契约说明 putBlock 修改头资料,房格另调接口;putBlockShift 是独立操作,会平移房量、活动及其他日期。因此没有把 Shift 当普通 Edit 的替代。Oracle 编辑 Block、Oracle Shift。
尚无真实 Oracle 证据保证缩期/移期后允许对旧住期外房格写零,或普通日期编辑对活动的副作用。 构造器强制显式提供 dateChangeSequenceVerified;未验证环境传 false,日期变化会在任何写入前失败 GROUP_UPDATE_DATE_POLICY_UNVERIFIED,日期不变的完整房量修改可继续。该值不能因本地合成测试通过就设 true;启用前需在目标测试酒店验证日期移前/移后/缩短/延长、旧格清零及活动控制边界,必要时改编排。原生日期 format 与 maxLength 的旧矛盾也仍待验收。
验证与剩余工作
H2 和 localhost 测试先跑 CP21 NEW 产生真实本地来源台账,再跑 UPDATE,覆盖完整链、两旧转一新、并发、中断、首次查询失败恢复、状态变化、旧资料变更、固定计划篡改、未知/未发送回执、租约丢失和最终查询失败。所有酒店、姓名、文件均为合成数据;这些测试证明程序和封装协议行为,不证明 Oracle 服务端日期语义。
下一 checkpoint:FIT UPDATE 与实际 Reservation 分配/完整结果、FIT TA recorder 精确 REST 契约;之后环境配置、长阶段预算、候选平台发布、MySQL 迁移和 Oracle UAT。未真实迁移 V50、未启用/重启、未提交推送/部署;不能称四条业务流程已上线完成。