В своё время на Пикабу я начал сидеть благодаря рассказам о своей работе от совершенно разных людей. Сам я что-то давно про работу не писал. Щас напишу!
В моём отделе у инженера, занимающегося ремонтом оборудования, есть два состояния:
Когда инженер не паяет, он пишет четыре одинаковых отчёта, о том, что он там напаял. И меня эта ситуация напрягает немного. Так как административного ресурса изменить ситуацию у меня нет, я родил чисто техническое решение в виде бота, который из одного отчёта делает несколько.
Итак, от какой точки мы пляшем:
По результатам ремонта инженер должен четыре раза отчитаться:
Закрыть заявку в 1С.
Сделать запись в журнале выполненных работ/передачи смен, так как модуль, используемый в 1С катастрофически неинформативен, и туда, в силу истерически сложившихся причин, попадают не все ремонты.
Написать о выполненном ремонте в специальный чат в ватсапе, в котором, в силу истерически сложившихся причин, ведётся вся коммуникация внутри завода.
Сделать запись в ежедневном чек-листе, который требуется главному механику, так как он унифицирует анализ по всем ремонтным подразделениям завода.
План значится такой. Работа в 1С сейчас на мне. Там я могу действовать на основании оперативной информации с поля, которая живёт в журнале.
Журнал, мы начали вести аж в 2018 году, когда кто-то из электриков начал мечтать, что вот, как удобно бы было вести записи в электронном виде, а мы такие: а давай вести.
И к началу 2023 имел такой вид:
Далее мы пойдём по пути физиков, которые сначала объединили электрические и магнитное взаимодейстивие, а потом начали соединять полученное с ядерными силами в одну теорию.
Сперва я научил таблицу собирать чек-лист из журнала. Для этого мне понадобились всего две функции «FILTER»: по дате и по имени сотрудника.
Понятно, что будет бот, который читает журнал и отправляет в чат только новые записи (причём не все, а только те, где стоит пометка о том, что ремонт закончен и станок сдан в эксплуатацию).
Тут важно ограничить внесение данных в журнал вручную, чтобы какой-нибудь неаккуратный тычок в таблицу не отправил в чат пустое сообщение, которое всем будет интересно читать, или не начал сообщения наоборот дублировать.
Я полез курить формы. И наткнулся на JotForms. Боже, как они восхитительны. Там такая система условных переходов и автозаполнений, а ещё интеграция со всем на свете, что на них можно запустить Doom, наверное. Но ограничение в 100 заявок для бесплатного использования немного ставят на этой затее крест.
Разумеется, я, как любой нормальный человек, инструкцию читаю, когда всё уже перестаёт работать. Систему отчёта на JotForms я полностью реализовал и запустил, сука. Потом, когда лимит был превышен, пришлось объяснять людям, что факир был пьян, и мигрировать на GoogleForms. Там есть система подключаемых модулей, есть в чём покопаться и сперва всё выглядит архисложно и не так фильдиперстово, но с точки зрения человека, который эту форму будет заполнять, вроде не особо много разницы.
Форма доступна сотруднику по ссылке, открыть её он может и с телефона, и с рабочего компа, и дома открыть может, если вдруг захочет всё заспамить нафиг, но он, разумеется, не захочет.
Следущая задача: научиться читать данные из таблицы. Вот это было самое сложное. Чтобы авторизоваться и начать пользоваться Google API мне пришлось пошагово выполнять какие-то действия в консоли разработчика Google, которые я нашёл в статье на хабре, смысл которых не понимаю и повторить, если что-то слетит точно не смогу. Надо заходить в одни и те же окна, чото копировать, назначать себе какие-то права и так по кругу. Таких кругов, по ощущениям, нужно сделать писят, не меньше. Никому не советую.
Потом учимся работать с ватсяпом. Тут тоже засада, ибо сами они ботоводство не поощряют, средства для него предоставляют неохотно и за большие деньги и, как следствие, в инете можно найти фирмы, которые вам слепят бота и будут его поддерживать, но блин, как я объясню руководству, что надо тут заплатить, чтобы реализовать мой пет-проект.
Короче. Условно-бесплатные API для ватсапа есть. Просто они не на первой странице поиска, а на второй.
Пишем функцию, которая умеют читать строку из таблицы, функцию которая умеет отсылать сообщение в чат ватсапа, функцию обратного отсчёта, чтобы было видно, что наша программа не повисла и чтобы она стучалась в гугль не постоянно а с интервалом в 10 секунд, например. И цикл, который проверит первую функцию, что она не опухла или как, и найдя новые данные запустит вторую. Добавим повторную авторизацию в случае потери связи и пробуем запустить. Ловим баги, пробуем запустить, ловим баги, пробуем запустить, так до получения удовлетворения.
Кодить я не умею, решения мои наверняка неоптимальные, но оно запустилось. И глядите, это даже лайкает кто-то!