Простой софт, чтобы водители не дрались в очереди на выгрузку металлолома

image

На сегодняшний момент металлолом — наше всё. Нам его надо ОЧЕНЬ много, и мы его закупаем.

Лом нам везут ломовозами с площадок сбора металлолома.

Бывало, колонна под сотню ломовозов выстраивалась в очередь на пункт выгрузки, что доставляло немало проблем. Водители могли простоять полдня в такой очереди. Она при этом двигалась, то есть водитель не мог отъехать поесть или поспать. Периодически возникали естественные ситуации, характерные для любой очереди:

Я только спросить.

— А за меня друг занимал.

— Мне срочно — я беременный.

— Вас здесь не стояло.

Всё это вносило море хаоса.

Этот откровенный бардак не устраивал никого: ни водителей, ни операторов КПП, ни приёмщиков лома. Даже в ближайшем МФЦ уже внедрили электронную очередь! А мы чем хуже?

Нужно взять проблему, сутевую часть имеющегося решения, придать решению инженерную огранку, немного обточить модными технологиями, развернуть в контуре, запустить в работу и шедевр готов.

На словах просто, на деле — как обычно.

image

Зачем нам столько лома?


Металлолом в России — это что-то вроде биржевого актива. Его всегда меньше, чем потребности всех сталеплавильных заводов страны.

Нам нужно неприлично много тонн лома в сутки — у нас на Выксунском металлургическом заводе из него «варится» сталь для колёс, труб разного назначения и других полезных изделий.

Возможно, водопроводная труба у вас дома тоже была изготовлена на Выксунском заводе, но, прежде чем попала к вам, в своей прошлой жизни была гоночной машиной и её вела дорога приключений. А потом кто-то сдал её нам, и она получила вторую жизнь.

Почему на дороге могло скопиться до сотни ломовозов


Верхняя цена на лом определяется несколькими ключевыми факторами и меняется постоянно, в том числе на неё влияет загрузка складов. Например, зимой лома собирается меньше (его не видно под снегом), поэтому осенью лом дороже, чем летом — нужно успеть заполнить склад на зиму.

Заводы, соответственно, меняют закупочные цены, чтобы получить нужную мощность входящего потока. Поставщики следят за ценами, чтобы успеть продать лом дороже.

И получалось так, что в дни, когда мы объявляли, что через неделю снизим стоимость закупки, у нас возникала проблема — на пункте выгрузки металлолома выстраивалась большая очередь: обеспечить выгрузку ломовоза дело не минутное. Нельзя просто сбросить всё в кучу и уехать.

Машины приходят к складам и запускаются на три разные точки выгрузки. Точка выбирается в зависимости от того, какой лом привёз ломовоз. А он бывает разных видов, обычно отличается по чистоте и среднему размеру куска.

Например, грузить негабарит туда, где лежит порезанный лом после шредера, — так себе идея.

Ещё важно понимать, что лом надо проверять, чтобы в нём не привезли дерево, баллон, мусор или вообще какие-то опасные предметы типа мин и гранат. Лом должен принять мастер, ответственный за то, что он выгружает на предприятии.

Идеальный мир vs суровая реальность


В идеальном мире разгрузка ломовозов выглядит так:

  1. Мы знаем свою потребность в ломе.
  2. Мы можем управлять скоростью поступления лома через установку цен на него.
  3. Поставщик (или перевозчик) лома заранее говорит, что привезёт, и бронирует себе место (точку выгрузки).
  4. Когда машина прибывает, она занимает место в очереди, дожидается своего времени и отгружается на заданной точке.


На практике это не работает достаточно хорошо, потому что в период колебания цен на рынке поставщикам очень важно отправить лом до момента, когда новая (сниженная) цена вступит в силу. В таких случаях они снаряжают все свои ломовозы и этот караван тянется к нашему КПП.

Водители же тоже понимают ситуацию и всеми правдами и неправдами стараются пролезть к выгрузке на площадку завода как можно раньше.

Именно это вызывает конфликты и неразбериху. В два последних дня перед снижением цены машин на дороге к заводу бывало столько, что туда не могли подойти даже автобусы с рабочими.

На памяти случай 2021 года, когда в очереди стоял 61 ломовоз.

image

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

Естественно, всем этим были недовольны поставщики, были недовольны водители и были недовольны мы.

В какой-то момент логисты решили обратиться в ИТ-подразделение за электронной очередью, чтобы снизить накал страстей. А то странно, что в ближайшей к заводу аптеке электронная очередь есть, а у нас с нашими высокими технологиями — нет.

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

Что мы сделали


Хоть на первый взгляд запрос и выглядит простым как 5 копеек, и, казалось бы, даже над способом решения проблемы не надо ломать голову — ведь внутренний заказчик сам обращается с понятной идеей решения. Но мы не из таких. Нам нужно было полностью разобраться в задаче и понять, какое решение из всех возможных будет оптимальным.

Да, заводу нужна была электронная очередь для ломовозов. Мы чётко понимали, что в очередь надо записываться не в момент прихода ломовоза, а до его отправки. Это нужно, чтобы поставщик занимал окно в графике выгрузок и отправлял машину, уже точно зная, что она в очереди на выгрузку не застрянет, а значит приедет, разгрузится и сможет поехать в новый рейс.

Это же было нужно нашей охране, потому что охранники устали терять время, круглосуточно пытаясь навести порядок среди ожидавших выгрузки водителей.

Это нужно было и нам самим — ЛПК и логистам: первым — чтобы планировать работу оборудования для выгрузки, зная планируемый приход лома, а вторым — чтобы наконец было что ответить в вечных спорах о повышении тарифов на перевозки из-за простоев.

Также нам важно было понимать, приехал ли водитель на выгрузку или можно выгружать следующего в очереди.

Забегая вперёд, для этого мы сделали телеграм-бот, где водитель, зная свой номер заявки на выгрузку, должен «зачекиниться» на территории завода. Он отправляет боту геопозицию, а бот проверяет, активна ли заявка и где относительно КПП находится водитель. В зависимости от этого бот фиксирует прибытие или просит повторить номер заявки и отправить геопозицию ещё раз.

Через этого же бота мастер смены может пригласить водителя на выгрузку и удостовериться, что водитель не уснул, а готов выгружаться — такие ситуации случались не раз, когда водитель спал сном младенца и свою очередь просто проспал.

Ещё было нужно увязать управление потребностью цеха и склада с электронной очередью, то есть управлять потоком лома не только ценой, но и свободными окнами.

В общем, для нас важно знать, сколько сейчас машин на разгрузке, сколько прибудет, какая очередь на выгрузку — и сейчас мы это точно знаем, потому что все машины зарегистрированы.

Как работает


По умолчанию мы готовы принять весь доступный лом, система открывает каждый день максимум окон для выгрузки на все 24 часа в графике.

В зависимости от потребности в ломе мы можем как увеличить, так и уменьшить количество окон.

Это нужно для того, чтобы склады не переполнились, если по какой-то причине фактическое потребление лома ниже планового. Учитывая, что мы работаем в режиме 24/7, для нас критически важен функционал ограничения пропускной способности приёмки лома — например, в случае внеплановых ремонтов (при выходе из строя специальной техники).

Окно занимается так: поставщик через наш веб-интерфейс выбирает тип лома, доступные дату и время, указывает данные авто и водителя.

Когда ломовоз приезжает к нам на парковку, водитель нажимает в чат-боте кнопку, что он приехал, указывает свой номер заявки, отправляет геопозицию и тем самым регистрирует своё прибытие.

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

image

Пройдя проверки на КПП, водитель получает сообщение в чат-боте и направляется к точке выгрузки. Так как все документы уже проверены, все данные по нему и его грузу есть в системах, то нужно просто выгрузиться и спокойно поехать домой.

image
Скриншот выезда с территории завода после разгрузки

Бывает, что водитель убежал перекусить или вздремнул, а его внезапно вызвали на выгрузку.

Тогда работает такой сценарий: оператор вызывает водителя, в чат-бот водителю приходит приглашение на разгрузку и с этого момента начинается обратный отсчёт. У водителя есть всего 10 минут, чтобы подтвердить, что он на парковке, и нажать кнопку «я здесь» в боте и педаль газа в машине. Если водитель успел ответить — всё происходит как в описанном выше сценарии. Если не успел — очередь будет отложена до первого свободного времени между штатными окнами разгрузки.

image

Может случиться и так, что водитель после трудной дороги уснул крепко и пропустил даже повторный вызов. В этом случае очередь аннулируется и для въезда должна быть создана повторная заявка.

image

Если чат-бот «отвалился» (ну да, бывает, ничто не идеально) или водитель приехал с кнопочным телефоном, проблем с бронированием не будет. Бронирование — это просто резерв времени в системе, поэтому как раз для таких случаев или жизненных ситуаций, когда что-то идёт не так, мы оставили возможность бронирования по старинке, когда водитель может пешочком прогуляться до КПП или просто позвонить в контакт-центр, не покидая кабины любимого ломовоза. Данные об очереди дублируются на табло на парковке — там отображаются номера машин, чья очередь на выгрузку подошла.

Есть специальный байпас для ситуаций транспортных коллапсов, когда можно вручную выставить больше слотов под опоздавших — это нужно в случае дорожно-ремонтных работ, например, либо серьёзного ДТП близко к заводу.

Что в итоге


Нельзя сказать, что водителям и поставщикам всё это сразу понравилось. Был период смуты, когда было непонятно, что решается по понятиям, а что через электронную очередь. Был бунт, когда электронной очереди не доверяли. Но как только мастера участков приучили водителей и поставщиков, что теперь электронная очередь — всему голова и работа идёт либо только через неё, либо никак — всё стало работать как часы. Сейчас люди уверены в продукте, стало удобно, нет скандалов, всегда можно запланировать работу автопарка и водителей.

Стало легче разбираться с ситуациями, когда поставщика или машину внесли в «чёрный список», а машина приехала. Раньше такой водитель мог создать целую проблему, потому что с ним надо было разобраться уже на площадке. Сейчас у такого поставщика в принципе не получится даже занять окно, если он оказался в «чёрном списке».

В день мы отрабатываем около 70 слотов в расписании. За цикл в 40 минут обслуживается 3 машины на 3 точках. Достаточно приёмщика и мастера участка/бригадира. Водители, как правило, не первый раз приезжают, они уже отлично знают, как всем этим пользоваться, куда ехать.

Архитектурно это сервер с бэком, на фронте веб-интерфейс для сайта с регистрацией поставщиков и заявок (там личные кабинеты), ещё одна версия личного кабинета для мастеров участков (они принимают заказы и подтверждают это) и ещё одна для КПП (они смотрят машины и подтверждают их въезд-выезд) плюс одно рабочее место для управления табло.

Второй фронт — телеграм-бот, который соединён с базой через бэк. Всё это на виртуалке внутри контура ОМК.

image

Обычная же задача? Да!


В электронной очереди нет ничего романтичного. Это обычная ИТ-задача. К сожалению или к счастью, она требует понимания процессов производства, потому что просто взять и развернуть готовое решение нельзя.

Мы выбирали как между разными кастомизируемыми решениями, так и написанием собственноручно. В результате решение подрядчика оказалось экономически более привлекательным. И там пришлось хорошо поработать именно с процессами, потому что увязать всё в единую систему — это чуть сложнее, чем накатить готовое решение. У каждой точки есть специфика, начиная от правильной регистрации поставщика лома, подачи заявки на машину и заканчивая доработками по бизнес-процессу. Не надо забывать, что, кроме контроля бизнес-процессов, нужно было эффективно управлять и самим процессом внедрения.

Материала о том, как реализовывался сам проект, хватит на ещё одну полноценную статью, ведь за время реализации у нас полностью сменилась проектная команда подрядчика и частично сменилась наша собственная (до конца дошли самые стойкие — архитектор и несколько бизнес-экспертов).

В общем, нюансов там много. Это всё далеко не rocket science, не новые ML-горизонты и не «искусственный интеллект для распределения водителей».

Из этого состоит 90% работы с ИТ на заводе. Это инженерный подход: увидеть задачу, сгенерить пул вариантов решения, выбрать наиболее оптимальное, внедрить, убедиться, что стабильно работает, передать в эксплуатацию и на поддержку.

© Habrahabr.ru