Смены
Назначение
Смена — рабочий блок производства, в котором мастер ведёт группу заданий за определённый отрезок времени: восьмичасовой день, ночная смена, дежурство в выходной. На смене собирается всё, что связано с этой пачкой работ: задания, исполнители, простои, выработка. Закрытая смена — основа для расчёта зарплаты и аналитики; открытая смена — рабочее окно мастера.
Кто работает с модулем
- Мастер — открывает свою смену на день, ведёт её, добавляет задания, контролирует ход, закрывает в конце.
- Администратор — видит и управляет сменами всех мастеров организации, может назначать смены за других, корректировать состав.
- Оператор — раздел «Смены» в веб-интерфейсе ему недоступен. Он видит свою текущую смену косвенно — через назначенные ему задания в приложении OCULUS.
Раздел и навигация
Раздел «Смены» в основном меню веб-интерфейса. На странице — единая таблица с шапкой «Управление сменами / Создание и настройка рабочих смен с назначением руководителей» и кнопкой «Добавить смену». Вкладок нет — все смены в одном списке, разделение задаётся фильтрами и сортировкой.
Основные сценарии
Создание смены
- Мастер или администратор нажимает «Добавить смену».
- В форме указывает:
- Код смены — короткое обозначение (например, «А», «Ночная», «Дежурная»). До 10 символов.
- Дата — день, на который заводится смена.
- Плановое начало и плановый конец — время в часах и минутах.
- Мастер — администратор выбирает любого мастера организации; мастер сам себе подставляется автоматически.
- После сохранения смена появляется в списке со статусом «Новая».
Перед сохранением система проверяет, что плановое окончание позже планового начала, что назначенный мастер действительно имеет роль «Мастер» или «Администратор», и что у этого мастера ещё нет другой смены на эту же дату — двух смен на одного мастера в один день система не пропускает.
Запуск смены
- На «Новой» смене у мастера появляется кнопка «Начать», но только если сегодняшняя дата совпадает с датой смены — нельзя «начать» вчерашнюю или будущую смену.
- При запуске статус меняется на «Активная», фиксируется фактическое время начала.
- Запуск смены требует наличия в ней хотя бы одного задания — пустая смена не стартует.
Дублирование
В строке таблицы есть действие «Дублировать» — открывается форма создания, заполненная значениями исходной смены: код, дата, плановое время, мастер. Мастер меняет дату (или другое поле) и сохраняет — новая смена создана. Удобно для повторяющихся типовых смен.
Завершение смены
- На «Активной» смене кнопка «Завершить».
- Перед закрытием система проверяет, что все задания смены находятся в финальных статусах («Завершено» или «Отменено») и что нет открытых простоев ни на одном из заданий. Если что-то не так, система отказывает с конкретным перечнем: список незавершённых заданий с их кодами, продукцией и текущим статусом, или указание «есть активные простои, завершите их перед закрытием смены».
- После закрытия фиксируется фактическое время окончания, статус меняется на «Завершённая», и смена становится недоступной для редактирования и для добавления новых заданий.
Передача и смена мастера
Отдельного механизма «передачи смены другому мастеру» в системе нет. Если по факту смену поведёт другой человек, администратор может изменить поле «Мастер» через редактирование смены — это разрешено, пока смена не закрыта. Изменение фиксируется в истории и заново проверяется на пересечение смен у нового мастера.
Поля и данные
| Поле | Обязательно | Подсказки и правила |
|---|---|---|
| Код смены | Да | До 10 символов. Свободный текст: «А», «Ночь», «Дежурная». |
| Идентификатор | — | Заполняется автоматически в формате SHF-YYYY-NNNN. |
| Дата | Да | День проведения смены. |
| Плановое начало | Да | Время в формате часы:минуты. |
| Плановое окончание | Да | Должно быть позже планового начала. |
| Мастер | Да | Из списка действующих мастеров и администраторов. |
| Фактическое начало | — | Заполняется при запуске. |
| Фактическое окончание | — | Заполняется при закрытии. |
| Статус | — | Новая / Активная / Завершённая. |
Состав смены (операторы и машины) явных полей не имеет — он определяется через задания, входящие в смену: какие операторы исполняют её задания, на каких машинах эти задания выполняются. Поэтому добавить «оператора в смену» отдельно нельзя — для этого создаётся или переносится задание.
Списки, фильтры, поиск
Колонки таблицы смен: порядковый номер, идентификатор, код смены, дата, назначенный мастер, статус, плановое начало, плановое окончание, фактическое начало, фактическое окончание.
Сортировка: по любой колонке. По умолчанию — по дате, новые сверху.
Фильтры:
- Статус — выбор из «Новая / Активная / Завершённая».
- Назначенный мастер — поиск по сотрудникам.
- Код смены и идентификатор — текстовый поиск с поддержкой нескольких значений через запятую.
- Диапазон дат смены.
- Диапазоны времени — по плановому и фактическому началу и концу.
- Глобальный поиск — по идентификатору, коду, имени мастера, статусу (по русским названиям) и по дате как в формате
2026-05-06, так и06.05.2026.
В таблице рядом со статусом видны автоматические счётчики: сколько всего заданий в смене и сколько уже завершено. Это позволяет на глаз оценить ход смены без захода внутрь.
Экспорт списка — в табличный файл (выбор формата) с теми же колонками, что в интерфейсе.
Автоматика и подсказки системы
- Идентификатор смены формируется автоматически в виде SHF-YYYY-NNNN — повторов внутри организации не бывает.
- Двух смен на одного мастера в одну дату система не создаст — попытка отвергается с указанием существующей смены.
- Кнопка «Начать» появляется только в день смены — нельзя случайно запустить вчерашнюю или будущую.
- Кнопка «Завершить» работает только при чистом списке: все задания в финальных статусах и все простои закрыты. Иначе — конкретный текст ошибки с перечнем причин.
- Завершённая смена недоступна для редактирования и удаления, если в ней есть задания — это защита истории.
- Счётчики «всего заданий» и «завершено» в строке таблицы пересчитываются автоматически.
- Автоматическое открытие смены по расписанию не предусмотрено — все смены создаются и запускаются мастером или администратором вручную.
Микро-фичи и детали интерфейса
- Идентификатор смены формата SHF-2026-0042 удобно искать в журналах и переписке — он стабилен и не меняется при правках.
- Цвет статуса «Активная» зелёный (подчёркивает «работает прямо сейчас»), «Новая» синий, «Завершённая» нейтральный — мастер видит общее состояние списка периферическим зрением.
- В строке таблицы рядом со статусом два числа: количество заданий и количество уже завершённых. По соотношению видно, что смена «уже почти закрыта».
- Кнопка «Начать» выкручена в зелёный, «Завершить» — в красный: цвета подсказывают значимость действия.
- Кнопка «Начать» физически отсутствует, если сегодня не дата смены — нельзя стартовать смену не в свой день.
- Кнопка «Начать» также не появится у пустой смены — стартовать «без заданий» бесполезно, и система не позволяет случайно открыть смену впустую.
- При попытке завершить смену с открытыми простоями текст ошибки прямо называет причину: «есть активные простои, завершите их перед закрытием смены».
- При попытке завершить смену с незавершёнными заданиями текст содержит список конкретных заданий — мастер сразу видит, что осталось доделать.
- Дублирование смены копирует параметры в новую — мастер только меняет дату.
- Глобальное поле поиска принимает дату в двух форматах сразу —
2026-05-06и06.05.2026. Не нужно «угадывать» формат. - Дублирование двух смен в один день одному мастеру блокируется в момент сохранения с прямым текстом «Мастер уже имеет смену на эту дату».
- Раздел «Смены» полностью скрыт от оператора — оператор не путается в чужих интерфейсах и видит только свои задания в приложении OCULUS.
- Перенос задания между сменами выполняется в карточке задания (не в карточке смены) — это сохраняет логику «у задания есть свой контейнер».
Связи с другими модулями
- Задания (06). Каждое задание входит ровно в одну смену; перенос между сменами возможен в карточке задания.
- Простои (08). Простои фиксируются на заданиях смены и блокируют её закрытие, пока не закрыты сами.
- Машины (09). Какие именно машины «участвуют» в смене, видно через её задания — это естественное следствие связи «задание → машина».
- Пользователи и роли (03). Мастер обязателен; помощников-мастеров система не предусматривает.
- Зарплата (11). Закрытая смена — расчётная единица: фактическое начало, фактическое окончание и итоги заданий идут в начисления.
- Аналитика (12). Отчёты по сменам, мастерам и выработке опираются на закрытые смены.
- Календарь (10). Дата смены определяет, рабочий это день, выходной или перенос.
Состояния и пограничные случаи
- Закрытие смены с открытыми заданиями. Заблокировано. Система перечисляет конкретные задания, которые надо завершить или отменить.
- Закрытие смены с открытыми простоями. Заблокировано с явным текстом причины.
- Запуск смены без заданий. Невозможен. Сначала добавляется задание, потом смена стартует.
- Запуск смены вне даты. Кнопки «Начать» нет ни вчера, ни завтра — только в текущую дату.
- Две смены одному мастеру в один день. Невозможно: проверка по дате блокирует создание.
- Удаление смены с заданиями. Невозможно даже если статус «Новая». Сначала задания убирают или переносят, потом смену можно удалить.
- Удаление закрытой смены. Возможно только при отсутствии заданий — то есть для пустой ошибочной смены.
- Перенос задания между сменами разных дней. Разрешён в карточке задания; принимающая смена должна быть незакрытой.
- Долгая смена через полночь. Допускается: плановое начало в один день, плановый конец в следующий — система просто хранит дату и время начала и конца отдельно.
- Изменение мастера активной смены. Разрешено администратору; новая привязка проходит ту же проверку на пересечение смен.
Операторский интерфейс OCULUS
- Раздел «Смены» в приложении OCULUS не открывается — всё управление смен идёт из веб-интерфейса.
- Оператор видит свою смену косвенно: в списке его заданий каждая запись подписана идентификатором смены, в которую она входит.
- Старт работы по заданию автоматически означает работу в рамках текущей открытой смены — оператор не выбирает её отдельно.
- Если мастер ещё не открыл смену, задания оператора не активируются — приложение покажет состояние «ждём открытия смены».
- При закрытии смены мастером все задания, которые ещё не были закрыты оператором, требуют завершения — оператор видит соответствующие подсказки в приложении.