- Исправлен N8N_CODE_PROCESS_UPLOADED_FILES_FIXED.js: использовать uploads_field_labels[0] вместо [grp] - Создан SQL_CLAIMSAVE_FIXED_NEW_FLOW_DEDUP.sql с дедупликацией documents_meta - Создан SQL_CLEANUP_DOCUMENTS_META_DUPLICATES.sql для очистки существующих дубликатов - Создан полный уникальный индекс idx_document_texts_hash_unique на document_texts(file_hash) - Добавлен SESSION_LOG_2025-11-28_documents_dedup.md с описанием всех изменений Fixes: - field_label теперь корректно отображает 'Переписка' вместо 'group-2' - documents_meta не накапливает дубликаты при повторных сохранениях - ON CONFLICT (file_hash) теперь работает для document_texts
74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Изменение статуса жалобы на draft
|
||
"""
|
||
import asyncio
|
||
import asyncpg
|
||
import json
|
||
|
||
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 set_status_to_draft():
|
||
conn = await asyncpg.connect(
|
||
host=POSTGRES_HOST,
|
||
port=POSTGRES_PORT,
|
||
database=POSTGRES_DB,
|
||
user=POSTGRES_USER,
|
||
password=POSTGRES_PASSWORD
|
||
)
|
||
|
||
try:
|
||
# Сначала проверяем текущий статус
|
||
row = await conn.fetchrow("""
|
||
SELECT id, status_code, payload, updated_at
|
||
FROM clpr_claims
|
||
WHERE id::text = $1 OR payload->>'claim_id' = $1
|
||
ORDER BY updated_at DESC
|
||
LIMIT 1
|
||
""", CLAIM_ID)
|
||
|
||
if not row:
|
||
print(f"❌ Жалоба с claim_id '{CLAIM_ID}' не найдена")
|
||
return
|
||
|
||
print(f"📋 Текущий статус: {row['status_code']}")
|
||
print(f"📋 ID в БД: {row['id']}")
|
||
|
||
# Обновляем статус на draft
|
||
result = await conn.execute("""
|
||
UPDATE clpr_claims
|
||
SET status_code = 'draft',
|
||
updated_at = now()
|
||
WHERE id = $1
|
||
""", row['id'])
|
||
|
||
print(f"✅ Статус обновлён на 'draft'")
|
||
print(f"📋 Результат: {result}")
|
||
|
||
# Проверяем новый статус
|
||
new_row = await conn.fetchrow("""
|
||
SELECT status_code, updated_at
|
||
FROM clpr_claims
|
||
WHERE id = $1
|
||
""", row['id'])
|
||
|
||
print(f"\n📋 Новый статус: {new_row['status_code']}")
|
||
print(f"📋 Обновлено: {new_row['updated_at']}")
|
||
|
||
except Exception as e:
|
||
print(f"❌ Ошибка: {e}")
|
||
import traceback
|
||
traceback.print_exc()
|
||
finally:
|
||
await conn.close()
|
||
|
||
if __name__ == "__main__":
|
||
asyncio.run(set_status_to_draft())
|
||
|