Нельзя было достоверно определить доступность
Статус «свободно» устанавливался вручную. Таблица могла не учитывать новое резервирование, продление проживания или неподтверждённый выезд.
Как обеспечить сотрудника жильём до его прибытия, а не после возникновения проблемы. Портал замыкает контур заявка → резерв → заселение и держит единое состояние размещения, а не набор таблиц и переписок.
Содержание
Руководитель регионального подразделения сообщает HR-специалисту: в понедельник на производственную площадку выходят десять новых сотрудников. Им необходимо жильё.
HR передаёт список координатору размещения. Тот проверяет таблицу свободных мест, связывается с администраторами общежитий и вручную распределяет сотрудников по комнатам. Через несколько часов выясняется, что часть указанных мест занята людьми, которым продлили командировку. Информация о продлении осталась в переписке и не попала в общую таблицу.
Четырёх человек переводят на другой объект проживания. Обновлённый адрес получают не все. Утром один сотрудник приезжает по старому адресу, а администратор нового объекта не находит его в списке заселяемых.
Проблема заключается не в невнимательности отдельных сотрудников. Компания управляет размещением через несвязанные списки, сообщения и устные подтверждения. У процесса нет единого состояния, ответственного и обязательного следующего действия.
Клиент — крупная производственно-монтажная компания, которая направляет сотрудников на временные объекты в разных регионах Беларуси.
Компания использует собственные общежития, служебные квартиры и помещения партнёрских организаций. Сотрудники приезжают индивидуально и группами, переводятся между площадками, продлевают сроки работы или уезжают раньше запланированной даты.
Портал обеспечивает жильём своих людей на период работ и не ведёт воронку сделок агентства недвижимости: не продаёт квартиры и не собирает лиды покупателей.
Система не заменяет кадровый учёт, управление недвижимостью или обслуживание зданий. Она отвечает за достоверное размещение конкретного сотрудника на конкретный период. Выбор самой производственной площадки — отдельный продукт: аренда склада и производства под технологический процесс.
| Показатель | Значение |
|---|---|
| Сотрудники, которым периодически требуется размещение | 700 |
| Одновременно проживающие | 180–240 |
| Объекты проживания | 14 |
| Комнаты и квартиры | 96 |
| Учитываемые места | 310 |
| Новые заявки и перемещения | 110–150 в месяц |
| Координаторы размещения | 3 |
| HR-специалисты и руководители подразделений | 22 |
| Администраторы объектов | 9 |
Портал замыкает один рабочий контур: потребность в размещении → заявка → подбор места → резервирование → уведомление участников → фактическое заселение → продление, перемещение или выезд.
Кадровые данные хранились во внутренней учётной системе. Свободные места — в таблице координатора. Фактически проживающие сотрудники — в списках администраторов. Заявки поступали через почту, мессенджеры и телефонные звонки.
Каждый инструмент решал локальную задачу, но ни один не показывал весь жизненный цикл размещения.
Статус «свободно» устанавливался вручную. Таблица могла не учитывать новое резервирование, продление проживания или неподтверждённый выезд.
Сообщение о необходимости жилья не превращалось в управляемую задачу. У него не было обязательного статуса, срока обработки и следующего действия.
Если координатор предварительно указывал место в таблице, другим пользователям было непонятно, подтверждено оно или только рассматривается.
Продление оформлялось заменой даты или сообщением администратору. При этом место уже могло быть обещано следующему сотруднику.
Координатор, администратор и сотрудник могли видеть разные адреса, даты и номера комнат.
Если сотрудник не приехал, администратор мог сообщить об этом только на следующий день. Если человек не выехал, конфликт обнаруживался при прибытии следующего жильца.
Компания учитывала сотрудников и помещения, но не управляла самим размещением.
Ещё одна таблица могла сделать список аккуратнее, но не решила бы проблему пересечения периодов, временных резервов, подтверждения прибытия и контроля последующего выезда.
Поэтому центральной сущностью портала становится карточка размещения сотрудника. Она связывает:
У каждого активного размещения должен быть текущий статус и одно понятное следующее действие.
Корпоративный портал создаёт единую операционную среду для HR, координаторов, администраторов объектов и размещаемых сотрудников.
Портал не просто показывает свободные комнаты. Он управляет переходом от потребности в жилье к подтверждённому результату. Гражданский наём комнаты у частных жильцов — другой продукт: там рабочий центр — проект заселения в комнату с соседями, а не корпоративное общежитие и служебная квартира.
Обеспечить сотрудника жильём к нужной дате.
В портале
Создаёт заявку, указывает период и отслеживает результат.
Ограничение
Не назначает место самостоятельно.
Подобрать место без конфликтов и завершить оформление.
В портале
Обрабатывает очередь, резервирует место, управляет исключениями.
Ограничение
Отвечает сразу за несколько объектов.
Подготовить объект и подтвердить факт проживания.
В портале
Видит прибытия и выезды, фиксирует события, сообщает о проблемах.
Ограничение
Работает только со своим объектом.
Получить актуальные инструкции.
В портале
Просматривает размещение, подтверждает получение, сообщает об изменении.
Ограничение
Видит только собственные данные.
Автоматизация отвечает за проверки и контроль переходов. Человек принимает решение, если подходящего места нет, сотрудника требуется поселить вместе с определённой бригадой или объект неожиданно становится недоступным.
Координатору не нужен общий dashboard как основная точка входа. Его ежедневная задача — понять, какие размещения требуют действия прямо сейчас. Поэтому главным экраном становится рабочая очередь — по той же логике management by exception, что и очередь отклонений клининговой сети, только единица работы здесь — карточка размещения, а не задание на уборку.
В верхней части показываются операционные группы:
Колонки: сотрудник, подразделение, объект работ, требуемый период, объект проживания, место, статус, следующее действие, срок, ответственный.
Система сортирует записи не только по дате создания. Выше поднимаются ситуации, в которых приближается важное событие, но обязательный шаг ещё не выполнен.
При выборе строки справа открывается карточка с контекстом: данные сотрудника, параметры заявки, история размещений, подходящие варианты, предупреждения, комментарии, вложения и основное действие.
Если мест нет, портал не позволяет скрыть проблему произвольным назначением. Заявка получает статус «Требуется решение», а координатор видит причину.
Общее количество свободных мест не отвечает на главный вопрос координатора: доступно ли конкретное место на весь период проживания.
Экран занятости строится как календарная сетка:
Статус «Свободно» не устанавливается вручную. Он вычисляется на основании активных размещений и периодов недоступности.
Если координатор изменяет даты, система немедленно повторяет проверку. При конфликте показывается не общее сообщение об ошибке, а конкретное пересекающееся размещение.
Карточка становится единой историей проживания сотрудника.
ФИО, подразделение, руководитель, телефон, объект работ и особые условия.
Плановые и фактические даты, ожидаемое время прибытия и дата завершения.
Объект, адрес, помещение, номер места и ответственный администратор.
Система показывает одно основное действие, исполнителя и срок:
Администратору подтвердить прибытие до 09:30.
Временная шкала включает создание заявки, изменение дат, резервирование, уведомления, подтверждение сотрудника, заселение, продление, перемещение и выезд.
События нельзя бесследно исправить задним числом. Изменение создаёт новую запись с автором и временем.
Сотруднику не нужен сложный личный кабинет. Ему требуется компактная адаптивная страница, которая даёт адрес, место и правила заселения на период работ, а не персональную инструкцию гостя после брони на одну ночь.
На экране отображаются:
Если место меняется, старая инструкция становится недействительной. Сотрудник получает новую версию и повторно подтверждает её получение.
Администратор видит только закреплённые за ним объекты и действия текущего дня.
Разделы списка:
Чтобы подтвердить заселение, администратор открывает запись, сверяет сотрудника и нажимает «Подтвердить прибытие».
Если человек не приехал, выбирается действие «Не прибыл». Запись автоматически попадает в очередь координатора.
Резерв не превращается в фактическое проживание без подтверждения администратора.
HR создаёт заявку → координатор выбирает доступное место → сотрудник получает инструкцию → администратор подтверждает прибытие → размещение становится активным.
Результат: сотрудник заселён, а фактическая занятость отражена в системе.
HR загружает список → портал создаёт связанные заявки → координатор подбирает места на одном или нескольких объектах → система проверяет каждого сотрудника → администратор получает единый список прибывающих.
Результат: группа размещена без потери персональных статусов.
Система создаёт задачу → руководитель подтверждает новый период → портал проверяет доступность → координатор оформляет продление или перемещение.
Результат: продление не создаёт скрытого конфликта со следующим заселением.
Контрольное время прошло → подтверждения нет → система создаёт отклонение → координатор уточняет ситуацию → резерв сохраняется, переносится или отменяется.
Результат: место не остаётся неопределённо занятым.
Администратор указывает период недоступности → система находит затронутые размещения → координатор получает очередь переназначения → сотрудники получают обновлённые инструкции.
Результат: изменения обрабатываются до прибытия людей.
Администратор подтверждает выезд → размещение закрывается → место возвращается в доступный фонд → история сохраняется.
Результат: плановая и фактическая занятость синхронизированы.
Первая версия должна замкнуть процесс от заявки до подтверждённого освобождения места. Кадровый учёт остаётся во внешней системе: в MVP входит импорт сотрудников из кадровой выгрузки, а не замена ERP.
ИИ не является ключевой частью MVP. Основная проблема решается едиными сущностями, правилами периодов, обязательными статусами и своевременной фиксацией фактических событий.
Для первой версии используется модульный монолит. Заявки, периоды, резервы и фактическая занятость тесно связаны, поэтому их разделение на независимые сервисы только усложнило бы согласованность данных.
Client
Интерфейс основан на таблицах, фильтрах, формах и рабочих панелях; календарь занятости требует управляемого клиентского состояния. Один frontend закрывает desktop-сценарии координатора и мобильные сценарии администратора и сотрудника. PWA и offline-режим в первую версию не входят: работа предполагает стабильное подключение на корпоративных объектах.
API
Предметные блоки: сотрудники и доступ, объекты проживания, заявки, размещения, доступность и резервы, уведомления, отчёты, журнал событий. Проверка пересечений выполняется на сервере внутри транзакции: два координатора не могут одновременно закрепить одно место на пересекающиеся периоды.
Data
В базе остаются сотрудники, объекты, периоды, статусы и история событий размещения.
Queue / cache
Очереди уведомлений, фоновые задачи и кратковременные блокировки при конкурентном резервировании.
Storage
Документы и вложения заявок. В PostgreSQL остаются метаданные и права доступа.
Infrastructure
Единое окружение разработки и эксплуатации, обработка запросов и статики, восстановление данных, доступность приложения и расследование ошибок.
Интеграции первой версии: импорт сотрудников из кадровой выгрузки, email- и SMS-уведомления, экспорт операционных отчётов, корпоративная авторизация, если она уже используется заказчиком.
Срок подготовки и запуска MVP — 12–14 недель.
Инвентаризация объектов, помещений и мест; сверка фактически проживающих; описание статусов; определение владельцев данных; согласование правил резерва, заселения, продления и выезда; очистка справочника сотрудников.
Карта исходного процесса, модель жизненного цикла размещения, прототип рабочей очереди, прототип календаря, карточка размещения, тестирование исключений.
Роли и доступ, справочники, заявки и размещения, резервы и календарные ограничения, рабочие очереди, мобильные сценарии, уведомления, отчёты и журналирование.
Два объекта и одно подразделение. Проверяются соответствие системной и фактической занятости, корректность периодов, понятность статусов, скорость оформления заявки, дисциплина подтверждения прибытия и выезда, продления и уведомления. Старые таблицы временно сохраняются только для сверки.
Для каждого объекта: назначить администратора, сверить занятость, загрузить структуру комнат и мест, закрыть устаревшие записи, провести обучение и перевести объект на работу через портал.
| Метрика | Состояние до | Целевое состояние |
|---|---|---|
| Медианное время от полной заявки до подтверждения места | 1–2 рабочих дня | до 4 рабочих часов |
| Активные заявки без следующего действия | около 27% | менее 5% |
| Конфликтующие назначения одного места | 4–6 в месяц | не более 1 |
| Сотрудники без подтверждённой инструкции перед приездом | около 18% | менее 3% |
| Обнаружение неподтверждённого прибытия | до следующего рабочего дня | до 30 минут после контрольного времени |
| Подготовка отчёта о фактической занятости | около 3 часов | до 15 минут |
| Размещения с полной историей событий | около 55% | более 95% |
| Риск | Вероятность | Влияние | Снижение |
|---|---|---|---|
| Исходная занятость не соответствует таблицам | Высокая | Высокое | Инвентаризация и подтверждение каждого активного размещения |
| Заявки продолжают поступать через сообщения | Высокая | Высокое | Единая точка регистрации и запрет подтверждения вне портала |
| Администраторы поздно отмечают события | Средняя | Высокое | Мобильный список дня, напоминания и очередь отклонений |
| Руководители передают неточные даты | Средняя | Среднее | Обязательные поля и отдельная процедура продления |
| Уведомление не доставлено сотруднику | Средняя | Среднее | Контроль доставки, повторный канал и подтверждение получения |
| Персональные данные видит лишний пользователь | Низкая | Высокое | Ролевая модель, ограничение по объектам и журнал доступа |
| Параллельный учёт создаёт несколько версий | Высокая во время пилота | Высокое | Ограниченный переходный период и формальное определение основной системы |
После стабилизации основного процесса портал можно развивать на основании накопленных данных:
До
После
Корпоративный портал не просто переносит список сотрудников и мест в браузер. Он превращает размещение в управляемый жизненный цикл: от возникновения потребности до подтверждённого выезда.
После внедрения координатору не нужно вручную поддерживать несколько версий действительности. Портал связывает сотрудника, период, место и фактическое событие, а человеку оставляет ситуации, в которых действительно требуется решение.
Нужна разработка портала размещения сотрудников, рабочих очередей и календаря занятости, MVP на Laravel + Vue — см. разработку на Laravel. Другие концепции — в каталоге решений (раздел «Решения» в навигации выше).