CRM · Мобильное приложение · Автоматизация

Импорт маршрутных карт из Excel заменил ручное составление графика уборок

Управляющий загружает привычную маршрутную карту файлом — система разворачивает её в график на месяц, разводит по ролям и фиксирует каждый статус.

Работаем с проектом 4 месяца — с мая 2026.

Импорт маршрутных карт из Excel заменил ручное составление графика уборок

Клиент

Корпоративное направление ООО «Залог чистоты» — той же компании, что стоит за розничным Mop'up. Клининг коммерческой недвижимости: бизнес-центры с корпусами, этажами, секциями и арендаторами. Уборщицы ходят по маршрутам, управляющие ведут объекты, арендаторы хотят видеть, убрали у них или нет.

Задача

Графики уборок жили в Excel: на каждый объект своя маршрутная карта с корпусами, этажами, секциями, арендаторами и порядковыми номерами уборщиц. Число сотрудниц в карте меняется от объекта к объекту.

Дальше карта превращалась в график руками, а факт уборки существовал только на словах. Арендатор не знал, приходили к нему или нет; управляющий узнавал о проблеме постфактум; спор «убирали — не убирали» разрешить было нечем.

Нужен был продукт, в котором привычная таблица остаётся точкой входа, а всё остальное — график, статусы, комментарии и уведомления — живёт в системе и разведено по ролям.

Что мы сделали

Разбор маршрутной карты и предпросмотр изменений

Загрузка карты — мастер из трёх шагов: файл, анализ, применение. На реальной карте бизнес-центра восемнадцать строк разворачиваются в пять корпусов, четырнадцать арендаторов, шестнадцать секций, восемнадцать расписаний и сто пятьдесят одну уборку на месяц вперёд.

Между загрузкой и применением система показывает разницу с текущим состоянием: какие секции новые, какие изменились, какие уходят в архив, какие корпуса и арендаторы добавились. Отдельно красным подсвечиваются конфликты — строки, которые претендуют на одну секцию, одну уборщицу и один день. Ошибочный файл виден до того, как он попадёт в расписание.

Устойчивое опознание секции

Заказчик пожаловался: секция ушла из карты, а в расписании висит, и уборки появляются в дни, когда их нет. Причина оказалась в том, что секция опознавалась по сырому номеру из Excel — «202, 206», «202.206» и «204» считались разными помещениями, старое уходило в архив, новое создавалось заново, и на проде расплодились дубли.

Сделали стабильный ключ: корпус, этаж и нормализованный номер, а для помещений без номера — ещё и название. Теперь повторная загрузка карты оживляет ту же секцию вместо создания копии, а отдельная команда схлопнула дубли, которые успели накопиться.

Перезапись графика без потери истории

Недельный паттерн из карты раскладывается по дням недели и повторяется нужное число недель. При повторной загрузке переписываются только запланированные уборки начиная с указанной даты — всё, что уже выполнено, остаётся историей.

Для случая, когда график меняется целиком, есть отдельный режим полной замены. Ежедневная генерация уборок и уход старых месяцев в архив работают по расписанию.

Четыре роли, у каждой свой объём

Уборщица видит только свой маршрутный лист на сегодня и ставит статус: убрано, закрыто, клиент отказал. Переписать статус задним числом нельзя — через десять минут он фиксируется, а все смены пишутся в журнал.

Управляющий ведёт свои объекты и переключается между ними, видит календарь-матрицу «секции × дни месяца», меняет статусы и разбирает комментарии. Арендатор видит только свои помещения и может оставить комментарий к уборке. Собственник получает сводку по объектам.

Права разведены на уровне системы: сто сорок три разрешения и привязка пользователей к объектам, поэтому никто не видит лишнего.

Уведомления в приложении и в Telegram

Смена статуса и новый комментарий уходят push-уведомлением тем, кого это касается: арендатору — по его помещениям, управляющему — по его объектам. Уборщицу уведомления не беспокоят.

Кто привязал Telegram, получает то же самое ботом — включая вход в приложение через Telegram. Через тот же механизм идут адресные рассылки: всем, по роли или по объекту, с предпросмотром числа получателей и метриками доставки.

Приложение для сотрудников

Мобильное приложение на Flutter — внутренний инструмент компании, в магазины не публикуется. Вход по телефону с паролем или по PIN, свой интерфейс под каждую роль, лента уведомлений и комментарии.

Работает с той же системой через API: тридцать с лишним эндпоинтов с ролевым ограничением выдачи.

Результат

  • Маршрутная карта из Excel разворачивается в график: 18 строк → 16 секций, 18 расписаний и 151 уборка на месяц
  • Ошибки и конфликты в карте видны на предпросмотре, а не после того, как уборщица не приехала
  • Повторная загрузка не плодит дубли секций и не стирает выполненные уборки
  • Статус нельзя переписать задним числом: 10 минут на исправление и журнал всех изменений
  • Арендатор видит только свои помещения, управляющий — свои объекты с переключением между ними
  • Уведомления приходят в приложение и дублируются в Telegram, там же работает вход

Стек

Laravel 11Filament 3MySQLSanctumPhpSpreadsheetFlutterGetXFirebase Cloud MessagingTelegram Bot API

Ссылки

Услуги по теме

Нужно похожее?

Расскажите о задаче — разберём её бесплатно и назовём срок и вилку стоимости.