Skip to content

Расписания

Расписание — план запуска партий и операций на конкретных рабочих местах в конкретное время. Основа для Gantt-диаграммы.

Как открыть

Боковое меню → ПланированиеРасписания

Зачем нужны расписания

Без расписания производство работает хаотично: мастера сами решают, какую партию запускать, операторы простаивают, узкие места блокируют поток. Расписание даёт:

  • точный план: какая партия, какая операция, на каком РМ, в какое время;
  • контроль загрузки мощностей (bottleneck detection);
  • базу для Gantt-диаграммы (см. Gantt);
  • метрики отклонений — план vs факт.

Жизненный цикл расписания

┌─────────┐    утверждение    ┌──────────┐    запуск    ┌──────────┐    все запущены    ┌───────────┐
│  draft   │ ──────────────→  │ approved │ ──────────→  │  active  │ ─────────────→    │ completed │
│ Черновик │                  │Утверждено│              │ Активно  │                   │ Завершено │
└─────────┘                  └──────────┘              └──────────┘                   └───────────┘
    │                             │                         │
    └─→ cancelled                 └─→ cancelled             └─→ cancelled
СтатусКодОписание
ЧерновикdraftДиспетчер работает над планом, можно редактировать
УтвержденоapprovedРуководство утвердило, готово к запуску. После утверждения изменения запрещены
АктивноactiveЗаказы запускаются по расписанию
ЗавершеноcompletedВсе заказы из расписания запущены
ОтмененоcancelledРасписание отменено (создаётся новая версия)

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

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

Типы расписаний

ТипКодГоризонтКогда применяется
Дневноеdaily1 деньОперативное планирование, уточнение смены
Недельноеweekly6-8 днейСамый частый вариант — распределение заказов на неделю
Месячноеmonthly27-32 дняСтратегическое планирование
Сменноеshift1 сменаДетальный план на конкретную смену
ПроизвольноеcustomЛюбойНестандартные периоды

Режимы гибкости (Industry 4.0)

Ключевая особенность AntRoute — настраиваемая гибкость планирования:

РежимКодОписание
ЖёсткоеrigidКлассический MRP: расписание не меняется после утверждения
АдаптивноеadaptiveRolling Wave: ближайшая неделя жёсткая, дальше — корректировки разрешены
ДинамическоеdynamicKanban-style: расписание пересчитывается ежедневно
Безграничная гибкостьunbounded_flexibleIndustry 4.0: real-time перепланирование при любом событии

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

При режимах dynamic и unbounded_flexible можно включить real_time_replan_enabled. Тогда расписание пересчитывается автоматически при событиях: переполнение буфера, поломка станка, задержка партии. При rigid и adaptive эта опция недоступна.

Что на экране

Таблица расписаний

СтолбецОписаниеПример
КодУникальный код расписанияSCH-2026-W11
НазваниеЧеловекочитаемое имяНеделя 2026-W11
ТипДневное / Недельное / Месячное / СменноеНедельное
ПериодДаты начала — конца09.03 — 15.03.2026
СтатусЧерновик / Утверждено / Активно / ЗавершеноАктивно
РежимЖёсткое / Адаптивное / Динамическое / БезграничноеАдаптивное
ЗаписейСколько записей в расписании45
ПерепланированийСчётчик корректировок3
Оценка гибкости0-100 баллов72.5

Метрики расписания

ПоказательОписание
flexibility_scoreОценка гибкости 0-100: < 30 = низкая, 31-60 = средняя, 61-85 = высокая, 86-100 = Industry 4.0
replan_countСколько раз расписание пересчитывалось (высокое значение = нестабильная ситуация)
averageLoadСредняя загрузка рабочих мест (из planning_results)
bottlenecksСписок РМ с загрузкой > 90%

Записи расписания (ScheduleEntry)

Каждая запись — это конкретное назначение:

ПолеОписание
РасписаниеFK на ProductionSchedule
ПартияFK на Batch — какая партия
ОперацияFK на Operation — какая операция
Рабочее местоUUID Workplace — где выполняется
Плановое началоДата и время начала
Плановое окончаниеДата и время окончания
Фактическое началоЗаполняется при старте
Фактическое окончаниеЗаполняется при завершении
Расчётная длительностьМинуты
Статусplanned / in_progress / completed / delayed / cancelled

Статусы записи

СтатусКодОписание
ЗапланированоplannedОжидает начала
Выполняетсяin_progressОперация идёт
ЗавершеноcompletedОперация выполнена (требует actual_start и actual_end)
ЗадержкаdelayedОтклонение от плана
ОтмененоcancelledЗапись отменена

Параметры планирования

Расписание хранит параметры алгоритма оптимизации в planning_params:

json
{
  "maxOrdersPerDay": 10,
  "priorityRules": ["urgent_first", "customer_priority", "completion_date"],
  "workingDays": ["MON", "TUE", "WED", "THU", "FRI"],
  "shiftPattern": "two_shifts",
  "allowOvertime": false,
  "bufferPercent": 10
}

И результаты автоматического планирования в planning_results:

json
{
  "totalOrders": 45,
  "totalBatches": 280,
  "averageLoad": 85,
  "bottlenecks": [
    {"workplaceId": "wp_01", "load": 98},
    {"workplaceId": "wp_05", "load": 95}
  ],
  "unscheduledOrders": 3,
  "warnings": ["Capacity exceeded on 2026-03-15"]
}

Правила валидации

ПравилоОписание
BR-501schedule_code уникален; тип определяет допустимый период (daily <= 1д, weekly 6-8д, monthly 27-32д)
BR-502period_end >= period_start
BR-505approved_at и approved_by обязательны при статусе != draft
BR-506real_time_replan_enabled допустим только при dynamic / unbounded_flexible
BR-508flexibility_score в диапазоне 0-100
BR-242Запись: planned_end >= planned_start

Для кого

РольЧто делает
ДиспетчерСоздаёт и редактирует расписания, утверждает, запускает
МастерВидит расписание своего участка, контролирует выполнение
ОператорВидит свои назначения: какая партия, какая операция, когда
ТехнологАнализирует узкие места, корректирует нормативы

AntRoute MES — управление блуждающими узкими местами