A
Альтаир
Прослеживаемость

Справка

Гайд по АРМ

Краткое описание итерации 1: список растений, карточка со сменой статуса, dev-стенд столов с drag-and-drop и QR. Ниже — статусная модель: что означает каждый статус и когда он проставляется.

Разделы интерфейса

  • Растения

    Список PlantUnit с фильтром по статусу. Можно создать новое растение (статус Зарезервирован) и открыть карточку.

  • Карточка растения

    Identifier, горшок, QR-этикетка, доступные переходы по state machine и история событий. Переходы меняют статус только через API (с записью события).

  • Столы

    Dev-стенд: растения по столам T-01…T-04, перестановка drag-and-drop, сайдбар с данными и QR (public code) для сканера телефона / ТСД. Перестановка пишет событие «Перестановка на стол», статус при этом не меняется.

Принципы статусной модели

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

Смена статуса только через явные команды / события (никогда «тихим» UPDATE поля). В той же транзакции пишется неизменяемое событие в историю.

В API и БД коды статусов остаются английскими (`Reserved`, `Printed`, …). В интерфейсе показываются русские названия; при наведении на бейдж виден технический код.

Основной путь (happy path)

Типичная цепочка от резерва идентификатора до упаковки:

  1. Зарезервирован
  2. Напечатан
  3. Нанесён
  4. Верифицирован
  5. Размещён
  6. На выращивании
  7. Готов к упаковке
  8. Упакован

Все статусы

ЗарезервированМаркировкаReserved
Когда проставляется
При создании идентификатора / PlantUnit — код выделен из пула, этикетка ещё не печаталась.
Что означает
Идентификатор занят под конкретное растение, физическая маркировка ещё не начата.
НапечатанМаркировкаPrinted
Когда проставляется
После успешной печати QR-этикетки (PrintJob выполнен).
Что означает
Этикетка с public code существует, но ещё не подтверждена на горшке.
НанесёнМаркировкаApplied
Когда проставляется
После подтверждения нанесения этикетки на горшок (PLC / датчик / оператор).
Что означает
Код физически на горшке; качество считывания ещё не подтверждено камерой.
ВерифицированМаркировкаVerified
Когда проставляется
Камера / сканер подтвердили: код читается и совпадает с ожидаемым.
Что означает
Маркировка принята. Растение может участвовать в range-binding стола.
Ошибка верификацииИсключенияVerificationFailed
Когда проставляется
Камера не смогла прочитать код, код не совпал или этикетка повреждена.
Что означает
Нужна перепечатка (возврат к «Напечатан») или физическая отбраковка.
ОтбракованИсключенияТерминальныйRejected
Когда проставляется
Оператор / линия фиксирует физическую отбраковку после ошибки верификации.
Что означает
Терминальный статус: растение выведено из оборота как брак маркировки.
РазмещёнВыращиваниеPlaced
Когда проставляется
После привязки верифицированного растения к столу (TableOccupancy / placement).
Что означает
Растение стоит на конкретном столе, выращивание ещё не начато как этап.
На выращиванииВыращиваниеGrowing
Когда проставляется
Стол / партия переведена в оборот выращивания (или явный переход с «Размещён»).
Что означает
Основной производственный этап. Агрооперации (полив и т.п.) статус не меняют.
Готов к упаковкеВыращиваниеReadyForPackaging
Когда проставляется
Растение / стол признаны готовыми к отгрузке или упаковке.
Что означает
Ожидает упаковки; можно списать при выбытии до упаковки.
УпакованЗавершениеТерминальныйPackaged
Когда проставляется
После фиксации упаковки / отгрузки.
Что означает
Терминальный успешный статус жизненного цикла в теплице.
СписанИсключенияТерминальныйWithdrawn
Когда проставляется
Гибель, брак выращивания, ручное выбытие со статусов «Размещён» / «На выращивании» / «Готов к упаковке».
Что означает
Терминальный статус выбытия без упаковки.

Допустимые переходы

Граф итерации 1 (как в API). Кнопки на карточке растения предлагают только эти переходы.

ИзВКогда / действие
ЗарезервированНапечатанПечать этикетки
НапечатанНанесёнНанесение на горшок
НанесёнВерифицированКамера — OK
НанесёнОшибка верификацииКамера — FAIL
Ошибка верификацииНапечатанПерепечатка
Ошибка верификацииОтбракованОтбраковка
ВерифицированРазмещёнПривязка к столу
РазмещёнНа выращиванииСтарт выращивания
РазмещёнСписанСписание
На выращиванииГотов к упаковкеГотовность к упаковке
На выращиванииСписанСписание
Готов к упаковкеУпакованУпаковка
Готов к упаковкеСписанСписание

Терминальные: Упакован, Отбракован, Списан — исходящих переходов нет.

Стол и статус

Привязка к столу (в т.ч. drag-and-drop на стенде) — отдельная операция. Она меняет table_id и пишет событие, но не обязана менять статус.

По целевой архитектуре размещение на столе обычно следует за ВерифицированРазмещён. На dev-стенде растения в разных статусах можно переставлять для демонстрации UI.