Files
aiform_prod/docs/SQL_FIX_DRAFT_BDDB6815.sql
AI Assistant 02689e65db fix: Исправление загрузки документов и SQL запросов
- Исправлена потеря документов при обновлении черновика (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
2025-11-26 19:54:51 +03:00

80 lines
3.1 KiB
SQL
Raw 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.

-- ============================================================================
-- SQL для исправления черновика bddb6815-8e17-4d54-a721-5e94382942c7
-- ============================================================================
-- Проблема: У черновика нет documents_required и неправильный статус
-- Решение: Добавляем documents_required и устанавливаем правильный статус
-- ============================================================================
UPDATE clpr_claims
SET
status_code = CASE
-- Если документы уже загружены - ставим draft_docs_progress или draft_docs_complete
WHEN jsonb_array_length(COALESCE(payload->'documents_uploaded', '[]'::jsonb)) > 0
THEN CASE
WHEN jsonb_array_length(COALESCE(payload->'documents_uploaded', '[]'::jsonb)) >= 4
THEN 'draft_docs_complete'
ELSE 'draft_docs_progress'
END
-- Если документов нет - ставим draft_new
ELSE 'draft_new'
END,
-- Добавляем documents_required в payload
payload = jsonb_set(
COALESCE(payload, '{}'::jsonb),
'{documents_required}',
'[
{
"id": "contract",
"name": "Договор или заказ",
"hints": "Фото или скан подписанного договора или квитанции",
"accept": ["pdf", "jpg", "png"],
"priority": 1,
"required": true
},
{
"id": "payment",
"name": "Чек или подтверждение оплаты",
"hints": "Копия кассового чека, онлайн-платежа или квитанции",
"accept": ["pdf", "jpg", "png"],
"priority": 1,
"required": true
},
{
"id": "correspondence",
"name": "Переписка",
"hints": "Скриншоты сообщений, писем, жалоб",
"accept": ["pdf", "jpg", "png"],
"priority": 2,
"required": false
},
{
"id": "evidence_photo",
"name": "Фото доказательства",
"hints": "Фото дефектов товара, видео процесса ремонта или передачи",
"accept": ["jpg", "png", "pdf"],
"priority": 2,
"required": false
}
]'::jsonb,
true
),
updated_at = now()
WHERE id::text = 'bddb6815-8e17-4d54-a721-5e94382942c7'
OR payload->>'claim_id' = 'bddb6815-8e17-4d54-a721-5e94382942c7';
-- Проверяем результат
SELECT
id::text,
status_code,
payload->>'claim_id' as claim_id,
jsonb_array_length(COALESCE(payload->'documents_required', '[]'::jsonb)) as docs_required_count,
jsonb_array_length(COALESCE(payload->'documents_uploaded', '[]'::jsonb)) as docs_uploaded_count,
payload->'documents_required'->0->>'name' as first_doc_name
FROM clpr_claims
WHERE id::text = 'bddb6815-8e17-4d54-a721-5e94382942c7'
OR payload->>'claim_id' = 'bddb6815-8e17-4d54-a721-5e94382942c7';