- Исправлена потеря документов при обновлении черновика (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
56 lines
3.8 KiB
Markdown
56 lines
3.8 KiB
Markdown
# Сессия 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`
|
||
|