GaoYiYuan_0626
f056fcd007
基金转换 T+1 模型:T-1~T-6 落地(DDL/数据层/语义收窄/锁/受理事务)
AIcoding 第 5 步 todo 开发(开发计划 v2.0)前半段:
- T-1 3 张新表 DDL(core_convert_request 6 态 ENUM / core_trade_calendar /
core_share_rule)+ 种子 + sqlite 单一事实源同步 + 列清单断言
- T-2/T-2b calc 扩展(product_round/redeem_amount/partial_qty)+ 真实净值实算回填
- T-3 convert_request_repository(6 态 + 条件 UPDATE 守卫)+ core_ro 三读方法
+ share_lot_repository.available_qty_with_inflight(R-3 在途占用推导)
- T-4 convert_repository.sync_mirror 成为 risk_convert_detail 唯一进度镜像写入口
(旧三方法标 Deprecated,T-7 后删)
- T-5 locks.py 锁键构造器 convert_req_lock_key / convert_confirm_lock_key
- T-6 convert_service.accept_convert 受理事务(八步:锁→幂等→校验→受理日顺延
→在途占用校验→落单→镜像+审计→202;不扣份额/不折算/不写流水)
+ tests/test_convert_accept.py(16 用例)
+ scripts/dev/verify_convert_accept.py(真库 36/36 一致)
+ trading_calendar.py 纯函数包(R-5)+ 21 用例
T-6 真库实测暴露并修复:confirm_eta 在日历数据边界抛 ValueError,会让已落库
的受理单在调用方眼里变 500;改为展示性字段容错 + 单测守护。
基线:798 passed / 10 skipped,零回归。