Files
crm.clientright.ru/ticket_form/set_claim_status_to_draft.py
Fedor 840acca51a feat(documents): дедупликация documents_meta и исправление field_label
- Исправлен 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
2025-11-28 18:16:53 +03:00

74 lines
2.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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())