修正
This commit is contained in:
83
cleanup_duplicate_data.py
Normal file
83
cleanup_duplicate_data.py
Normal file
@@ -0,0 +1,83 @@
|
||||
import psycopg2
|
||||
|
||||
conn = psycopg2.connect(
|
||||
host="192.168.0.61",
|
||||
port=55432,
|
||||
database="njts_acct",
|
||||
user="njts_app",
|
||||
password="njts_app2025"
|
||||
)
|
||||
|
||||
cur = conn.cursor()
|
||||
|
||||
print("=" * 120)
|
||||
print("【清理步骤】删除通过复制创建的不正确数据")
|
||||
print("=" * 120)
|
||||
|
||||
# 识别所有应该删除的记录:
|
||||
# ID 444(7月31日 遠達ビル)- 这是6月数据复制到7月的版本
|
||||
# 以及其他类似的复制数据
|
||||
|
||||
delete_list = [
|
||||
(444, "2025-07-31", "遠達ビル 事務所費用", "6月原始数据的7月复制版"),
|
||||
]
|
||||
|
||||
print("\n识别的应该删除的记录:\n")
|
||||
for entry_id, date, description, reason in delete_list:
|
||||
print(f"ID={entry_id} | {date} | {description}")
|
||||
print(f" 理由: {reason}")
|
||||
print()
|
||||
|
||||
# 实际删除之前先验证
|
||||
print("\n" + "=" * 120)
|
||||
print("【验证】使用DELETE指令删除这些记录")
|
||||
print("=" * 120)
|
||||
|
||||
for entry_id, date, description, reason in delete_list:
|
||||
print(f"\n删除 ID={entry_id}...")
|
||||
|
||||
# 先删除journal_lines
|
||||
cur.execute("DELETE FROM journal_lines WHERE journal_entry_id = %s", (entry_id,))
|
||||
lines_deleted = cur.rowcount
|
||||
print(f" ✓ journal_lines: {lines_deleted}行删除")
|
||||
|
||||
# 再删除journal_entries
|
||||
cur.execute("DELETE FROM journal_entries WHERE journal_entry_id = %s", (entry_id,))
|
||||
entries_deleted = cur.rowcount
|
||||
print(f" ✓ journal_entries: {entries_deleted}件删除")
|
||||
|
||||
conn.commit()
|
||||
|
||||
print("\n" + "=" * 120)
|
||||
print("【完成】数据已删除")
|
||||
print("=" * 120)
|
||||
|
||||
# 验证删除结果
|
||||
print("\n验证遠達ビル 事務所費用现在的状态:\n")
|
||||
|
||||
cur.execute("""
|
||||
SELECT
|
||||
je.journal_entry_id,
|
||||
je.entry_date,
|
||||
je.description,
|
||||
COALESCE(SUM(jl.debit), 0) as debit_total,
|
||||
COALESCE(SUM(jl.credit), 0) as credit_total
|
||||
FROM journal_entries je
|
||||
LEFT JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
|
||||
WHERE je.description LIKE '%遠達ビル 事務所費用%'
|
||||
AND je.is_deleted = false
|
||||
GROUP BY je.journal_entry_id, je.entry_date, je.description
|
||||
ORDER BY je.entry_date
|
||||
""")
|
||||
|
||||
results = cur.fetchall()
|
||||
if results:
|
||||
for entry_id, entry_date, description, debit, credit in results:
|
||||
print(f"ID={entry_id} | {entry_date} | 借={debit:>10,.0f} 貸={credit:>10,.0f}")
|
||||
else:
|
||||
print("未找到遠達ビル相关记录(或全部已删除)")
|
||||
|
||||
cur.close()
|
||||
conn.close()
|
||||
|
||||
print("\n✓ 操作完成")
|
||||
Reference in New Issue
Block a user