Услуги
Сентябрь 2026
Подрядчик каждый день отправляет на выезды бригады по четыре человека. Нужно оформить заказы, собрать составы и разослать задания в рабочие чаты MAX, а дважды в месяц посчитать начисления сотрудникам.
До автоматизации всё делалось руками. Заказы приходили фотографиями таблиц, и сотрудник переписывал каждый в мессенджер. Составы бригад подбирали вручную, держа в голове, кто с кем уже работал. Для начислений данные из переписки переносили в таблицу, на это уходило несколько часов, и при ручном заполнении появлялись ошибки.
Задача: убрать ручной перенос данных на всех этапах, но оставить сотруднику контроль. Он должен видеть исходник, править заказ и состав бригады и подтверждать спорные строки перед расчётом.
Сделали веб-приложение «рабочий центр» на Python и Flask, которое закрывает распознавание заказов, подбор бригад и рассылку в MAX, и отдельный скрипт расчётов в Google Таблицах. Сотрудник остаётся в привычных инструментах, но больше ничего не переписывает вручную.
Фотография таблицы проходит через Yandex Vision OCR, а перед этим Pillow приводит снимок к единому формату. Наш парсер связывает время, маршрут и количество людей с конкретным заказом по координатам текста, а в коротких таблицах восстанавливает недостающие строки по сетке без лишнего запроса к OCR. Каждое поле можно поправить, исходный фрагмент фото остаётся рядом для сверки.

Подбор построили на решателе OR-Tools CP-SAT. История совместных выездов превращается во взвешенные связи между сотрудниками: учитываются частота и давность работы вместе, устойчивые составы и опыт с конкретным бригадиром. Свежие выезды влияют на оценку сильнее старых. Любого человека или целую бригаду можно закрепить вручную и пересобрать остальных, не начиная с нуля. История составов сохраняется по дням, и следующий подбор учитывает её автоматически.

Через GREEN-API рабочий центр читает историю чатов, обновляет состав беседы под текущие заказы и отправляет задания в формате, к которому привыкли сотрудники. Очередь заданий хранится в Yandex Object Storage, а облачный таймер доводит отправку до конца, даже если страницу закрыли. Если результат отправки неизвестен, очередь останавливается на проверку и не шлёт дубли.

Скрипт на Google Apps Script загружает сообщения из MAX, сопоставляет заказы с исходными записями и считает начисления за период. Спорные заказы попадают на контрольный лист с причиной расхождения, и сотрудник подтверждает их из меню таблицы. Повторный пересчёт не стирает ручные правки, а новые фамилии подсвечиваются для проверки.

Рабочий центр упакован в Docker и работает в Yandex Cloud, рабочие данные и ключи хранятся отдельно от образа.
По оценке заказчика, автоматизация сократила время на четыре регулярные задачи:
Заказы с фото: 20 минут → 1 минута. Распознавание заменило ручной перенос заказов с фотографии.
Подбор бригад по четыре человека: 30 минут → 5 минут. С учётом ручной правки предложенных составов.
Беседа и отправка заказов: 5 минут → 1 минута. Добавление людей в чат и рассылку автоматизировали полностью.
Расчёт начислений: несколько часов → 30 секунд. Вместо ручного заполнения таблицы автоматический расчёт с проверкой расхождений.
Заказчик продолжает работать с привычными MAX и Google Таблицами, но перенос данных между ними больше не делается руками. При этом каждое решение алгоритма можно проверить и поправить до отправки.