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,零回归。
Core 模拟库 · 初始化
库名
jinrong_core· 与jinrong_agent同 MySQL 实例 · Agent 只读
一键重置(Windows)
.\scripts\core\reset.ps1
手动顺序
mysql -u root -p < scripts/core/00-create-database.sql
mysql -u root -p < scripts/core/01-ddl.sql
mysql -u root -p < scripts/core/02-seed-base.sql
mysql -u root -p < scripts/core/03-seed-customers.sql
mysql -u root -p < scripts/core/04-seed-holdings.sql
mysql -u root -p < scripts/core/05-seed-trades.sql
mysql -u root -p < scripts/core/06-seed-nav.sql
# 基金转换(convert)新增种子 · T-1
mysql -u root -p < scripts/core/07-seed-fee-rule.sql
mysql -u root -p < scripts/core/08-seed-share-lot.sql
mysql -u root -p < scripts/core/09-seed-org.sql
# Agent 库(若未建)
mysql -u root -p < docs/项目框架设计/表设计/01-mysql-共用底座.sql
python scripts/sync/sync_advisor_rel.py
python scripts/sync/sync_neo4j.py
种子规模(当前)
| 类型 | 数量 |
|---|---|
| 客户 | 28 + 5 手册示范(CUST-DEMO-A~E) |
| 理财代理人 | 5 |
| 分析/风控/合规/运营 | 2+2+2+1(风控另有演示账号 STAFF-90001,我方分支独有) |
| 双角色 staff | 1(STAFF-10091 advisor+compliance) |
| 产品 | 14 |
| 持仓记录 | 58 |
| 交易 | 25+ |
| C×R 适当性矩阵 | 25 行(core_suitability_rule,L0 权威) |
| 赎回费规则(T-1) | 70 行(14 产品 × 5 档,core_fee_rule;档位按 22 号文 §10) |
| 份额批次(T-1) | 61 行(58 行持仓反推,Σ remain_qty 恒等于持仓 qty;CUST-9527 跨批次) |
新增的 07/08/09 三个种子已并入
reset.ps1;00-grant.sql是账号授权脚本, 需管理员单独执行一次,刻意不进 reset.ps1(DROP DATABASE 不清授权行)。 T-1 起reset.ps1需 mysql 客户端在 PATH;若不在 PATH 且需非交互执行, 用python scripts/dev/verify_convert_seed.py(等价流程 + DoD 断言)。