120 lines
4.3 KiB
Python
120 lines
4.3 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import sys
|
|
|
|
# 添加backend目录到路径
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend'))
|
|
|
|
os.environ.setdefault("DB_HOST", "localhost")
|
|
os.environ.setdefault("DB_PORT", "5432")
|
|
os.environ.setdefault("DB_NAME", "accounting_db")
|
|
os.environ.setdefault("DB_USER", "postgres")
|
|
os.environ.setdefault("DB_PASSWORD", "root")
|
|
|
|
from app.core.database import get_connection
|
|
|
|
def check_accounts_data():
|
|
"""检查701账户的数据"""
|
|
with get_connection() as conn:
|
|
with conn.cursor() as cur:
|
|
# 查询原始交易数据
|
|
print("=== 521年6月份701账户的原始交易数据 ===")
|
|
sql = """
|
|
SELECT
|
|
e.journal_entry_id,
|
|
e.entry_date,
|
|
e.description,
|
|
l.account_id,
|
|
a.account_name,
|
|
COALESCE(l.debit, 0) as debit,
|
|
COALESCE(l.credit, 0) as credit,
|
|
e.is_deleted,
|
|
e.parent_entry_id
|
|
FROM journal_lines l
|
|
JOIN journal_entries e ON e.journal_entry_id = l.journal_entry_id
|
|
JOIN accounts a ON a.account_id = l.account_id
|
|
WHERE a.account_id = 701
|
|
AND e.entry_date >= '2025-06-01'
|
|
AND e.entry_date <= '2025-06-30'
|
|
ORDER BY e.entry_date, e.journal_entry_id
|
|
"""
|
|
|
|
cur.execute(sql)
|
|
rows = cur.fetchall()
|
|
|
|
total_debit_all = 0
|
|
total_credit_all = 0
|
|
total_debit_filtered = 0
|
|
total_credit_filtered = 0
|
|
|
|
for row in rows:
|
|
journal_id, date, desc, account_id, account_name, debit, credit, is_deleted, parent_id = row
|
|
print(f"ID:{journal_id:4d} | 日期:{date} | {desc:30s} | 借:{debit:12} | 贷:{credit:12} | 删除:{is_deleted} | Parent:{parent_id}")
|
|
|
|
total_debit_all += debit
|
|
total_credit_all += credit
|
|
|
|
# 只统计未删除、且不是被修正元的交易
|
|
if not is_deleted and parent_id is None:
|
|
total_debit_filtered += debit
|
|
total_credit_filtered += credit
|
|
|
|
print()
|
|
print(f"全部交易合计 - 借方: {total_debit_all:>12,} | 贷方: {total_credit_all:>12,}")
|
|
print(f"过滤后合计 - 借方: {total_debit_filtered:>12,} | 贷方: {total_credit_filtered:>12,}")
|
|
|
|
# 查看是否有逆仕訳标记
|
|
print()
|
|
print("=== 检查是否有逆仕訳 ===")
|
|
sql2 = """
|
|
SELECT COUNT(*) as cnt
|
|
FROM journal_entries
|
|
WHERE entry_date >= '2025-06-01'
|
|
AND entry_date <= '2025-06-30'
|
|
AND description LIKE '%[逆仕訳]%'
|
|
"""
|
|
|
|
cur.execute(sql2)
|
|
result = cur.fetchone()
|
|
print(f"标记为逆仕訳的交易数: {result['cnt']}")
|
|
|
|
# 检查是否有parent_entry_id的交易
|
|
print()
|
|
print("=== 检查修正記録 ===")
|
|
sql3 = """
|
|
SELECT COUNT(*) as cnt
|
|
FROM journal_entries
|
|
WHERE entry_date >= '2025-06-01'
|
|
AND entry_date <= '2025-06-30'
|
|
AND parent_entry_id IS NOT NULL
|
|
"""
|
|
|
|
cur.execute(sql3)
|
|
result = cur.fetchone()
|
|
print(f"有parent_entry_id的交易数: {result['cnt']}")
|
|
|
|
# 查看哪些交易是作为修正元的
|
|
print()
|
|
print("=== 作为修正元的交易 ===")
|
|
sql4 = """
|
|
SELECT DISTINCT parent_entry_id
|
|
FROM journal_entries
|
|
WHERE parent_entry_id IS NOT NULL
|
|
AND parent_entry_id IN (
|
|
SELECT journal_entry_id
|
|
FROM journal_entries
|
|
WHERE entry_date >= '2025-06-01'
|
|
AND entry_date <= '2025-06-30'
|
|
)
|
|
"""
|
|
|
|
cur.execute(sql4)
|
|
results = cur.fetchall()
|
|
for result in results:
|
|
print(f" 被修正的交易ID: {result['parent_entry_id']}")
|
|
|
|
if __name__ == "__main__":
|
|
check_accounts_data()
|