<?php // Полная загрузка сервисных книжек, создан 2025-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Для склада производства многие описанные вещи конечно применимы, но для торговли (а большую часть потребителей WMS составляют торговые предприятия) увы…
(1) Есть опыт такой же системы для торговли. Для производства как раз сложнее
(2) Для оптовой?
еще, появляясь на складе обязательно надо назидательно гововрить типа Зизолен нихт шпацирен, зизолен арбайтен, арбайтен, унд арбайтен!
Отдельное спасибо: за «Гестаповец, живущий глубоко в душе каждого автоматизатора, будет аплодировать стоя» — это ты точно подметил…
Моя практика показывает что если с сотрудника снять или минимизировать «Умение считать» — все становится лучше…
Во чего автор уперся в вмс и так их не любит? видно когда-то чем-то наслолили вмсники.
По сути то, что автор написал — глубоко не вникал в написанное, только общую канву — собственно и есть вмс, то что ее удалось сделать с минимальным применением компов — ну и ладушки…
правда нифига непонятно, сколько народов работает на сборке заказов, сколько примерно заказов в день, сколько примерно строк в одном заказе.
Класс! И по форме, и по содержанию )))
(6) Склад производства вещь очень специфическая и интересная, там практически нет пределов улучшениям, и, в принципе, вполне можно обойтись без WMS. И Канбан вполне себе работает в Российских условиях, подтверждаю…
(3) Смешанная, опт/розница. Чистый опт еще проще по-моему, но утверждать не буду, хотя один очень для меня авторитетный человек внедрял и внедрил эту методику у P&G. На сколько мне известно успешный опыт уже 5 лет. Хотя сам не видел.
(9) Возможно эта методика и подойдет для оптового склада производителя, с количеством наименований готовой продукции не более 100. Но, например, масштабы проблем на складе оптового дистрибутора продуктов питания (примерно 10 тыс. SKU, 40 тыс. позиций заказов ежедневно) вы себе даже не представляете…
(10) Представляю на пром. группе. Очень хорошо. 9 к. SKU (ох ненавижу я это сокращение), причем в них еще понятие партионности (одна партия может отличаться от другой тоном и это по-факту разные товары), характеристик (от 2 до 10 на 4 к позиций) и розница своя. И своя розничная сеть, причем факторы планирования закупа (соответственно и ресурсы склада) зависят от некоторых «невообразимых» факторов: сегодня дизайнер «сделал офигенный сет в шоуруме», его тиражировали на все филиалы — и поперло, а перед этим это была cz позиция почти год.
Там просто иначе kanban делается, точнее даже не так — он делается почти полностью электронным, и, ясное дело — оптимизация по сбору заказа пишется своя, но и только. Адресное хранение практически 1 в 1 из УТ. Единственное что не успели в проект — вообще от СГП отказаться, но все к этому шло и вышло бы… Но из-за вышеуказанных факторов Продажи забоялись и я их понимаю. Мы бы просто экономили на складе и тратили на аналитике примерно столько же… )
По продуктам питания скажу честно — опыта не имел, но понимаю что есть ньюансы с совместным хранением и сроками годности, а так же с условиями хранения и если это еще динамические объемы (по спросу, кстати вот и ответ на вопрос «что такое wms-планирование») то да, возможно будет сложно. А если упадет база, что делать будете? Вот пипец — админ окажется (не дай бог врагу) сволочью и решит уничтожить базы. Понятно найдут, паяльник, все дела… но толку то?
(10) в (11) я имел ввиду что мы далеко не все там сделали на складе да и учился я тогда этой методике, нельзя сказать что канбан там законченый логически, но именно вопросы комплектации заказов используют как-раз pull и kanban. А вот с организацией хранения тогда не вывез. Сейчас бы уже осилил.
(11) Вероятность падения базы и злой админ — это такой форсмажор, который возможен с любой системой, есть планы восстановления, резервирование по железу и т.д, это в общем не является проблемой. А вот нюансы на самом деле таковы, что без WMS эффективная и стабильна работа такого склада не возможна.
(11) ну давайте, блин, вообще от автоматизации откажемся — вдруг завтра все читать перестанут уметь…
на своем складе тоже главный складской (до начала автоматизации) выдвигал свои аргументы к сохранению старых приемов работы совершенно аналогично «а вдруг программа сломается»..? — сломается и сломается — будем чинить. с 2008 года работает практически без простоев — будет работать и дальше надеюсь. Все «ломается» там где руководство жмет бабло и нет контроля за автоматизацией.
тот же канбан — вот сломалось резко все в виде пипл устроил забастовку. и что делать? да фиг его знает. уволили нафиг всех. пока новых набрали, пока канбану обучили — время идет. А более продвинутая система — терминал в руки дал — дави вот эту кнопку, иди к ячейке и бери сколько написано… все. сепйчас новички у нас через два-три дня становится понятно сможет он у нас работать или нет. Раньше срок «обучения» занимал месяца три.
и да, упомянутый выше складской работник — который был главным до автоматизации — как-то вообщем сейчас на складе и не работает… не нужен оказался. Из всех «нужных» — в принципе только один чел-оператор и один «главный» среди линейного персонала — типа старший по складу. все.
Браво, вам бы еще по ТОС прочитать, их методики обеспечения MTS и MTO, цены бы не было.
(15) Да, это правильные вещи. Жаль, с производства ушел, а в продуктовой оптовке с Российской спецификой не особо методики планирования ТОС применять можно…
(15) А по ней и считаем ) Статья то не последняя. )
(14) 😉 Тут две стороны одной не особо вкусной медали — с одной стороны — чинить будем, с другой — а пока чиниться — простой который стоит очень дорого. Тут гибрид нужен. )))
Познавательно — плюс.
Супер! Если начать с описания положения дел на складе — мне было бы даже страшно браться за реализацию такого проекта…
Хотя подобного рода проект был, но все уперлось в нехотение работников склада что-либо в своей работе менять, ленью и тупостью системных администраторов, ни и конечно жадностью руководства.
Да, кстати, сколько по времени заняло внедрение?
(21) проработка концепции и проектирование — 2 мес, подготовка 1 мес. И в 2 дня запустили первый этап. А потом где-то месяц «шлифовали» нюансы.
Если учесть, что сумма затрат на внедрение данного функционала какие-то 5.000 деревянных (по заявлению автора!) — просто смешно! И не идет ни в какое сравнение с суммой внедрения 1С:Кортес (Адресный склад), где тебя начинают слушать от 100.000 руб. Молодца!
(23) Ну нет, еще на KLT нужно денег, но на них нужно в любом случае денег. Еще на маркеры, карточки. Тут заблуждаться не нужно, цена как внедрения WMS так и kanban ощутима, но в отличии от WMS — не требует поддержки за дорого. Ну и kanban дешевле, понятно
(24) Канбан — я так понимаю не методология, а сами карточки? Тогда если можно пример с фото опубликуйте.
А про «соллерс» хотел бы спросить поподробнее (работал там в моск.офисе) — там что такая же система внедрена или просто для продолжения линейного ряда написали … >> японский автопром, Ford, GMC, боинг, соллерс, да и тысячи других компаний<<
(25) да, Соллерс-Дальний восток при инспекции сотрудниками Toyota признан максимально соответствующим TPS (Система качества производства Toyota) в России. В принципе на своем опыте могу сказать — изучение этой методики и основы TPS я получил именно там. Если работали там, должны были слышать имя Андрей Алексеев — вот собственно он консультировал нас по канбану. А я разработал последнюю версию MES там (точнее 100% переработкой татарского MES). )))
(4) CheBurator,
У Вас с немецким также плохо, как и у автора: как минимум, «Sie sollen».
(27) Да какой к черту немецкий, у меня Китай под боком и Япония — я немцев то видел раза три в жизни, и то пьяных )
(18) а у меня резервирование на этот случай
Паралельная упрощенная система на совершенно другой базе грубо говоря предыдущая моя самописка
Если и она рухнет
Ну да
На этот вариант продумываю простую ежедневную автоформируемую схему склада где что лежит
Этого будет достаточно
(29) Да, я примерно так же хочу сейчас решить проблему с неким производственным модулем, который «забэкапить» безкомпьютерным методом не получается )
Как пример вмс
Сегодня тестировал
Присутствует куча запланированных отборов
Запускается абц перемещение с автокорректировкой отборов
Также и с автокорректировкой подпиток
Также автоотслеживание рейтингов ячеек-товаров для проведения волновых инвентаризаций при отсутствии основного объема работ
На определенных отборах автоотслеживание запрета штучного набора товара, только блоками
Ну и прочее сейчас навскидку не упомню
Както вот так
Закончу проект тогда запилю вебинар
(31) Буду ждать — интересно.
Не совсем понял, как у вас АРМ организованы. Чем читаются штрих-коды, какую роль при этом выполняет компьютер на складе и можно ли его заменить ТСД?
(33) Постараюсь на днях приложить фотографии, ТСД можно, но зачем? Если есть лишние — можно, но в нашей общей системе нужны оперативные данные. АРМ обрабатывает штрих-коды и делает движения, печатает маршрутные карты. К АРМу в придачу беспроводные сканера штрих-кода. Думаем заменить на андроид-устройства.
(32) планирую сугубо прикладные вопросы
Что как почеумк
Какие процессы построены
Почему так получилось и прочее
Еще разрешение у руководства придется просить
И осторожно говорить чтобы страшные тайны не выдать
Смайл
(6) CheBurator,
Вот мне тоже интересно)))
Судя по всему на складе хранится малогабаритная номенклатура, которая вполне умещаются в контейнеры KLM. На складе используется статическое хранение номенклатуры (т.е. мы всегда знаем где какой товар лежит) как в зоне быстрой сборки, так и в зоне длительного хранения. (Поправьте если я не прав. Три раза статью перечитал, что бы вникнуть) Да действительно в таком случае WMS не нужна. Хотелось бы еще знать какое количество строк заказов отгружается в день.
А как будет работать данная система предположим с таким складом:
3000 строк отгрузки в день, соблюдение сроков годности, порядка 3000 наименований, минимальная партия отгрузки коробка, в строке заказа от 1 до 40 коробок. ВГХ коробки от 10x20x30 см. И возможность сделать в нижнем ряду стеллажей (зона быстрой сборки) предположим 1000 ячеек под стандартную EUR паллету.
Спасибо автору, интересно! Себе закладочку на будущее, требуется более вдумчивое прочтение 🙂
Солидарен и мне понравилась тема.
Ну, теперь есть шанс пообщаться на конференции. Кому действительно интересно — голосуйтеhttp://event.infostart.ru/2015/agenda/agenda.php