This commit is contained in:
admin
2026-02-20 15:47:27 +09:00
parent c60cbf2d9a
commit 584530937b
108 changed files with 12112 additions and 416 deletions

54
analyze_1400000_issue.py Normal file
View File

@@ -0,0 +1,54 @@
#!/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:
# 获取account_id
cur.execute("SELECT account_id FROM accounts WHERE account_code = '701'")
aid = cur.fetchone()['account_id']
print('\n【 Entry#357 和 Entry#360 的关系 】')
cur.execute("""
SELECT
j.journal_entry_id,
j.parent_entry_id,
j.entry_date,
j.description,
l.debit,
l.credit,
j.is_deleted
FROM journal_entries j
LEFT JOIN journal_lines l ON l.journal_entry_id = j.journal_entry_id AND l.account_id = %s
WHERE j.journal_entry_id IN (357, 360)
ORDER BY j.journal_entry_id
""", (aid,))
print("Entry# | Parent | Debit | Credit | Description (first 60 chars)")
for row in cur.fetchall():
parent_info = f"{row['parent_entry_id']}" if row['parent_entry_id'] else "None"
desc = row['description'] if row['description'] else ""
print(f"#{row['journal_entry_id']:<5} | {parent_info:<6} | {str(row['debit'] or 0):>10} | {str(row['credit'] or 0):>10} | {desc[:60]}")
print('\n【 发现问题了!】')
print('Entry#357: credit=1,400,000 (【未計上のため...】描述的原始交易)')
print('Entry#360: debit=1,400,000 (【未計上のため取消】取消交易)')
print('')
print('这个1,400,000的交易不应该被计入')
print(' 当前结果 5,482,728 应该 - 1,400,000 = 4,082,728 ✓')
print('')
print('问题是Entry#360没有设置parent_entry_id指向Entry#357')
print('所以LEFT JOIN过滤逻辑无法识别这个取消关系。')
print('')
print('解决方案之一检查Entry#360是否应该有 parent_entry_id=357')