Система автоматизации планирования загрузки и разгрузки трюмов для рыбопромышленной компании
«Русская Рыбопромышленная Компания» — один из лидеров по добыче минтая в России и мире, один из ведущих российских производителей дикой белой рыбы.
С РРПК мы успешно сотрудничали ранее, были знакомы с особенностями отрасли и компании. Когда к нам пришли с третьим проектом, предложение звучало просто: «Нужен инструмент для планирования загрузки и разгрузки трюмов». Но за этой простотой формулировкой скрывалась задача, которую в отрасли годами решали вручную.
Транспортное судно выходит в море, забирает улов с нескольких траулеров — тонны мороженой рыбы, икры, муки, консервов. Дальше ему предстоит зайти в четыре порта и в каждом выгрузить строго определённые партии. Если загрузить всё подряд, в первом же порту выяснится, что нужный груз лежит в самом низу под центнерами другого товара. Разгрузка растягивается на часы, судно простаивает, теряются деньги.
Добавьте товарное соседство: замороженную рыбу нельзя класть рядом с мукой, криопротекторы должны быть в первом и втором трюмах, тара — в третьем и четвёртом. И всё это нужно учесть заранее, когда трюм ещё пуст.
Но проблема была не только в загрузке. Даже правильно уложенный груз нужно было ещё правильно разгрузить. В каждом порту — своя партия товара, свои ограничения по времени стоянки, свои особенности портового оборудования. Логисту приходилось планировать последовательность разгрузки так, чтобы в каждой точке маршрута экипаж знал, что именно и в каком порядке выгружать.
В РРПК этим занимался опытный логист, который для работы использовал стандартный Excel. На каждое судно уходило несколько часов работы, ошибка могла обойтись в сотни тысяч рублей простоя.
РРПК поставили задачу, которая в морской логистике часто решается практически вручную:
- создать автоматический инструмент планирования загрузки и разгрузки трюмов с учётом десятков параметров;
- интегрировать его в уже используемый Битрикс24, чтобы логисты работали в единой для всей компании среде;
- обеспечить учёт товарного соседства, маршрута следования и особенностей конструкции каждого судна;
- спланировать оптимальную последовательность разгрузки в каждом порту;
- выдавать по итогу готовую схему загрузки и план разгрузки в привычном Excel за минуты, а не за часы ручной работы.
Любая логистическая система начинается с понимания, что именно следует оптимизировать. Мы сознательно выбрали фокусом весь цикл — от момента планирования загрузки до последней разгрузки в конечном порту. Логист получает данные о грузах и маршруте, а система за минуты выдаёт чёткий план действий для каждого порта разгрузки. Именно в эту точку упирается вся цепочка: производство, транспорт, порты.
Эта точка определила требования:
- система должна работать быстро — несколько минут вместо нескольких часов;
- схема должна быть реалистичной для любого типа судна, с учётом конструктивных особенностей старого и нового флота компании;
- алгоритм должен учитывать товарное соседство, последовательность портов и физические ограничения трюмов при загрузке;
- система должна планировать оптимальную последовательность разгрузки, показывая экипажу, что именно и из какой части трюма доставать в каждом порту;
- интеграция с Битрикс24 и возможность автоматического обмена данными через API.
На этой логике выросло продуктовое решение: модуль Битрикс24 для автоматизации планирования загрузки и разгрузки на базе сложного алгоритма распределения, конфигуратора трюмов и интеграции с существующими системами клиента.
Базовая конфигурация и алгоритм распределения
Прежде чем писать алгоритм, нам нужно было создать инструмент для описания геометрии судов. Во флоте РРПК десятки кораблей разных поколений — каждый со своими особенностями.
- Создали конфигуратор трюмов с возможностью задать размеры, количество ярусов и люков для каждого судна.
- Добавили страницу редактирования в интерфейс Битрикс24, чтобы логисты могли работать с конфигурациями без обращения к разработчикам.
- Разработали первую версию алгоритма оптимизации, который распределяет груз по трюмам с учётом маршрута и товарного соседства, а также планирует последовательность разгрузки.
- Реализовали возможность планировать загрузку сразу с двух траулеров в один день — частая ситуация в работе флота.
Работа с товарно-материальными ценностями
Оказалось, что кроме готовой продукции суда берут на борт запасы для экипажей траулеров — муку, консервы, криопротекторы. Эти грузы загружаются в портах и требуют отдельной логики размещения.
- Доработали компонент загрузки для определения запасов по критерию портовой загрузки.
- Реализовали определение порядка трюмов для ТМЦ на основании трюмов, используемых при перегрузке готовой продукции.
- Добавили расчёт доступных ярусов под загрузку с учётом планируемой готовой продукции.
- Распараллелили процесс сохранения данных по ТМЦ и готовой продукции для ускорения работы системы.
- Переписали часть алгоритма специально под укладку провизии и материалов — она отличается от работы с уловом.
Адаптация под флот заказчика
У РРПК два поколения судов с разными конструктивными особенностями. Кроме того, есть жёсткие требования по размещению определённых типов грузов.
- Добавили логику для старого и нового флота с учётом различий в конструкции трюмов.
- Внедрили требование размещать криопротекторы строго в 1-м и 2-м трюмах, а тару — в 3-м и 4-м.
- Создали справочник подтипов продукции для более тонкого разграничения товарного соседства.
Интеграция и доработка логики люков
Чтобы система работала автоматически, нужно было наладить обмен данными с существующими системами клиента и доработать логику размещения на люках.
- Разработали сущности для работы с номенклатурой, упаковкой и ежедневным производством.
- Настроили интеграцию с API клиента для автоматической передачи данных о грузах и маршрутах.
- Переработали логику использования люка: теперь туда укладываются не только грузы для первого порта, но и для последующих — если это не мешает более ранним разгрузкам. Система проверяет содержимое каждого трюма и размещает товары на люке так, чтобы они были доступны в нужный момент без лишних перестановок.
- Реализовали функцию планирования разгрузки: для каждого порта система показывает, какие грузы и из какой части трюма нужно выгружать, в какой последовательности, чтобы минимизировать время стоянки и объём перемещений.
Система автоматизации планирования загрузки и разгрузки трюмов дала логистам РРПК возможность планировать за минуты то, на что раньше уходили часы, убрала человеческий фактор из критических расчётов, а для компания — снизила риски простоя судов в портах и оптимизировала процесс разгрузки.
Итоги первых месяцев эксплуатации:
- Время планирования загрузки и разгрузки одного судна: с 3–4 часов до 10 минут
- Сокращение ошибок: минимизирован человеческий фактор при расчёте товарного соседства и последовательности разгрузки
- Оптимизация времени разгрузки: снижение простоя судов в портах за счёт правильной последовательности размещения грузов и заранее спланированного порядка выгрузки
- Сокращение трудозатрат экипажа: экипаж получает готовый план разгрузки и не тратит время на поиск нужных грузов в трюме
проекта