74 lines
2.6 KiB
Python
74 lines
2.6 KiB
Python
#!/usr/bin/env python
|
||
# -*- coding: utf-8 -*-
|
||
|
||
import os
|
||
import sys
|
||
sys.path.insert(0, 'backend')
|
||
|
||
os.environ['DB_HOST'] = '192.168.0.61'
|
||
os.environ['DB_NAME'] = 'njts_acct'
|
||
os.environ['DB_USER'] = 'njts_app'
|
||
os.environ['DB_PASSWORD'] = 'njts_app2025'
|
||
os.environ['DB_PORT'] = '55432'
|
||
|
||
from app.core.database import get_connection
|
||
|
||
with get_connection() as conn:
|
||
with conn.cursor() as cur:
|
||
print('\n【 对比两个「取消」交易 】\n')
|
||
|
||
# Entry#360: 原始的取消交易
|
||
print('Entry#360(原始的取消交易):')
|
||
cur.execute("""
|
||
SELECT
|
||
journal_entry_id,
|
||
entry_date,
|
||
description,
|
||
parent_entry_id,
|
||
is_deleted
|
||
FROM journal_entries
|
||
WHERE journal_entry_id = 360
|
||
""")
|
||
row = cur.fetchone()
|
||
print(f" 日期: {row['entry_date']}")
|
||
print(f" 描述: {row['description']}")
|
||
print(f" Parent: {row['parent_entry_id']}")
|
||
print(f" 已删除: {row['is_deleted']}")
|
||
|
||
# Entry#371: 新添加的取消交易
|
||
print('\nEntry#371(新添加的取消交易):')
|
||
cur.execute("""
|
||
SELECT
|
||
journal_entry_id,
|
||
entry_date,
|
||
description,
|
||
parent_entry_id,
|
||
is_deleted
|
||
FROM journal_entries
|
||
WHERE journal_entry_id = 371
|
||
""")
|
||
row = cur.fetchone()
|
||
print(f" 日期: {row['entry_date']}")
|
||
print(f" 描述: {row['description']}")
|
||
print(f" Parent: {row['parent_entry_id']}")
|
||
print(f" 已删除: {row['is_deleted']}")
|
||
|
||
print('\n【 分析 】\n')
|
||
print('两个交易的描述都是【未計上のため取消】遠達株式会社...')
|
||
print('金额都是1,400,000')
|
||
print('日期都是2025年6月1日')
|
||
print('')
|
||
print('⚠️ 这看起来像是重复的!')
|
||
print('')
|
||
print('关键区别:')
|
||
print(' Entry#360: parent_entry_id=357(正确的链接)')
|
||
print(' Entry#371: parent_entry_id=None(未链接!)')
|
||
print('')
|
||
print('可能的解释:')
|
||
print(' 1. Entry#371是误操作创建的重复交易,应该被删除(is_deleted=true)')
|
||
print(' 2. 或者Entry#371应该被更正为parent_entry_id=None(保持为独立的取消)')
|
||
print(' 但这样会导致有两个「取消」交易')
|
||
print('')
|
||
print('建议:')
|
||
print(' 将Entry#371标记为已删除(is_deleted=true)或实际删除它')
|