- Исправлена потеря документов при обновлении черновика (SQL объединяет вместо перезаписи) - Исправлено определение типа документа (приоритет field_label над field_name) - Исправлены дубликаты в documents_meta и documents_uploaded - Добавлена передача group_index с фронтенда для правильного field_name - Исправлены все документы в таблице clpr_claim_documents с правильными field_name - Обновлены SQL запросы: claimsave и claimsave_final для нового флоу - Добавлена поддержка multi-file upload для одного документа - Исправлены дубликаты в списке загруженных документов на фронтенде Файлы: - SQL: SQL_CLAIMSAVE_FIXED_NEW_FLOW.sql, SQL_CLAIMSAVE_FINAL_FIXED_NEW_FLOW_WITH_UPLOADED.sql - n8n: N8N_CODE_PROCESS_UPLOADED_FILES_FIXED.js (поддержка group_index) - Backend: documents.py (передача group_index в n8n) - Frontend: StepWizardPlan.tsx (передача group_index, исправление дубликатов) - Скрипты: fix_claim_documents_field_names.py, fix_documents_meta_duplicates.py Результат: документы больше не теряются, имеют правильные типы и field_name
69 lines
2.1 KiB
Python
69 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Проверка документов в таблице clpr_claim_documents
|
|
"""
|
|
import asyncio
|
|
import asyncpg
|
|
|
|
POSTGRES_HOST = "147.45.189.234"
|
|
POSTGRES_PORT = 5432
|
|
POSTGRES_DB = "default_db"
|
|
POSTGRES_USER = "gen_user"
|
|
POSTGRES_PASSWORD = "2~~9_^kVsU?2\\S"
|
|
|
|
CLAIM_ID = "bddb6815-8e17-4d54-a721-5e94382942c7"
|
|
|
|
async def check_documents_table():
|
|
conn = await asyncpg.connect(
|
|
host=POSTGRES_HOST,
|
|
port=POSTGRES_PORT,
|
|
database=POSTGRES_DB,
|
|
user=POSTGRES_USER,
|
|
password=POSTGRES_PASSWORD
|
|
)
|
|
|
|
try:
|
|
# Сначала находим UUID claim
|
|
claim_row = await conn.fetchrow("""
|
|
SELECT id FROM clpr_claims
|
|
WHERE id::text = $1 OR payload->>'claim_id' = $1
|
|
ORDER BY updated_at DESC
|
|
LIMIT 1
|
|
""", CLAIM_ID)
|
|
|
|
if not claim_row:
|
|
print(f"❌ Черновик {CLAIM_ID} не найден!")
|
|
return
|
|
|
|
claim_uuid = claim_row['id']
|
|
|
|
# Ищем документы по UUID (claim_id в таблице - text)
|
|
rows = await conn.fetch("""
|
|
SELECT
|
|
ccd.id,
|
|
ccd.claim_id,
|
|
ccd.field_name,
|
|
ccd.file_id,
|
|
ccd.file_name,
|
|
ccd.original_file_name,
|
|
ccd.uploaded_at
|
|
FROM clpr_claim_documents ccd
|
|
WHERE ccd.claim_id = $1
|
|
ORDER BY ccd.uploaded_at DESC
|
|
""", str(claim_uuid))
|
|
|
|
print(f"📋 Найдено {len(rows)} документов в таблице clpr_claim_documents:")
|
|
for i, row in enumerate(rows):
|
|
print(f"\n {i+1}. field_name: {row['field_name']}")
|
|
print(f" file_id: {row['file_id']}")
|
|
print(f" file_name: {row['file_name']}")
|
|
print(f" original_file_name: {row['original_file_name']}")
|
|
print(f" uploaded_at: {row['uploaded_at']}")
|
|
|
|
finally:
|
|
await conn.close()
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(check_documents_table())
|
|
|