This commit is contained in:
admin
2026-01-16 09:50:21 +09:00
parent 24c04e0d29
commit d8ec60629e
18 changed files with 941 additions and 22 deletions

109
backend/check_data.py Normal file
View File

@@ -0,0 +1,109 @@
import os
os.environ['DB_HOST'] = '192.168.0.61'
os.environ['DB_PORT'] = '55432'
os.environ['DB_NAME'] = 'njts_acct'
os.environ['DB_USER'] = 'njts_app'
os.environ['DB_PASSWORD'] = 'njts_app2025'
import sys
sys.path.insert(0, os.path.dirname(__file__))
from app.core.database import get_connection
conn = get_connection()
cur = conn.cursor()
# 逸速ビル関連の仕訳を確認
cur.execute("""
SELECT journal_entry_id, entry_date, description, parent_entry_id, is_deleted
FROM journal_entries
WHERE description LIKE '%遠達ビル%'
ORDER BY journal_entry_id
""")
rows = cur.fetchall()
print("\n遠達ビル関連の仕訳:")
for r in rows:
print(f"ID: {r['journal_entry_id']}, Date: {r['entry_date']}, Desc: {r['description']}, Parent: {r['parent_entry_id']}, is_deleted: {r['is_deleted']}")
# parent_entry_idが設定されている仕訳IDの一覧を取得
cur.execute("""
SELECT DISTINCT parent_entry_id
FROM journal_entries
WHERE parent_entry_id IS NOT NULL
ORDER BY parent_entry_id
""")
parent_ids = [r['parent_entry_id'] for r in cur.fetchall()]
print(f"\nparent_entry_idとして参照されているID: {parent_ids}")
cur.close()
conn.close()
# 実際の検索クエリと同じロジックでテスト
print("\n--- 検索クエリのテストinclude_history=False ---")
conn2 = get_connection()
cur2 = conn2.cursor()
# まず、条件なしでID 80が取得できるか確認
cur2.execute("""
SELECT journal_entry_id, description
FROM journal_entries
WHERE journal_entry_id = 80
""")
print(f"ID 80の存在確認: {cur2.fetchall()}")
# 各条件を個別にチェック
cur2.execute("SELECT journal_entry_id FROM journal_entries WHERE journal_entry_id = 80 AND is_deleted = false")
print(f"is_deleted=false: {len(cur2.fetchall())}")
cur2.execute("SELECT journal_entry_id FROM journal_entries WHERE journal_entry_id = 80 AND description NOT LIKE '%[逆仕訳]%'")
print(f"NOT LIKE '%%[逆仕訳]%%': {len(cur2.fetchall())}")
cur2.execute("""
SELECT journal_entry_id FROM journal_entries
WHERE journal_entry_id = 80
AND journal_entry_id NOT IN (SELECT parent_entry_id FROM journal_entries WHERE parent_entry_id IS NOT NULL)
""")
print(f"NOT IN parent_entry_id: {len(cur2.fetchall())}")
cur2.execute("SELECT journal_entry_id FROM journal_entries WHERE journal_entry_id = 80 AND description LIKE '%逸速ビル%'")
print(f"LIKE '%%逸速ビル%%': {len(cur2.fetchall())}")
cur2.execute("SELECT journal_entry_id FROM journal_entries WHERE journal_entry_id = 80 AND description LIKE '%遠達ビル%'")
print(f"LIKE '%%遠達ビル%%': {len(cur2.fetchall())}")
sql = """
SELECT
je.journal_entry_id,
je.entry_date,
je.description,
je.fiscal_year,
je.version,
COALESCE(SUM(jl.debit), 0) as debit_total,
COALESCE(SUM(jl.credit), 0) as credit_total,
STRING_AGG(DISTINCT CASE WHEN jl.tax_rate IS NOT NULL THEN jl.tax_rate::text END, ', ' ORDER BY CASE WHEN jl.tax_rate IS NOT NULL THEN jl.tax_rate::text END) as tax_rates
FROM journal_entries je
LEFT JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
WHERE je.is_deleted = false
AND je.description NOT LIKE %s
AND je.journal_entry_id NOT IN (
SELECT parent_entry_id
FROM journal_entries
WHERE parent_entry_id IS NOT NULL
)
AND je.entry_date >= %s AND je.entry_date <= %s
AND je.description LIKE %s
GROUP BY je.journal_entry_id, je.entry_date, je.description, je.fiscal_year, je.version
ORDER BY je.entry_date DESC, je.journal_entry_id DESC, je.version DESC
"""
cur2.execute(sql, ['%[逆仕訳]%', '2025-06-01', '2025-06-30', '%逸速ビル%'])
results = cur2.fetchall()
print(f"\n検索結果({len(results)}件):")
for r in results:
print(f"ID: {r['journal_entry_id']}, Date: {r['entry_date']}, Desc: {r['description']}, Tax: {r['tax_rates']}")
cur2.close()
conn2.close()