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:
55
SESSION_LOG_2025-11-26_WIZARD_UI.md
Normal file
55
SESSION_LOG_2025-11-26_WIZARD_UI.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Сессия 26 ноября 2025 - Исправления UI Wizard
|
||||
|
||||
## Основные изменения
|
||||
|
||||
### 1. Исправлена ошибка Authentication failed в upload_documents_to_crm.php
|
||||
- **Проблема:** Race condition при параллельных запросах к webservice CRM
|
||||
- **Решение:** Добавлена функция `getWebserviceSession()` с retry механизмом (до 3 попыток) и случайной задержкой между попытками
|
||||
|
||||
### 2. Исправлен Wizard Plan - чекбоксы заменены на блоки загрузки
|
||||
- **Проблема:** Вопрос `docs_exist` показывал чекбоксы вместо полей загрузки файлов
|
||||
- **Решение:**
|
||||
- Скрыт вопрос `docs_exist` когда есть документы в плане
|
||||
- Добавлены блоки загрузки файлов под карточкой "Документы, которые понадобятся"
|
||||
|
||||
### 3. Чекбокс "У меня нет документа" перенесён под загрузку
|
||||
- **Было:** Чекбокс показывался отдельно сверху
|
||||
- **Стало:** Чекбокс внутри карточки, под Dragger (только для обязательных документов)
|
||||
|
||||
### 4. Блоки загрузки сразу развёрнуты
|
||||
- Добавлен useEffect с ref для автоматического создания блоков при загрузке плана
|
||||
- Используется `createdDocBlocksRef` чтобы избежать дублирования
|
||||
|
||||
### 5. Убраны лишние поля для предустановленных документов
|
||||
- Для документов из плана (contract, payment, correspondence и т.д.):
|
||||
- Нет поля "Уточните тип" (тип уже известен)
|
||||
- Нет кнопки "Удалить" для первого блока
|
||||
- Для дополнительных блоков - поля отображаются
|
||||
|
||||
### 6. Исправлено дублирование блоков
|
||||
- Убран дублирующий useEffect (для documentGroups)
|
||||
- Добавлен ref `createdDocBlocksRef` для отслеживания созданных блоков
|
||||
- Исправлена опечатка `React.useRef` → `useRef`
|
||||
|
||||
## Файлы изменены
|
||||
|
||||
1. `upload_documents_to_crm.php` - retry механизм для аутентификации
|
||||
2. `ticket_form/frontend/src/components/form/StepWizardPlan.tsx`:
|
||||
- Скрытие вопроса docs_exist
|
||||
- Блоки загрузки под информационной карточкой
|
||||
- Чекбокс под Dragger
|
||||
- Автосоздание блоков при загрузке
|
||||
- Улучшенная логика isPredefinedDoc
|
||||
|
||||
## Коммиты
|
||||
|
||||
1. `Добавлен retry механизм для webservice аутентификации (race condition fix)`
|
||||
2. `Заменены чекбоксы docs_exist на блоки загрузки файлов`
|
||||
3. `Исправлен JSX Fragment для блоков загрузки документов`
|
||||
4. `Чекбокс 'нет документа' перенесён под блок загрузки`
|
||||
5. `Блоки загрузки документов сразу развёрнуты при загрузке плана`
|
||||
6. `Убраны лишние поля для предустановленных документов`
|
||||
7. `Убран дублирующий useEffect для создания блоков документов`
|
||||
8. `Исправлено дублирование блоков документов (ref для отслеживания созданных)`
|
||||
9. `Исправлен React.useRef → useRef`
|
||||
|
||||
Reference in New Issue
Block a user