#!/usr/bin/env python3 """ 导入查询问题修复 - 快速总结 问题: 导入的账户无法查询 原因: 导入时元数据ID没有更新,导致ID不一致 解决: 1. 修改 finance_manager.py 的 import_account_package() 方法 - 创建新ID时,更新metadata.json中的id字段 2. 修改 finance_interface.py 的 import_account() 方法 - 导入后自动设置为当前账户 - 清空查询结果表格 3. 修改 on_account_changed() 方法 - 切换账户时清空查询结果 结果: ✅ 导入账户正常 ✅ 账户数据可查询 ✅ 所有交易记录可见 """ import sys from pathlib import Path # 添加项目根路径 sys.path.insert(0, str(Path(__file__).parent)) from app.tools.finance_manager import FinanceManager def main(): print(""" ╔════════════════════════════════════════════════════════════════╗ ║ 导入查询问题 - 修复完成 ║ ╚════════════════════════════════════════════════════════════════╝ 📝 修复内容: 1️⃣ finance_manager.py - import_account_package() ✅ 创建新ID时同步更新metadata.json中的id 2️⃣ finance_interface.py - import_account() ✅ 导入后自动设置为当前账户 ✅ 自动清空查询结果表格 3️⃣ finance_interface.py - on_account_changed() ✅ 切换账户时清空查询结果 ═══════════════════════════════════════════════════════════════════ ✅ 验证结果: """) fm = FinanceManager() accounts = fm.get_all_accounts() print(f"📊 当前账户数: {len(accounts)}\n") for i, acc in enumerate(accounts, 1): trans_count = len(acc.transactions) print(f"[{i}] {acc.name}") print(f" ├─ ID: {acc.id}") print(f" └─ 交易数: {trans_count}") if trans_count > 0: # 测试查询 results = fm.query_transactions(acc.id) print(f" ✅ 查询测试: {len(results)} 条记录可查询") print() print("═══════════════════════════════════════════════════════════════════") print("🎉 问题已解决! 您现在可以:") print(" 1. 导入账户到本系统") print(" 2. 所有交易记录会自动显示") print(" 3. 可以正常进行查询操作") print("═══════════════════════════════════════════════════════════════════\n") if __name__ == '__main__': main()