From be91dbf06c2aa9ab97da52e8f61ed42b2c04d945 Mon Sep 17 00:00:00 2001 From: Lxy Date: Wed, 8 Jul 2026 22:46:35 +0800 Subject: [PATCH] =?UTF-8?q?tweak:=20=E4=BF=AE=E5=A4=8D=E4=BA=A4=E6=98=93?= =?UTF-8?q?=E5=A4=8D=E7=9B=98=E5=AF=BC=E5=85=A5=E9=97=AE=E9=A2=98=EF=BC=88?= =?UTF-8?q?=E5=8E=BB=E9=87=8D=E8=AF=A6=E6=83=85=E6=8F=90=E7=A4=BA=E3=80=81?= =?UTF-8?q?=E6=9C=9F=E6=9D=83=E7=9B=88=E4=BA=8F=E8=AE=A1=E7=AE=97=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/trade_review.py | 4 ++ app/services/trade_parser.py | 22 +++++- app/static/futures_analysis.js | 67 +++++++++++++++++- data/buffer.db | Bin 3907584 -> 3907584 bytes data/futures_analysis.db | Bin 12812288 -> 13225984 bytes openspec/changes/trade-import-fix/design.md | 14 ++++ openspec/changes/trade-import-fix/proposal.md | 16 +++++ openspec/changes/trade-import-fix/tasks.md | 5 ++ 8 files changed, 125 insertions(+), 3 deletions(-) create mode 100644 openspec/changes/trade-import-fix/design.md create mode 100644 openspec/changes/trade-import-fix/proposal.md create mode 100644 openspec/changes/trade-import-fix/tasks.md diff --git a/app/api/trade_review.py b/app/api/trade_review.py index 0a2408d..893e52b 100644 --- a/app/api/trade_review.py +++ b/app/api/trade_review.py @@ -60,10 +60,12 @@ async def import_settlement( total_parsed = result['futures_parsed'] + result['options_parsed'] if total_new == 0 and total_skipped > 0: + skipped_details = result.get('skipped_details', []) return { "success": True, "message": f"全部跳过:共解析 {total_parsed} 条记录,均已存在(去重规则:交易日+品种+时间+价格),未导入任何新数据", "data": result, + "skipped_details": skipped_details, } msg_parts = [f"导入成功:期货 {result['futures_count']} 条,期权 {result['options_count']} 条"] @@ -75,6 +77,7 @@ async def import_settlement( "success": True, "message": ",".join(msg_parts), "data": result, + "skipped_details": result.get('skipped_details', []), } except HTTPException: raise @@ -145,6 +148,7 @@ async def batch_import_settlement( "message": ",".join(msg_parts), "new_count": file_new, "skipped_count": file_skipped, + "skipped_details": result.get('skipped_details', []), "trade_dates": result['trade_dates'], "batch_id": result['batch_id'], }) diff --git a/app/services/trade_parser.py b/app/services/trade_parser.py index 2c32d85..d8c1245 100644 --- a/app/services/trade_parser.py +++ b/app/services/trade_parser.py @@ -270,6 +270,7 @@ def save_to_db( records = [] new_keys_in_batch = set() # 防止本次导入文件内部重复 + skipped_details = [] # 记录被跳过的重复记录详情 # 处理期货记录 if not df_futures.empty: @@ -288,6 +289,13 @@ def save_to_db( dedup_key = _build_dedup_key(trade_date, variety, trade_time, price) if dedup_key in existing_keys or dedup_key in new_keys_in_batch: futures_skipped += 1 + skipped_details.append({ + 'type': '期货', + 'variety': variety, + 'date': trade_date, + 'time': trade_time, + 'price': price, + }) continue # 记录前几条的去重键用于调试 @@ -331,9 +339,18 @@ def save_to_db( dedup_key = _build_dedup_key(trade_date, variety, trade_time, price) if dedup_key in existing_keys or dedup_key in new_keys_in_batch: options_skipped += 1 + skipped_details.append({ + 'type': '期权', + 'variety': variety, + 'date': trade_date, + 'time': trade_time, + 'price': price, + }) continue new_keys_in_batch.add(dedup_key) + # 期权盈亏来自权利金(带正负号:卖为正,买为负) + premium = safe_float(row.get('权利金')) rec = TradeRecord( trade_type='期权', symbol=contract, @@ -343,8 +360,8 @@ def save_to_db( offset='', price=price, volume=safe_float(row.get('成交量')), - amount=safe_float(row.get('权利金')), - close_pnl=0.0, + amount=premium, + close_pnl=premium, # 期权盈亏 = 权利金(带正负号) commission=safe_float(row.get('手续费')), trade_date=trade_date, trade_time=trade_time, @@ -393,6 +410,7 @@ def save_to_db( "options_skipped": options_skipped, "futures_parsed": futures_parsed, "options_parsed": options_parsed, + "skipped_details": skipped_details, # 被跳过的重复记录详情 } diff --git a/app/static/futures_analysis.js b/app/static/futures_analysis.js index 5016d2b..5e36463 100644 --- a/app/static/futures_analysis.js +++ b/app/static/futures_analysis.js @@ -2326,7 +2326,7 @@ async function trHandleFileImport(e) { const res = await fetch(`${TR_API_BASE}/import`, { method: 'POST', body: formData }); const json = await res.json(); if (json.success) { - alert(json.message); + trShowImportResult(json.message, json.skipped_details || []); trLoadAllData(); } else { alert('导入失败: ' + (json.message || '未知错误')); @@ -2339,6 +2339,53 @@ async function trHandleFileImport(e) { } } +// 显示导入结果(含去重详情) +function trShowImportResult(message, skippedDetails) { + let html = `
+
${message}
`; + + if (skippedDetails && skippedDetails.length > 0) { + html += `
+
+ 被过滤的重复记录(${skippedDetails.length} 条): +
+
`; + + // 按类型分组显示 + const grouped = {}; + skippedDetails.forEach(d => { + const key = d.type || '未知'; + if (!grouped[key]) grouped[key] = []; + grouped[key].push(d); + }); + + for (const [type, items] of Object.entries(grouped)) { + html += `
${type}(${items.length} 条):
`; + items.slice(0, 10).forEach(d => { + html += `
• ${d.variety} ${d.date} ${d.time} @ ${d.price}
`; + }); + if (items.length > 10) { + html += `
... 还有 ${items.length - 10} 条
`; + } + } + + html += `
`; + } + + html += `
`; + + // 使用自定义弹窗 + const modal = document.createElement('div'); + modal.style.cssText = 'position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:10000;display:flex;align-items:center;justify-content:center;'; + modal.innerHTML = `
+ ${html} +
+ +
+
`; + document.body.appendChild(modal); +} + async function trHandleBatchImport(e) { const files = e.target.files; if (!files || files.length === 0) return; @@ -2375,9 +2422,27 @@ function trShowBatchImportResult(json) { summaryEl.textContent = json.message; detailsEl.innerHTML = data.details.map(d => { let icon = d.success ? (d.new_count > 0 ? '✅' : '⚠️') : '❌'; + let skippedHtml = ''; + if (d.skipped_details && d.skipped_details.length > 0) { + const grouped = {}; + d.skipped_details.forEach(item => { + const key = item.type || '未知'; + if (!grouped[key]) grouped[key] = []; + grouped[key].push(item); + }); + skippedHtml = `
`; + for (const [type, items] of Object.entries(grouped)) { + skippedHtml += `
${type} ${items.length}条: `; + skippedHtml += items.slice(0, 5).map(item => `${item.variety}@${item.price}`).join(', '); + if (items.length > 5) skippedHtml += ` ...`; + skippedHtml += `
`; + } + skippedHtml += `
`; + } return `
${icon} ${d.filename}
${d.message}
+ ${skippedHtml}
`; }).join(''); modal.classList.add('show'); diff --git a/data/buffer.db b/data/buffer.db index 1b63c8d8e2630a9584febb4bfc4c063e9ed129e0..181c13501e24f82f0d2d77a42f4fca93ef6f86c9 100644 GIT binary patch delta 647 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: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 diff --git a/openspec/changes/trade-import-fix/design.md b/openspec/changes/trade-import-fix/design.md new file mode 100644 index 0000000..e5882cb --- /dev/null +++ b/openspec/changes/trade-import-fix/design.md @@ -0,0 +1,14 @@ +# 设计文档 + +## 1. 去重详情提示 +- `save_to_db` 新增 `skipped_details` 列表,记录每条被跳过的记录:`{variety, date, time, price, type}` +- API 响应中包含此列表 +- 前端弹窗中展示被跳过的记录详情 + +## 2. 批量导入修复 +- 检查前端 FormData 传参方式 +- 确保后端 `files` 参数正确接收 + +## 3. 期权盈亏修复 +- 期权 `close_pnl` 改为使用 `权利金` 字段(带正负号:卖为正,买为负) +- `calc_daily_summary` 中期权盈亏公式:`pnl = amount - commission`(amount 即权利金) diff --git a/openspec/changes/trade-import-fix/proposal.md b/openspec/changes/trade-import-fix/proposal.md new file mode 100644 index 0000000..14e3103 --- /dev/null +++ b/openspec/changes/trade-import-fix/proposal.md @@ -0,0 +1,16 @@ +# 交易复盘导入修复 + +## 动机 +1. 去重过滤时只提示跳过了多少条,未说明具体是哪些记录被过滤 +2. 批量导入功能失败 +3. 期权交易盈亏计算错误(close_pnl 硬编码为 0,应使用权利金计算盈亏) + +## 目标 +1. 去重时记录被过滤记录的详细信息(品种、日期、时间、价格),并在前端展示 +2. 修复批量导入失败问题 +3. 修复期权盈亏计算:使用权利金(amount)作为期权盈亏来源 + +## 范围 +- `app/services/trade_parser.py` — 去重详情收集、期权盈亏修复 +- `app/api/trade_review.py` — 返回去重详情、批量导入修复 +- `app/static/futures_analysis.js` — 前端展示去重详情 diff --git a/openspec/changes/trade-import-fix/tasks.md b/openspec/changes/trade-import-fix/tasks.md new file mode 100644 index 0000000..795916a --- /dev/null +++ b/openspec/changes/trade-import-fix/tasks.md @@ -0,0 +1,5 @@ +# 任务列表 + +- [x] 1. 修复期权盈亏计算:`save_to_db` 中期权 `close_pnl` 改为使用权利金(带正负号) +- [x] 2. 收集去重详情:`save_to_db` 新增 `skipped_details` 列表,记录被跳过的记录详情 +- [x] 3. 修复批量导入 + 前端展示去重详情