Files
one_divine_lot/docs/02-计划/计划-策略持仓行展开关联交易记录.md
kyugao 2aacd8a25d docs(迭代07/08): 交易记录本地存储 + 策略持仓展开全量文档 + 需求归档(R-009/R-010)
- PLAN-008/PLAN-009 计划(已完成)
- 迭代 07/08 四件套(目标/技术方案/验收标准/复盘)
- 设计约束:数据存储设计 §10/§10.1、技术约束-012/013、产品约束-008
- R-009/R-010 需求归档(含二次定稿:手动归属、Q4 成本价/成交价)
- 需求池索引同步
2026-09-02 01:21:10 +08:00

55 lines
2.8 KiB
Markdown
Raw Permalink 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.
# 计划:策略持仓行展开关联交易记录(Holding → 交易汇总)(阶段航点)
> 编号:PLAN-009 | 粒度:阶段航点(大粒度) | 创建:2026-09-02 状态:**已完成(2026-09-02 迭代 08 老师确认)**
> 派生自终极目标:目标-006(交易复盘)、目标-003(按策略监控市场)
> 依据需求:**R-010(已定稿,2026-09-02Q1-Q3 确认)** —— 符合入范围门槛
> 设计约束:技术约束-012(数据存储设计)、技术约束-001/003/004(沿用)
## 目标
策略持仓 tab 每个持仓行(Holding)可展开,展开显示与该 holding 关联的交易记录(仅委托汇总,不分笔成交),实现「持仓 ↔ 交易」的双向追溯(R-009 反向:交易→持仓已实现,本迭代持仓→交易)。
## 范围
**做**
1. **strategy-positions 附加 holding_id**PositionManager.getStrategyPositions 返回时,查 strategy_holdings 附加当前持仓的 holding_idQ1);
2. **trades/by-holding 端点**:按 holding_id 查 trade_orders,返回委托汇总列表(时间/方向/状态/委托量/成交量/均价/金额/费用)(Q2);
3. **持仓行展开 UI**StrategyTab 持仓行加展开(类似交易记录 tab 展开效果),展开后内嵌小表格显示该 holding 的委托汇总;懒加载(展开时才请求)(Q3)。
**不做**
- 分笔成交明细展示(老师明确只要汇总);
- 交易记录 tab 改动;
- 归属设置入口(R-009 已有)。
## 程序结构
```
src/
├── component/
│ ├── PositionManager.js # 改:getStrategyPositions 附加 holding_id
│ ├── SqliteStore.js # 改:+getOrdersByHolding(holdingId)
│ └── DataStore.js # 改:+getTradeOrdersByHolding
├── api/
│ └── trades.js # 改:+trades/by-holding 端点
src/client/views/
└── StrategyTab.jsx # 改:持仓行展开 + 内嵌委托汇总表(懒加载)
```
## 实现步骤
1. **文档骨架**PLAN-009 + 迭代 08(本步);
2. **SqliteStore**getOrdersByHoldingWHERE holding_id=? ORDER BY insert_ts DESC);
3. **DataStore**:委托方法;
4. **PositionManager**getStrategyPositions 附加 holding_id
5. **api/trades.js**trades/by-holding 端点;
6. **StrategyTab**:持仓行展开 + 懒加载 + 内嵌汇总表;
7. **构建测试**pnpm run build + typecheck + 独立数据目录回归(技术约束-011);
8. **验收 + 复盘**
## 验收要点
- strategy-positions 每行含 holding_id(同策略同 code 当前持仓);
- trades/by-holding 返回该 holding 的委托汇总(无成交的委托也显示);
- StrategyTab 持仓行可展开,展开显示委托汇总表(不分笔成交);
- 懒加载:不展开不请求;
- 现有功能不回归。