- 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.
6.1 KiB
6.1 KiB
Обновление проекта из судебного документа (v2)
Описание
Скрипт для автоматического обновления проекта в CRM на основе данных из судебного документа с использованием прямых SQL запросов и S3Client.
Использование
1. Через stdin (рекомендуется)
echo '[{"content": {...}, "file": "...", "file_name": "..."}]' | php simple_project_updater_v2.php
2. Из n8n через SSH
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
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
Формат входных данных
[
{
"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
Пример использования
# Тестовый запуск
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
Формат ответа
{
"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
- Более надежная обработка ошибок