Skip to main content

Автоматическое распределение заданий на уборку

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

Назначение горничной в смену

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

Новые поля в диалоге назначения:

  • Группа ресурсов — селект с выбором группы номерного фонда;

  • Этажи — мультивыбор этажей из ресурсов выбранной группы. В списке отображаются уникальные значения этажей, присутствующих в данной группе.

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

Редактирование назначения

Если нужно изменить группу ресурсов или список этажей уже после того, как горничная назначена в смену:

  1. В списке назначенных сотрудниц найдите нужную горничную.

  2. Нажмите кнопку «Действия» → «Редактировать».

  3. Откроется диалог назначения — измените группу ресурсов или список этажей и сохраните.

Саму горничную изменить нельзя — только её зону работы на текущую смену.

Автоматическое распределение заданий

Рядом с кнопкой «Назначить сотрудника» появилась кнопка «Распределить задачи». Она запускает алгоритм автоматического назначения всех ещё не распределённых грязных номеров между горничными текущей смены.

Как работает алгоритм:

  1. Система собирает все ресурсы в статусе «Грязный», по которым ещё нет назначенной горничной.

  2. Для каждого такого ресурса подбирается исполнитель по правилам, описанным ниже в разделе «Логика алгоритма».

  3. Если у горничной уже были назначенные вручную задания — они не удаляются. Алгоритм добавляет новые задания к уже существующим.

  4. После завершения распределения каждая горничная, которой было назначено хотя бы одно новое задание, получает одно push-уведомление в мобильное приложение — независимо от количества назначенных номеров.

Важно: перед запуском алгоритма система запросит подтверждение действия. Это защита от случайного распределения.

Логика алгоритма для супервайзера

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

Правило 1: Совпадение по этажу

Если у номера указан этаж, и в смене есть горничные, закреплённые за этим этажом, система назначает одну из них.

  • Если на этаже одна горничная — номер достаётся ей.

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

    1. Суммарная трудоёмкость уже назначенных заданий (общая длительность уборки по всем распределённым номерам);

    2. При равной трудоёмкости — количество уже назначенных номеров.

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

Правило 2: Нет горничных на этаже — передаём «свободной»

Если на этаже грязного номера нет ни одной закреплённой горничной, система ищет сотрудниц, у которых не указан ни один этаж в настройках смены.

  • Из таких горничных выбирается та, у которой наименьшая текущая загрузка (сначала по трудоёмкости, затем по количеству номеров).

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

Правило 3: Все привязаны к этажам — ищем ближайшую

Если у всех горничных в смене указаны этажи, но ни одна не закреплена за этажом грязного номера, система ищет ближайший этаж среди закреплённых за сотрудницами.

  • Сравнивается числовое расстояние между этажом номера и этажами горничных.

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

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

Правило 4: Номер без этажа

Если у самого номера не указан этаж, система игнорирует географическую привязку и назначает его горничной с наименьшей загрузкой по всей смене — независимо от этажей.

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

Итоговый приоритет алгоритма

Приоритет Условие Критерий выбора
1 Горничная закреплена за этажом номера Наименьшая загрузка (трудоёмкость → кол-во номеров)
2 Есть горничные без привязки к этажам Наименьшая загрузка среди них
3 Все привязаны к этажам, но не к этому Ближайший этаж → наименьшая загрузка
4 У номера нет этажа Наименьшая загрузка по всей смене