Предупреждение диспетчеров до того, как грузовик начнёт опаздывать
Функция для платформы управления грузоперевозками, которая отслеживает каждый груз в пути, рассчитывает, успеет ли он к сроку доставки, и заранее уведомляет диспетчера, если появляется риск опоздания. Благодаря этому проблему можно предотвратить заранее, а не узнавать о ней только после звонка клиента.

В сфере грузоперевозок опоздание с доставкой стоит денег и подрывает доверие клиентов. Самая сложная часть заключается в том, что обычно никто не знает о будущем опоздании, пока оно уже не произошло — и исправить ситуацию становится значительно сложнее.
Я разработал функцию, которая меняет этот подход. Она постоянно отслеживает каждый грузовик с активным грузом, оценивает вероятность своевременной доставки и предупреждает диспетчерскую службу ещё до того, как доставка окажется под угрозой.
Проблема простыми словами
Каждая перевозка сопровождается обещанием: доставить груз в указанное место к определённому времени. После отправления грузовика это обещание либо будет выполнено, либо нарушено. Но чаще всего офис узнаёт результат только тогда, когда клиент уже звонит с жалобой.
Мне хотелось, чтобы система непрерывно отвечала на один простой вопрос для каждой перевозки: «Успеет ли этот груз к сроку?»
Как это работает (без сложных терминов)
Каждые несколько минут система незаметно выполняет проверку всех активных перевозок:
- Где сейчас находится грузовик? Получает его актуальные координаты.
- Куда он едет и к какому времени должен прибыть? Берёт информацию из данных о перевозке.
- Успеет ли он? Строит реалистичный маршрут для грузового транспорта и рассчитывает предполагаемое время прибытия.
- Каков статус? Запас времени достаточный → «Вовремя». Времени остаётся мало → «Есть риск». Срок будет пропущен → «Опоздание».
Диспетчер видит всё это на одном экране: счётчики «Вовремя / Есть риск / Опоздание», а также список перевозок, отсортированный по срочности. При выборе перевозки открывается карта в реальном времени, маршрут и информация о том, сколько времени ещё остаётся до дедлайна.
Что действительно помогает избежать проблем
Никто не следит за экраном весь день. Поэтому главная ценность функции заключается в другом: как только перевозка переходит в состояние «Есть риск» или «Опоздание», на компьютере диспетчера сразу появляется уведомление, даже если он работает в другой вкладке.
Одно такое уведомление позволяет вовремя принять решение: связаться с водителем, предупредить клиента или изменить маршрут, пока ещё есть возможность повлиять на ситуацию.
Детали, которые делают функцию удобной
Подобные инструменты быстро начинают раздражать, если работают слишком навязчиво. Поэтому особое внимание было уделено мелочам:
- Без лишних уведомлений. Предупреждение приходит только один раз — в момент, когда перевозка впервые становится проблемной.
- Без ложных тревог. Если невозможно определить адрес или отсутствует срок доставки, система не отправляет уведомления.
- Автоматическая очистка. После завершения или отмены перевозки она исчезает из списка контроля.
- Гибкая настройка. Каждая компания самостоятельно определяет, что считать состоянием «Есть риск» — например, за 30 минут или за 2 часа до дедлайна.
Почему я особенно горжусь этой работой
Самое интересное здесь — не отдельный алгоритм, а повторное использование уже существующей инфраструктуры.
Вместо создания нового сервиса с нуля я расширил существующую систему, которая уже отслеживала местоположение грузовиков и взаимодействовала с картографическими сервисами. Я научил её регулярно проверять каждую перевозку, запоминать предыдущие результаты и отправлять уведомления только тогда, когда действительно происходило важное изменение.
В результате большую часть времени эта функция остаётся незаметной. Но именно в нужный момент она сообщает диспетчеру самое важное: «Эта перевозка, скорее всего, опоздает.»