Files
aiform_prod/docs/n8n_nodes/README_SETUP.md
AI Assistant 080e7ec105 feat: Получение cf_2624 из MySQL и блокировка полей при подтверждении данных
- Добавлен сервис CrmMySQLService для прямого подключения к MySQL CRM
- Обновлён метод get_draft() для получения cf_2624 напрямую из БД
- Реализована блокировка полей (readonly) при contact_data_confirmed = true
- Добавлен выбор банка для СБП выплат с динамической загрузкой из API
- Обновлена документация по работе с cf_2624 и MySQL
- Добавлен network_mode: host в docker-compose для доступа к MySQL
- Обновлены компоненты формы для поддержки блокировки полей
2025-12-04 12:22:23 +03:00

105 lines
2.8 KiB
Markdown

# Настройка OCR Status Tracking в n8n
## Шаги для добавления нод в workflow `fnSo3FTTbQcMjwt3`
### 1. Открой workflow в n8n
https://n8n.clientright.pro/workflow/fnSo3FTTbQcMjwt3
### 2. Добавь ноды в следующем порядке:
#### Нода 1: `update_ocr_status` (PostgreSQL)
**Расположение:** После `Postgres PGVector Store1`
**Позиция:** [3850, 1664]
**SQL запрос:**
```sql
UPDATE clpr_claim_documents
SET
ocr_status = 'ready',
ocr_processed_at = NOW()
WHERE id = '{{ $('files').item.json.claim_document_id }}'::uuid
RETURNING
id AS doc_id,
claim_id,
ocr_status,
(SELECT COUNT(*) FROM clpr_claim_documents WHERE claim_id = clpr_claim_documents.claim_id) AS total_docs,
(SELECT COUNT(*) FROM clpr_claim_documents WHERE claim_id = clpr_claim_documents.claim_id AND ocr_status = 'ready') AS ready_docs;
```
**Credentials:** `timeweb_bd` (Postgres account 2)
---
#### Нода 2: `redis_incr_ready` (Redis)
**Расположение:** После `update_ocr_status`
**Позиция:** [4100, 1664]
**Параметры:**
- Operation: `incr`
- Key: `claim:ocr:ready:{{ $json.claim_id }}`
**Credentials:** `Redis account`
---
#### Нода 3: `check_all_ready` (IF)
**Расположение:** После `redis_incr_ready`
**Позиция:** [4350, 1664]
**Условие:**
```
{{ $('update_ocr_status').item.json.total_docs }} == {{ $('update_ocr_status').item.json.ready_docs }}
```
---
#### Нода 4: `publish_docs_ready` (Redis)
**Расположение:** TRUE выход из `check_all_ready`
**Позиция:** [4600, 1550]
**Параметры:**
- Operation: `publish`
- Channel: `clpr:claim:docs_ready`
- Message:
```javascript
{{ JSON.stringify({
claim_id: $('update_ocr_status').item.json.claim_id,
total_docs: $('update_ocr_status').item.json.total_docs,
ready_docs: $('update_ocr_status').item.json.ready_docs,
timestamp: new Date().toISOString()
}) }}
```
**Credentials:** `Redis account`
---
### 3. Соединения (Connections)
```
Postgres PGVector Store1 → update_ocr_status
update_ocr_status → redis_incr_ready
redis_incr_ready → check_all_ready
check_all_ready (TRUE) → publish_docs_ready
check_all_ready (FALSE) → (конец)
```
### 4. Сохрани и активируй workflow
---
## Проверка
После добавления нод, при обработке документа:
1. Статус в `clpr_claim_documents.ocr_status` будет меняться на `'ready'`
2. Счётчик в Redis `claim:ocr:ready:{claim_id}` будет инкрементиться
3. Когда все документы готовы, событие `clpr:claim:docs_ready` будет опубликовано в Redis