Files
crm.clientright.ru/CREATE_COURT_EVENT_README.md

178 lines
7.0 KiB
Markdown
Raw Permalink Normal View History

# Система создания судебных событий в CRM
## Описание
Новая система для автоматического создания событий в календаре CRM на основе данных парсинга судебных сайтов. Решает проблему нестабильной работы workflow и обеспечивает надёжное создание событий через прямые SQL запросы.
## Структура
### 1. CreateCourtEvent_v2.php
**Основной скрипт для создания событий**
- Создаёт событие в календаре CRM через прямые SQL запросы
- Привязывает событие к проекту
- Обновляет поля проекта с датой и временем последнего события
- Надёжно работает даже при высокой нагрузке
**Входные параметры (JSON через stdin или POST):**
```json
{
"project_id": "364118",
"event_name": "Судебное заседание",
"event_date": "02.10.2025",
"event_time": "12:00",
"location": "Зал 305",
"result": "Решение",
"basis": "Основание",
"note": "Примечание",
"publication_date": "02.10.2025"
}
```
**Выходные данные:**
```json
{
"success": true,
"event_id": "4x395438",
"event_numeric_id": 395438,
"event_name": "Решение",
"event_date": "2025-10-02",
"event_time": "12:00:00",
"project_id": 364118,
"message": "Событие успешно создано и привязано к проекту"
}
```
### 2. ParseAndCreateEvent.php
**Обёртка для workflow - полный цикл парсинга и создания события**
- Принимает те же параметры что и `parscourt.php`
- Вызывает `parscourt.php` для парсинга данных с сайта суда
- Извлекает данные последнего события из ответа
- Создаёт событие через `CreateCourtEvent_v2.php`
**Входные параметры (GET/POST):**
- `project_id` - ID проекта (обязательно)
- `status` - статус проекта
- `link1`, `link2`, `link3` - ссылки на дело в суде
- `case_number` - номер дела
- `uid` - УИД дела
- `use_new_parser` - использовать новый парсер (по умолчанию true)
- `skip_duplicate_check` - пропустить проверку дубликатов (по умолчанию false)
**Выходные данные:**
```json
{
"success": true,
"message": "Парсинг выполнен и событие создано",
"event_created": true,
"event_id": "4x395438",
"event_name": "Решение",
"event_date": "02.10.2025",
"event_time": "12:00",
"project_id": "364118"
}
```
## Использование
### Вариант 1: Прямое создание события (если данные уже есть)
```bash
echo '{"project_id":"364118","event_name":"Решение","event_date":"02.10.2025","event_time":"12:00","result":"02-15800/2025 - Решение"}' | php CreateCourtEvent_v2.php
```
### Вариант 2: Парсинг и создание события (полный цикл)
```bash
php ParseAndCreateEvent.php project_id=364118 status="представительство в суде 1й инстанции" link1="https://mos-gorsud.ru/rs/shcherbinskij/services/cases/civil/details/d5ccaf30-7093-11f0-87dc-e54257624d4d"
```
Или через HTTP:
```
GET /ParseAndCreateEvent.php?project_id=364118&status=...&link1=...
```
### Вариант 3: Из workflow CRM
В workflow вместо блока PHP кода используйте блок "HTTP Request":
**URL:** `http://your-domain.ru/ParseAndCreateEvent.php`
**Method:** GET или POST
**Parameters:**
```
project_id=$crmid
status=$projectstatus
link1=$cf_1499
link2=$cf_2278
link3=$cf_2281
case_number=$project_no
uid=$cf_2490
```
**Response handling:**
```php
$response = json_decode($result, true);
if ($response['success'] && $response['event_created']) {
return "yes"; // Событие создано
} else {
return "no"; // Событие не создано
}
```
## Логи
- **CreateCourtEvent_v2.php:** `logs/create_court_event.log`
- **ParseAndCreateEvent.php:** `logs/parse_and_create_event.log`
- **parscourt.php:** `logs/parser.log`
## Преимущества новой системы
1.**Надёжность** - прямые SQL запросы вместо ненадёжного workflow
2.**Независимость** - не зависит от кеша и багов Workflow2
3.**Логирование** - детальные логи на каждом этапе
4.**Гибкость** - можно вызывать из workflow, cron, или вручную
5.**Совместимость** - работает с существующим `parscourt.php`
6.**Универсальность** - поддерживает и региональные, и московские суды
## Обновление полей проекта
При создании события автоматически обновляются поля:
- **cf_1682** - дата последнего события (формат YYYY-MM-DD)
- **cf_1684** - время последнего события (формат HH:MM:SS)
## Связь с проектом
Событие автоматически связывается с проектом через таблицу `vtiger_seactivityrel`, что позволяет видеть его в разделе "Мероприятия" проекта.
## Статус события
По умолчанию событие создаётся со статусом:
- **Тип:** Meeting (Встреча)
- **Статус:** Planned (Запланировано)
- **Видимость:** Public (Публичное)
- **Длительность:** 1 час
## Примечания
- Если дата события пустая, событие не создаётся
- Если время не указано, используется 10:00 по умолчанию
- Владелец события = владелец проекта
- Событие автоматически появляется в календаре CRM
## Миграция с workflow
Чтобы перейти с workflow на новую систему:
1. В workflow замените блок "обрабатываем JSON" и "Создаем Событие по суду" на один блок "HTTP Request"
2. Укажите URL: `http://your-domain.ru/ParseAndCreateEvent.php`
3. Передайте параметры проекта
4. Проверьте ответ на `success: true`
Или просто замените вызов `parscourt.php` на `ParseAndCreateEvent.php` с теми же параметрами.