Перейти к содержанию
Кейс · FLEET-DISPATCH

// 02 — Кейс

Логистика · РФ

Заявки в почте и чатах — в диспетчерскую в одном окне

Автоперевозчик со ~120 машинами принимал заявки в почте и Telegram, а ставки считал в Excel. Мы собрали кабинет грузовладельца и диспетчерскую: расчёт ставки за 3 минуты вместо 40, трек рейса — из ГЛОНАСС, документы — через Диадок.

заявка → ставка → рейс → документы · в одном окне

CASE.02 — АВТОПАРКМАГИСТРАЛЬ

// Заявка ушла в кабинет — рейс уже в диспетчерской

LIVE
Роль
Кабинет грузовладельца + диспетчерская
Ядро
Калькулятор тарифов и трекинг рейсов
Срок
12 недель до продакшна · пилот на 10-й
Команда
4 роли от TO-DEV + начальник смены от перевозчика
Статус
В продакшне · опубликовано с обезличением

// Полный паспорт кейса — в главах ниже: стек, сроки, метрики

01Задача

Заявка приходила в почту, Telegram и телефон — диспетчер собирал её руками

Российский автоперевозчик: ~120 собственных машин плюс наёмный транспорт, магистральные рейсы по РФ. Клиенты — грузовладельцы, заявки приходят оптовыми партиями и каждая ждёт ответа с цифрой. Пока заявка лежала в общей почте или в личном чате диспетчера, конкурент успевал отправить своё КП первым

Ставку считали в Excel — около 40 минут на расчёт и оформление. Статус рейса клиент узнавал звонком диспетчеру: по замеру, 38% рабочего времени смены уходило на ответы «где машина». ТТН и УПД передавались бухгалтерии вручную — часть документов терялась и всплывала только на сверке

  • Расчёт ставки в Excel — ~40 минут на КП, пока конкурент уже отправил своё предложение грузовладельцу
  • Статус рейса — только звонком диспетчеру: 38% времени смены уходило на вопрос «где машина»
  • ТТН и УПД передавались бухгалтерии вручную — документы терялись и находились на сверке
  • Простой машины под погрузкой нигде не считался и не попадал в себестоимость рейса

KPI зафиксировали до старта, чтобы не спорить о результатах потом: не меньше 70% заявок через кабинет ко второму месяцу, КП — не дольше 10 минут, дебиторка короче на 10 дней

02Что построили

Кабинет грузовладельца и диспетчерская — поверх текущего учёта, без замены 1С

1С:УТ осталась системой учёта — бухгалтерия работает там, как и работала. Мы построили вокруг неё слой работы с клиентом и рейсом: личный кабинет грузовладельца, диспетчерскую панель и документооборот, который собирается из рейса, а не вводится руками

Главное правило системы: у рейса один источник правды. Заявка, ставка, трек, документы и счёт цепляются к одной карточке рейса — диспетчер и клиент смотрят на одни и те же данные

  • Личный кабинет грузовладельца: заявка, расчёт онлайн, документы и статусы рейсов — в одном окне
  • Диспетчерская панель: рейсы, экипажи, ГЛОНАСС-треки на карте, отклонения от плана
  • Калькулятор тарифов: сетки по направлениям, коэффициенты сезона и типа кузова — КП за минуты, а не за 40 минут
  • ЭДО с Диадоком: УПД и транспортная накладная формируются из карточки рейса и уходят на подписание
  • Модуль путевых листов: выпуск и закрытие в том же окне, без бумажных дублей
  • Обмен с 1С:УТ: реализация и счёт создаются из рейса — без ручного ввода

// Галерея кейса · клик открывает кадр крупно

FIG.F.01 — ЗАЯВКАF.01
FIG.F.02 — КАЛЬКУЛЯТОРF.02
FIG.F.03 — ДИСПЕТЧЕРСКАЯF.03
FIG.F.04 — ДОКУМЕНТЫF.04
FIG.F.05 — ОБМЕН С 1СF.05

03Технологии и интеграции

Стек выбирали под треки и документы, а не наоборот

Требования были простые: статус рейса — из трекера ГЛОНАСС, а не из звонков водителю; документы — с юридической силой через Диадок; 1С — без ручного ввода; данные — в контуре РФ. Под них и подбирали инструменты

Бэкенд

Python 3.12FastAPIPostgreSQL + PostGISCelery + Redis

Гео-треки лежат в PostGIS: история маршрута и «кто ближе к точке разгрузки» — запросом к БД. Опросы трекеров живут в Celery и не блокируют API в утренний пик выставления КП

Фронтенд

Vue 3 · диспетчерскаяSSR + нативный JS · кабинет

Панель диспетчера — плотные таблицы и карта: это работа для Vue 3. Кабинет грузовладельцу нужен простой и быстрый — серверный рендер и нативный JS без лишнего бандла

Интеграции

Omnicomm REST · ГЛОНАССДиадок API1С:УТ · OData / CommerceMLSMS водителям

Статус рейса собирается из трекера, а не из звонков водителю. УПД и ТрН подписываются в Диадоке без бумаги; реализация и счёт уходят в 1С:УТ сами — в обе стороны ходит и статус оплаты

Инфраструктура

Selectel · данные в РФDockerБэкапы почасово

Данные — в контуре РФ. Окружения dev/stage/prod развёрнуты одинаково, восстановление из бэкапа отрепетировано до пилота

Безопасность

Ролевой доступЖурнал действий по документам

Грузовладелец видит только свои рейсы, диспетчер — свою смену. Каждое действие с документом пишется в журнал: кто и когда отправил или подписал

04Результат

Ставка за 3 минуты, а дебиторка короче на 12 дней

3 мин

Расчёт КП

Было ~40 минут в Excel — КП уходило позже, чем у конкурента

87%

Заявок через кабинет

Мимо почты и чатов; цель была ≥70% ко второму месяцу

−12 дн

Дебиторка

Счёт-УПД уходит в день рейса через Диадок

96%

Рейсов с автотреком

Статус в кабинете клиента собирается из ГЛОНАСС, без звонков

Диспетчеры перестали быть «телефонной станцией»: время смены ушло в планирование и работу с отклонениями — опоздания, перестановки экипажей, простой под погрузкой, который теперь виден в себестоимости рейса

Метрики — за первые три месяца после запуска, значения округлены. Компания и направления не названы — см. главу 08

05Сроки

12 недель до продакшна — пилот поехал на десятой

Самое долгое — не код, а доступы и регламенты: запрос в ГЛОНАСС-провайдера и учётку Диадока ушли в первый день проекта, регламент ЭДО согласовали с бухгалтерией параллельно разработке. Поэтому чужой доступ не остановил пилот

Недели 01–02

Дискавери и замер

Замер: 38% времени диспетчеров — ответы «где машина». Фиксация KPI. Запрос доступов ГЛОНАСС и Диадок — день 1

Недели 03–05

Ядро: рейсы и тарифы

Модель рейса, тарифные сетки по направлениям, кабинет грузовладельца MVP с расчётом ставки

Недели 06–07

Трекинг

Omnicomm REST, треки на карте диспетчерской, ETA в кабинете клиента

Недели 08–09

Документы и 1С

УПД и ТрН собираются из рейса и уходят в Диадок, реализация и счёт — в 1С:УТ

Неделя 10

Пилот

10 грузовладельцев и 2 диспетчерские смены на живых рейсах. Замечания смен — прямо в бэклог

Недели 11–12

Роллаут и обучение

Перевод всех клиентов в кабинет, обучение диспетчеров, панель контроля отклонений

Итог: 12 недель, до пилота — 10. Без остановки перевозок

06Экспертиза

Четыре роли — тарифы весили больше кода

Системный аналитик~30% часов

Тарифные сетки и правила расчёта — сердце проекта: направления, сезоны, типы кузова, минимальные плечи. Плюс регламент ЭДО: кто подписывает, что делать при отказе, куда падает подписанный УПД

Бэкенд-разработчик~35% часов

API кабинета и диспетчерской, хранение и обработка треков, фоновые опросы трекеров, обмен с 1С:УТ и Диадоком

Фронтенд-разработчик~25% часов

Карта с треками, плотные таблицы диспетчерской, UX кабинета грузовладельца — от расчёта ставки до списка документов

Тестирование и запуск~10% часов

Сверка документов с бухгалтерией, нагрузка утреннего выставления КП, обучение двух диспетчерских смен

Домен-экспертизу дал начальник смены перевозчика: он знал, где тонут заявки и почему простой под погрузкой дороже пробега. Наша роль — превратить «как мы везём» в протокол и интерфейс, не потеряв ни одного правила

07Ориентир для повторения

Что нужно, чтобы повторить такую диспетчерскую

Нужно от заказчика

01История рейсов и тарифов за 12 месяцев — на ней собираем тарифные сетки и проверяем расчёт на реальных перевозках
02Доступ к личному кабинету ГЛОНАСС-провайдера или серверу Omnicomm — без треков кабинет теряет главную ценность
03Владелец процесса от логистики, решающий спорные тарифные случаи за двое суток, — всплывают они еженедельно

Артефакты старта

04Бухгалтерия для регламента ЭДО: кто подписывает УПД и ТрН, в какие сроки, что делать при отказе контрагента
05Справочник клиентов из 1С — чтобы кабинеты и документы создавались по тем же контрагентам, что в учёте
06Список 20 частых направлений — для первичных тарифных сеток до загрузки полной истории

Вилки сроков и команды

07Без ЭДО — минус 3 недели: документы подключаются вторым этапом, рейсы и ставки работают и без них
08Без обмена с 1С — минус 2: счета бухгалтерия вбивает руками в переходный период
09Команда 3–4 роли — типовой минимум этого класса. Меньше — дольше: узкое место — регламенты, а не код

Если тарифы живут «в голове директора» — это не блокер: первые сетки собираем из истории рейсов за месяц. Типовая вилка проектов этого класса — 10–14 недель

08Честно оговорим

Что обезличено — и что не показываем

01

Перевозчик не назван: направления, имена сотрудников и клиенты убраны — объём публикации согласован с владельцем в части метрик без идентификации

02

Метрики показаны за первые три месяца и округлены; сырые дашборды диспетчерской не публикуем

03

Фотография — временный плейсхолдер до согласования съёмки; интерфейсы показаны схемами, а не скриншотами, — по той же причине

04

Хотите такой же разбор своей диспетчерской — расскажите о задаче в форме ниже

// CTA — Разбор задачи

Похожая задача в вашей логистике — расскажите

Двух коротких вопросов и контакта хватит для первого ответа. Если задачу закрывает готовое решение — скажу об этом первым делом

Развернуть полный бриф — на главной

Достаточно контакта — задачу обсудим в ответ. Имя и подробности не обязательны: это минимум данных