- Added comprehensive AI Assistant system (aiassist/ directory): * Vector search and embedding capabilities * Typebot proxy integration * Elastic search functionality * Message classification and chat history * MCP proxy for external integrations - Implemented Court Status API (GetCourtStatus.php): * Real-time court document status checking * Integration with external court systems * Comprehensive error handling and logging - Enhanced S3 integration: * Improved file backup system with metadata * Batch processing capabilities * Enhanced error logging and recovery * Copy operations with URL fixing - Added Telegram contact creation API - Improved error logging across all modules - Enhanced callback system for AI responses - Extensive backup file storage with timestamps - Updated documentation and README files - File storage improvements: * Thousands of backup files with proper metadata * Fix operations for broken file references * Project-specific backup and recovery systems * Comprehensive file integrity checking Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
134 lines
6.1 KiB
Markdown
134 lines
6.1 KiB
Markdown
# Обновление проекта из судебного документа (v2)
|
||
|
||
## Описание
|
||
Скрипт для автоматического обновления проекта в CRM на основе данных из судебного документа с использованием прямых SQL запросов и S3Client.
|
||
|
||
## Использование
|
||
|
||
### 1. Через stdin (рекомендуется)
|
||
```bash
|
||
echo '[{"content": {...}, "file": "...", "file_name": "..."}]' | php simple_project_updater_v2.php
|
||
```
|
||
|
||
### 2. Из n8n через SSH
|
||
```bash
|
||
ssh user@server "cd /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions && echo '$(printf '%s' '{{ $json | toJson }}')' | php simple_project_updater_v2.php"
|
||
```
|
||
|
||
### 3. Прямой вызов с JSON
|
||
```bash
|
||
php simple_project_updater_v2.php << 'EOF'
|
||
[{"content": {"description": "Определение судьи...", "case_number": "М-5071/2025", "court": "Щелковский городской суд Московской области", "plaintiff_fio": "Соколов Александр Владимирович", "uid": "50RS0052-01-2025-007323-70", "document_title": "ОПРЕДЕЛЕНИЕ"}, "file": "https://s3.twcstorage.ru/.../document.pdf", "file_name": "document.pdf"}]
|
||
EOF
|
||
```
|
||
|
||
## Формат входных данных
|
||
|
||
```json
|
||
[
|
||
{
|
||
"content": {
|
||
"description": "Описание документа",
|
||
"case_number": "М-5071/2025",
|
||
"writ_number": null,
|
||
"court": "Щелковский городской суд Московской области",
|
||
"plaintiff_fio": "Соколов Александр Владимирович",
|
||
"defendant_fio": null,
|
||
"uid": "50RS0052-01-2025-007323-70",
|
||
"document_title": "ОПРЕДЕЛЕНИЕ"
|
||
},
|
||
"file": "https://s3.twcstorage.ru/.../document.pdf",
|
||
"file_name": "document.pdf"
|
||
}
|
||
]
|
||
```
|
||
|
||
## Функциональность
|
||
|
||
### 1. Поиск проекта
|
||
- По ФИО истца в названии проекта или описании
|
||
- По номеру дела в номере проекта или описании
|
||
- По УИД в описании
|
||
- По названию суда в кастомных полях (cf_1499, cf_2278)
|
||
|
||
### 2. Создание документа
|
||
- Прямые SQL запросы к vtiger_crmentity и vtiger_notes
|
||
- Автоматическое обновление vtiger_crmentity_seq
|
||
- Формирование полного S3 URL в поле filename
|
||
|
||
### 3. Загрузка в S3
|
||
- Использование S3Client с авторизацией
|
||
- Скачивание файла по URL
|
||
- Загрузка в S3 с правильным ключом
|
||
- Обновление метаданных (s3_bucket, s3_key, s3_etag, filesize)
|
||
|
||
### 4. Привязка к проекту
|
||
- Создание связи в vtiger_senotesrel
|
||
- Логирование всех действий
|
||
|
||
## Логирование
|
||
Все действия записываются в файл `logs/project_update.log`
|
||
|
||
## Пример использования
|
||
|
||
```bash
|
||
# Тестовый запуск
|
||
echo '[{
|
||
"content": {
|
||
"description": "Определение судьи Щелковского городского суда Московской области Т.И. Пикулевой от 26 августа 2025 года о возврате искового заявления МОО «Клиентправ», действующего в интересах Соколова Александра Владимировича, к ООО «СКИЛБОКС» о взыскании денежных средств, неустойки, процентов, штрафа, компенсации морального вреда. Исковое заявление оставлено без движения 16 июля 2025 года, недостатки в срок не устранены, заявление возвращается. Разъяснено право на повторное обращение. Определение может быть обжаловано в Московский областной суд в течение 15 дней.",
|
||
"case_number": "М-5071/2025",
|
||
"court": "Щелковский городской суд Московской области",
|
||
"plaintiff_fio": "Соколов Александр Владимирович",
|
||
"uid": "50RS0052-01-2025-007323-70",
|
||
"document_title": "ОПРЕДЕЛЕНИЕ"
|
||
},
|
||
"file": "https://s3.twcstorage.ru/f9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c/letters/58f29988-faac-4a2f-b9c1-41a2441240d6/ПК_e9572340-f3d0-0c4c-310b-edeb2996fd47.pdf_WITH_ENVELOPE.pdf",
|
||
"file_name": "ПК_e9572340-f3d0-0c4c-310b-edeb2996fd47.pdf_WITH_ENVELOPE.pdf"
|
||
}]' | php simple_project_updater_v2.php
|
||
```
|
||
|
||
## Формат ответа
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"project_id": 58462,
|
||
"plaintiff_fio": "Соколов",
|
||
"case_number": "М-5071/2025",
|
||
"uid": "50RS0052-01-2025-007323-70",
|
||
"document_id": "394196",
|
||
"document_ws_id": "15x394196",
|
||
"s3_url": null,
|
||
"message": "Документ успешно создан через CRM API и добавлен к проекту"
|
||
}
|
||
```
|
||
|
||
## Обработка ошибок
|
||
- Валидация входных данных
|
||
- Проверка существования проекта
|
||
- Обработка ошибок загрузки файлов
|
||
- Детальное логирование ошибок
|
||
- Автоматическое обновление последовательности ID
|
||
|
||
## Требования
|
||
- PHP 7.4+
|
||
- Доступ к базе данных CRM
|
||
- Права на запись в директорию логов
|
||
- Доступ к S3 хранилищу через S3Client
|
||
- Файл конфигурации .env с S3 credentials
|
||
|
||
## Отличия от v1
|
||
- Использует прямые SQL запросы вместо CRM API
|
||
- Интегрирован с S3Client для загрузки файлов
|
||
- Автоматически обновляет vtiger_crmentity_seq
|
||
- Сохраняет полный S3 URL в поле filename
|
||
- Более надежная обработка ошибок
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|