5

Logistics_Analyzer "Что если?" и новые функции программы

Серия Разработка логистической программы

В старых постах:

  1. Разработка своей программы, суровые реальности и как такое продавать?

  2. Logistics_Analyzer виджет панель и как она работает

    Я уже немного рассказал о процессе разработки и функциях программы. Теперь покажу, что удалось улучшить за неделю, и расскажу об отдельной функции "Что если?".

Рассмотрим развитую розничную сеть: в каждом регионе — 10 магазинов и 1 склад. Ключевые особенности текущей операционной модели:

  • Доставка до клиента организована на уровне магазинов (не склада).

  • Товарная матрица жёстко фиксирована: перемещение ассортимента между точками возможно только в рамках допустимых категорий (например, нельзя заменить «Телефоны» на «Хлеб» при перераспределении).

  • Доступны фактические данные по:

    • продажам (с доставкой / без),

    • остаткам на точках,

    • SKU-уровню заказов с доставкой (включая адреса и объёмы).

На основе этих данных можно реализовать следующие аналитические и управленческие модули:

  1. Определение зон покрытия магазинов
    По адресам доставок (без привязки к квартирам) и частоте заказов за период (например, за год) строится геопространственная область — зоны ответственности каждого магазина. Границы определяются экстремальными точками доставок.

  2. ABC-анализ по SKU на уровне точки
    На основе фактических продаж формируется структура ассортимента: приоритетные, средние и низколиквидные SKU — с учётом оборачиваемости и вклада в выручку.

  3. Моделирование альтернативного размещения при закрытии точки
    Сопоставление товарных матриц, зон покрытия и ABC-профилей позволяет идентифицировать подходящие точки-реципиенты для перераспределения остатков — с минимальными логистическими и коммерческими потерями.

  4. Планирование перераспределения
    Комбинируя:

    • текущие остатки (на отправляющей точке),

    • лимиты хранения и нормативы по категориям (на принимающих точках),

    • совместимость товарных матриц,

    • пересечения зон покрытия и клиентской базы,
      формируется оптимальный план перемещения запасов — как при частичной реорганизации сети, так и при полном закрытии объекта.

Пример конфигурации:
Объект А характеризуется своей зоной покрытия и текущими остатками. Объекты Б, В, Г и др. — собственными остатками, ограничениями хранения по категориям, продажной динамикой и клиентскими зонами. Система оценивает все взаимодействия и предлагает планы по перераспределению товаров (Зон ожидается в будущем)

Пример созданный вручную по зонам доставки и расположению объектов.

Пример созданный вручную по зонам доставки и расположению объектов.

Компания Х решила закрыть объект А. Теперь нужно оценить, как это повлияет на:

- остатки товаров в других магазинах и на складе;

- зоны доставки других магазинов;

- среднее время доставки клиентам и стоимость перераспределения товарных остатков.

На основе этого анализа мы составим техническое задание для программы. Вот его основные пункты:

1. Определить регион, в котором находится объект А.

2. Выяснить фактические остатки товаров на этом объекте.

3. Найти ближайшие объекты с аналогичной товарной матрицей.

4. Провести ABC-анализ товаров на всех объектах за последний год.

5. Разработать план перераспределения товаров. Учитывать информацию из пунктов 1–3, а также средние затраты на перевозку одного кубического метра (задается при создании региона). Рассчитать оптимальное перераспределение.

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

Например, можно оперировать не стоимостью за километр, а средней себестоимостью перевозки на единицу объёма — скажем, при известных затратах в 1,5 млн ₽ на перевозку 160 м³ получаем удельную стоимость ~9,4 тыс. ₽/м³. (Цифра условная и приведена для иллюстрации.)

Более гибкий и масштабируемый подход — задать набор типов транспорта («траков») с атрибутами: тип маршрута, грузоподъёмность, объём и соответствующая средняя стоимость перевозки. Это позволит учитывать различия в логистике более точно.

С учётом этого, скорректирую модель и вернусь к дальнейшей проработке.

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

Ниже приведу пример работы данного функционала, данные заглушка и программа не может правильно разместить товары, поэтому все = 0.


P.S. Сейчас создание достоверных данных не является приоритетом.

Окно фактических остатков

Окно фактических остатков

Окно ближайших объектов в регионе состоящий из магазинов с доступным хранением.

Окно ближайших объектов в регионе состоящий из магазинов с доступным хранением.

План перераспределения остатков.

План перераспределения остатков.

Да, так как и писал - данные тестовые и в самом деле в регионе нет аналогичных матриц

Аналогично скрину выше, не нашли куда перевозить, доставка = 0.


И теперь основной вопрос "А что будет с доставкой? Как сильно закрытие повлияет на SLA по скорости?". Данный расчет сейчас является приоритетной доработкой которой я занимаюсь.
Логика которая мною вкладывает в анализ - следующая:

  1. Смотреть на расстояние различных точек на карте

  2. Делить действующую зону на кластеры

  3. Определить оптимальные объекты по времени которые находятся рядом

  4. Сделать ренден всех 3-ех пунктов и показывать изменения в зонировании доставки с отчетом об изменении среднего времени и какие районы слишком далеко.

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


Функция выбора источника данных для программы и совместная работа с одним исполняемым файлом.

В параллели с влиянием на регион, мне удалось внести не большую доработку в систему. Теперь пользователи могут выбирать исполняемый файл.

Окно выбора исполняемой БД на SQLite 3

Окно выбора исполняемой БД на SQLite 3

2 пользователя работают с одним исполняемым файлом, вносят корректировки, строят дашборды, удаляют или дополняют данными программу. Но как копии приложения узнать что внесены изменения в хранилище? Для этого было реализовано metadata таблица. исполняемое приложение запускается, запоминает метаданные времени БД и проверяет обновления, в случае изменения метаданных моментально сигнализирует о том что необходимо обновить данные.

Если выбрать "Позже" то обновление данных будет отложено на 30 секунд.

Если выбрать "Позже" то обновление данных будет отложено на 30 секунд.

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

Окно ввода сообщения для описания проблемы

Окно ввода сообщения для описания проблемы

После отправки - логи приходят ко мне в ТГ через бота. Все логи запаковываются в zip архив, параллельно запускает процесс удаления логов из папки.

Информирования о проблеме у определенного пользователя.

Информирования о проблеме у определенного пользователя.


Почему я быстрее реализовал совместный доступ и отправку логов, вместо того что бы наполнить данными и показать на примере где все логично? Наверное потому что лень тратить много времени на создание данных, а потом их дополнять и править. Программа не окончательная, система хранения меняется. Например сейчас я понял что стоимость доставки и распределения товара можно завязать на типы траков - буду реализовывать и менять хранение. Менее затратно по времени дописать скрипт, чем создавать новую логику в 1000 строк данных.


Всем спасибо за то что дочитали.

Если есть желание предоставить тестовые данные с логикой - буду очень рад, поможет при тестировании. Шаблон данных могу предоставить.

Правила сообщества

0. Запрещены посты вне тематики сообщества

1. Уважайте труд людей, пишите только конструктивную критику,

2. Не выкладывайте информацию по своему проекту чаще 2ух раз в месяц

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества