MRobot/check_import_fix.py
2025-11-25 17:26:46 +08:00

84 lines
3.0 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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()