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
This commit is contained in:
79
docs/SQL_FIX_DRAFT_BDDB6815.sql
Normal file
79
docs/SQL_FIX_DRAFT_BDDB6815.sql
Normal file
@@ -0,0 +1,79 @@
|
||||
-- ============================================================================
|
||||
-- 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';
|
||||
|
||||
Reference in New Issue
Block a user