Как стать автором
Обновить

Дискретная математика для WMS: алгоритм сжатия товаров в ячейках (часть 1)

Время на прочтение 16 мин
Количество просмотров 6.7K
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 21

Комментарии 21

Сорри конечно, но вы сделали обыкновенную фигню, повторюсь что сказал коллегам в скайпе.
Возникла идея: партии остатков с наиболее близкими датами приводить к одной единой партии
На фарм. складе, вас бы за эту «идею» расстреляли, а потом там же сожгли.
Что мешало сделать адреса с полной заполняемостью и с частичной, где в одной частично заполняемой ячейки сделать 10 передвигаемых-картонок-перегородок и каждой присвоить адрес?
Это проще и эффективней, чем творить «ЭТО ЧУДО» (хотел выразится по французски, но сдержался)
PS:
Комментов от меня больше не будет, если что то надо, прошу в личку, кармас-с-с…
Да, в фарме и продуктах питания такой метод не подошёл бы. Но у коллег была своя специфика и объединение партий по срокам допустимо по бизнес-процессам.
По поводу передвигамых картонок — в различных программах есть как архитектурные ограничения и они обходятся только дикими «костылями», кои поддерживать в последующем довольно проблематично и не выгодно, так и физические(бытовые) ограничения. Покажите как вы реализуете картонки между товарами из статьи, при горизонтальном разделении ячейки, не говоря уже о вертикальном разделении ячейки?
С точки зрения фарм склада Вы, возможно, правы, с точки зрения специфики склада шаровых кранов — нет. С Warhammer_iii согласен.

Перечислю по пунктам почему не правы:
1. Укладка товаров. Специфика укладки в ячейки у каждого крана разная. Довольно много с горизонтальной укладкой, то есть сначала кладется ряд, а потом на него следующий. Причем 1 на 1 краны редко когда более менее устойчиво поставить можно — упадут (и перегородку, тем более картонную, сломают, так как вес крана небольшого 2-3 кг, а есть и побольше). Для фарм склада такого нет очевидно, там 99% прямоугольники и вес маленький.
2. Логика WMS-систем. Почти во всех WMS системах задаются фиксированное, конечное множество ячеек, а потом программа с ними уже работает. При необходимости ячейки могут добавляться или убавляться или редактироваться их параметры, если например подошел сезон и мы хотим переконфигурировать какую-то зону склада, чтобы, к примеру, увеличить «фронт отбора». НО, если мы используем перегородки, то сколько их может быть? 2,3, 5 или 15?! Что программа сама будет создавать эти ячейки в базе и присваивать им адреса? Кто потом будет клеить (а потом и сдирать) штрих-кода с адресом на такие «картонные ячейки»? Тоже программа? :) По мне так картонная технология какая-то оторванная от реалий WMS-систем. При бумажном учете без системы WMS, такое наверное прокатило бы.
3. Здравый смысл. Вот представьте: товар с одной партией у Вас разместился в 3 разные ячейки, которые находятся на расстоянии 5-10 метров друг от друга. Товар в них практически закончился и в каждой остались мизерные остатки (отбирали каждый раз из разной, чтобы минимизировать пройденное расстояние, FIFO здесь нет, дата то партии одна). Потом приходят еще 2 палета точно такого же товара с другой партией, а других ячеек кроме этих нет. Внимание знатоки, какой вариант лучше?
  • Вариант перегородок. Программа начнет дробить товар в каждую ячейку с учетом ее заполненности, и кладовщик будет тратить уйму времени на перелапачивание этих 2-х палет, ну и, конечно же, ставить картонные перегородки :).
  • Вариант сжатия. Выполнить 1 раз сжатие остатков из 2-х ячеек в одну за 5 минут и потом просто поместить 2 палета в свободные ячейки.


P.S. Прежде чем комменты писать злобные и звонить по коллегам скайпу, вникните в тему :)
У меня возникло стойкое ощущение, что автор автоматизировал бардак. Может, сначала надо было прояснить странные моменты в бизнес-процессах?
Мне непонятно, почему один товар из разных партий пихают в разные ячейки. Разумное правило (приходы одного товара в разные дни == разные партии) слепили с (разные партии == разные ячейки) и превратили в священную корову.
1. Разная входная цена? Так вы же по FIFO списываете, уходит одна партия — пошла другая. Какая вам разница, кран из какой партии реально пойдёт покупателю?
1.1. Взаиморасчёты с поставщиками, поставляющими одинаковый товар (почти фантастика)? Ведите в долях, пропорционально входному объёму. Можете даже выбрать поставщиков, «которые равнее».
1.2. Гарантия по расходной накладной? Так наверняка у крана есть серийный номер. По нему и гарантируйте.
1.3. Разительно разное качество партий (надеюсь, что нет)? Даже не знаю, что сказать. Рашен бузинес.
2. Тупое давление заказчика? Привести ему цифры потерь.
В общем, ясно, что мне ни фига не ясно.
по всем пунктам отвечать не буду, но по главному поясню. В статье было написано, что разделение партий по ячейкам происходит по причине специфики укладки и хранения товаров. Здесь все просто. Подавляющее большинство кранов имеют рядный способ укладки, то есть 1 ряд, потом другой и так далее. 1 на 1 не поставишь, это я писал в комменте. Положить ряд новых кранов на старые? Но тогда как вы по FIFO старый из под нового вытащите? Перекладывать? Краны встречаются достаточно тяжелые. Я ответил на Ваш вопрос про священную корову?
Нет, конечно. Зачем краны таскать строго по FIFO, если они идентичны друг другу?
Какая такая религия запрещает отгрузить брата-близнеца, лежащего сверху? Именно эти вопросы я и хотел прояснить в пунктах, которые Вы проигнорировали.

срок использования есть у любого продукта...


Специфика такова, что списание должно быть максимально по FIFO… например через 1 год — начинает исчезать надпись с этикетки, через 2 возможно изменение цвета краски, 3 проблемы со смазкой… и т.п. и т.д.
Отправить клиенту партию новых, а потом прислать старую; после такого выслушивается миллион претензий и рекламаций с требованиями о скидках.
Серийный номер явно не гравируется(лазером наносится), а значит старую продукцию можно относить в ремонт с новой этикеткой :) "поломалось на гарантии" — вы же нам шлете "старье"

c MinimaJack согласен. У каждого товара есть срок годности и краны не исключение, не смотря на то, что срок годности на складе (без спец смазки и доп. обслуживания) дольше чем у лекарств. Например, у мебели вообще нет срока годности, лежи себе и лежи, но Икея по FIFO работает :)
Логично. Хитрожпопие у клиентов развито на 146%.
Но сроки хранения… Сдаётся мне, что если товар не уходит со склада по году-два, кто-то не хило ошибается в объёмах закупок. Или такие запасы обусловлены тем, что у клиента непредсказуемо скачут объёмы отгрузки?

Это производство, а не торговое предприятие =)
Товар специфический, я бы сказал в чем то уникальный.


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

WMS решает только 4-ю проблему, для других как мертвому припарка — вроде все под контролем, но проблему со старыми остатками оно не решит.


Остальное должен разруливать отдел ПДО…

LIFO (FILO — про стоимость разгрузки судна).
И не надо гнать на СССР. Затоваривания складов там не было, пока не стали придерживать продукцию перед развалом.
смотрите пункт 4 у MinimaJack. Там никто не ошибается особо в объемах и разрухи там нет, просто если вы не будете работать по FIFO, то никто не гарантирует, что у Вас не будет старого товара на складе даже при высокой оборачиваемости. Условно вы всегда будете брать верхние свежие из стека, а нижние старые будут оставаться.
Логично. В случае с товаром, тяжёлым для физического перемещения, Ваш вариант, похоже, оптимальный.

По FIFO вы сможете работать при отсутствии возвратов. А иначе FEFO. Терминологию надо соблюдать :)

FEFO это когда First Expire, First Out — первый истекает — первый выходит. У нас же, именно истечение срока годности, не рассматривалось, поэтому и назвали FIFO, от слова «In» :)

Так у вас есть партии в разрезе дат, значит рассматривали. В части ВМС правильнее употреблять FEFO в этом случае

в FEFO при ротации грузов на складе учитывается остаточный срок годности товара. Мы именно остаток не считали, поэтому и не употребили слово FEFO. Или Вы другое имели ввиду?

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

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

Срок годности 10 дней.
Партия 1. Пришел товар 1 шт 1.01 с остатком срока годности 10 дней.
Партия 2. Пришел товар 1 шт 5.01 с остатком срока годности 2 дня.

По FIFO уйдет товар партии 1, по FEFO партия 2. Ну это по тому определению FEFO, которое я знаю, она в вики, вроде такое же. Если Вы по-другому рассуждаете, дайте ссылку на определение FEFO :)

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

тогда 01.01, по датам производства конечно. Да, краны поступают из производства, поэтому у них остаточный срок годности один и тот же изначально. Здесь отбор по FIFO и FEFO даст один и тот же результат. Поэтому и без разницы как называть :) Хотя, в чем-то Вы и правы.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории