Итак, немного о себе, производстве и программировании:
Моя профессия далека от IT технологий. Я работаю на производстве кажется всю жизнь довольно давно. Тематика - производство и ремонт металлообрабатывающих станков. Производим станки как новые, так и ремонтируем. Стараемся все делать локализировано (импортозамещение ж)- все железки точим, шлифуем, собираем и т.д
Сейчас работаю механиком, совмещая несколько должностей конструктор/снабженец/технолог. Да, есть проблема кадров. А как решать? Надо автоматизировать!
В производстве много сложных процессов, не поддающихся автоматизации, но часть из организационных вопросов можно решить с ее помощью. Вот с ними я и хотел бы побороться.
Итак, 2022 год. Везде говорят про ИТ. Стало интересно. Решил попробовать с# - любопытно, но показалась сложно: ООП и прочее, хотя какой-то калькулятор на WinForms сделать все же получилось. Вкладывать в свое образование мне стало как то жалко - а вдруг не пойдет? А вдруг я тупой или старый? (30лет), так что в основном смотрел видео на YouTube и читал книжки. Как-то в каком-то видео услышал высказывание - "Чтобы научиться программировать, надо попробовать написать проект, который связан с вашей текущей работой". Звучало не плохо - почему бы и нет?
Что мы имеем: нулевой бюджет, почти нулевые знания, ноутбук и огромное желание автоматизировать рутинный процесс снабжения производства.
В голове это выглядело примерно так:
-
некий сайт, где лежат чертежи и все, что мы закупаем
-
с сайта можно сделать заказ: набираем в корзину подшипники и прочие детали , которые делают нам подрядные организации. Им высылается заявка с чертежами (если надо), количеством товара и реквизитами, куда они должны выставлять счета.
-
Так как контрагентов довольно много и деталей много хотелось бы, чтобы сайт (тогда я думал, что это делает какой-то мифический сайт и/или магия) сам подбирал нужного контрагента под конкретную деталь.
-
Хотелось, чтобы я всегда видел у кого что и когда заказано.
-
Хотелось, чтобы можно было посмотреть историю заказов - где, когда, у кого и в каком количестве заказывался товар.
-
Хотелось иметь удобную навигацию по чертежам (те, кто связаны с производством меня поймут - есть сборочный чертеж, в нем ссылка на номер детали из спецификации и потом только номер самой детали).
В начале пути цель казалась не достижима, но упертость победила.
Итак, я начал изучать по видео из YouTube HTML CSS и JS.
За пару месяцев (что меня удивило) я худо-бедно стал разбираться со стилями css. Мои страницы, которые я пытался верстать, пестрили вездесущими DIV, но что-то получалось. Все же я был еще далек от начала проекта.
И начать я его решил сразу с проекта на REACT - везде про него много говорили. Ну что, освоим!
Занимаясь проектом только по вечерам после работы и в обед, параллельно изучая REACT, ExressJS, mongo через пол года у меня что-то начало вырисовываться.
Был создан сервер на Express, который общается с mongoDB через mongose. Сервер отдавал статику (чертежи), фактически просто картинки.
Также было приложение на REACT, где все чертежи можно было посмотреть, добавить в корзину и присвоить контрагента.
Контрагента так же можно было добавлять из приложения. Чтобы программа понимала и предлагала какому из контрагентов отправлять заявку, придумал систему выстрелил себе в ногу на основе регулярных выражений.
Запустил все в локальной сети и ... ОНО ЗАРАБОТАЛО!
И работает!
Воодушевленный таким успехом, я добавил несколько новых функций:
-
Отправка напоминания каждому контрагенту о сделанном заказе - все детали, которые я от них жду
-
Отслеживание длительность поставки запчастей для анализа и прогнозирования закупок
-
Создание для каждого контрагента google таблицы, где будут отражены его текущие, а так же завершенные заказы. Ссылка на таблицу приходит вместе с заявкой и ведется в реальном времени.
-
Установка приоритета на детали. Контрагенту приходит уведомление что, мол, эта железка очень нужна и помечается в таблице красным цветом с пометкой "СРОЧНО".
-
Добавление прайсов от контрагентов.
-
Получилось красиво. Контрагенты присылают свой прайс в таблице Excel, я добавляю его в программу. Она подбирает на основе регулярных выражений (опять выстрел в ногу) чертеж к деталям (если они есть в каталоге) и растасовывает их по группам и подгруппам.
-
-
Telegramm-бот, уведомляющий о новых заказах или об их поступлении. В чате состоит руководство, которое тоже видит что, когда и у кого было заказано.
-
Получение информации из прайса через Telegramm-бот: пишешь номер детали и он выдает цены из прайса по всем контрагентам, которые могут эту делать поставить, а также средний срок поставки(я же отслеживаю сроки).
Следующим шагом стало управление производством.
Бизнес процесс довольно прост - приходит станок в ремонт, на него приходит договор со сроками, ЗИП (запасными частями), цветом станка характеристиками и прочее. За этим станком закрепляется бригада рабочих которые этот станок собирают.
К этому времени это приложение работает через локальную сеть на всех компьютерах на производстве.
Для автоматизации нашего бизнес процесса были реализованы следующие возможности:
-
Добавление сотрудников
-
Размещение на виртуальном поле станков
-
Назначение сотрудников для процесса сборки
-
Автоматическое заполнение полей контракта при прикреплении договора. Программа вытаскивает нужные поля типа сроков сдачи, ЗИП, цвета, характеристик будущего оборудования и заполняет их.
-
Чат с еще одним ботом. Он размещает статусы изготовления станка и информацию о назначениях на сборку для любого сотрудника, сделавшего запрос.
-
Позже научил бота высылать чертежи по запросу(мало ли кому из сотрудников нужен)
-
-
Электронный табель посещения работы для сотрудников
-
Отслеживание дней рождения
-
Хранение истории выполненных контрактов. Можно посмотреть детально предмет контракта, контрагента, дату, а также кто из сотрудников собирал оборудование, чтобы если что
наказатьпоощрить.
Параллельно с этим создал интеграцию с "Деловыми линиями" - теперь из приложения можно отслеживать грузы, которые идут к нам.
И немного о стеке:
front - REACT / REACT-ROUTER / REDUX / REDUX-THUNK / REACT-KONVA
server - EXPRESS /mongoDB+mongose / momentJS / Winston / uniqid / pdf-parse
Подытожим:
Да, автоматизация много что может, много вопросов можно ей закрыть и даже нехватку кадров.
Сейчас активно изучаю IT технологии и готовлю еще одно решение для соседнего производства под ключ, с полноценной разверткой, масштабируемое красивое и быстрое (PWA.desktop) ... правда с таким же бюджетом.
Если вдруг статейка оказалась для Вас интересна, расскажу как программа устроена под капотом, но это уже совсем другая история...
Всех благ! Успехов в автоматизации!
Автор: Павел