Files
crm.clientright.ru/crm_extensions/README_project_updater_v2.md
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- 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.
2025-10-16 11:17:21 +03:00

6.1 KiB
Raw Permalink Blame History

Обновление проекта из судебного документа (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
  • Более надежная обработка ошибок