5.0 KiB
5.0 KiB
SQL запросы для проверки полиса в n8n
Описание
SQL-запросы для проверки полиса в базе данных lexrpiority. Возвращают все поля из таблицы + поле found (1/0) для разделения потоков в n8n.
Варианты запросов
1. n8n_policy_check_sql.sql (рекомендуется)
Полная проверка: существование + валидность тарифа
Возвращает:
- Все поля из таблицы
lexrpiority(SELECT *) found: 1- полис найден И тариф подходит для задержки рейсаfound: 0- полис найден, но тариф не подходит- Пустой результат - полис не найден в базе
Использование в n8n:
- Добавьте MySQL ноду
- Используйте запрос из файла
- Параметр
:voucherзамените на{{ $json.normalized }}или{{ $json.police_number }} - После ноды добавьте IF ноду с условием:
{{ $json.found }} === 1
2. n8n_policy_check_sql_simple.sql
Только проверка существования полиса (без проверки тарифа)
Возвращает:
- Все поля из таблицы
lexrpiority(SELECT *) found: 1- полис найден- Пустой результат - полис не найден
Использование:
- Если нужно только проверить наличие полиса, без проверки тарифа
3. n8n_policy_check_sql_with_data.sql
Расширенный вариант: возвращает данные + флаги
Возвращает:
- Все поля из таблицы
lexrpiority(SELECT *) is_valid_tariff- 1/0 (валиден ли тариф)found- 1/0 (найден и валиден, основной для IF Node)
Использование:
- Если нужны данные о полисе для дальнейшей обработки + детальная проверка тарифа
Workflow в n8n
Webhook
→ [Нормализация номера полиса] (Code Node)
→ [Проверка полиса] (MySQL Node)
→ [IF Node: policy_found_and_valid === 1]
├─ Да (1) → Полис валиден → Продолжение формы
└─ Нет (0) → Полис не найден/не валиден → Загрузка скана полиса
Параметры запроса
:voucher- номер полиса (уже нормализованный, кириллица → латиница)- Используйте значение из ноды нормализации:
{{ $json.normalized }}
- Используйте значение из ноды нормализации:
Валидные тарифы
Basic тарифы:
STB0048,STB1099,STB1100,STB2099,AVS21500,AVS22500
Other тарифы:
SPV0001,SPV0002,SPV0003,SPV0004,SPV0005STV0090SPV1001,SPV1002,SPV1003,SPV1004,SPV1005SPV2001,SPV2002,SPV2004,SPV2005OPV1001,OPV1002,OPV1003,OPV1004,OPV1005OPV2001,OPV2002,OPV2004,OPV2005
Пример использования в MySQL Node n8n
Query:
SELECT
*,
CASE
WHEN (
tariff_code_basic IN ('STB0048', 'STB1099', 'STB1100', 'STB2099', 'AVS21500', 'AVS22500')
OR
tariff_code_other IN ('SPV0001', 'SPV0002', 'SPV0003', ...)
) THEN 1
ELSE 0
END AS found
FROM lexrpiority
WHERE voucher = :voucher
LIMIT 1;
Parameters:
{
"voucher": "{{ $json.normalized }}"
}
Пример IF Node условия
Condition:
{{ $json.found }} === 1
Или:
{{ $json.found }} == 1
Доступные поля из результата
После выполнения запроса доступны все поля из таблицы lexrpiority:
id,row_no,agent_code,voucherinsured_name,insured_birth,insured_gender,statusinsured_from- дата начала полиса (используется на фронтенде)insured_to- дата окончания полиса (используется на фронтенде)tariff_code_basic,tariff_code_otherpremium_cur,premium_loc- И другие поля таблицы
found- флаг валидности (1/0)
Пример использования данных в Code Node
// После MySQL Node доступны все поля
const insuredFrom = $input.item.json.insured_from; // "19.11.2025"
const insuredTo = $input.item.json.insured_to; // "24.11.2025"
const found = $input.item.json.found; // 1 или 0
return {
json: {
found: found,
insured_from: insuredFrom,
insured_to: insuredTo,
// ... остальные поля
}
};