FlowPOS · tochka
hi-fi · схема L1 · BPMN

E-06 — KDS-маршрутизация и стоп-лист

Процесс Волны 2. Пулы-дорожки Кассир · Повар (KDS) и внешний узел Колл-центр, гейт «Есть ингредиенты?» и danger-ветка «Отказ» → стоп-лист (блокировка на всех кассах) + возврат позиции по оплаченному блюду (E-04). Граф 1:1 с Mermaid-каноном kitchen/kds-stoplist.md.

ДисплейFraunces
ИнтерфейсHanken Grotesk
Цифры / кодыJetBrains Mono
1 · Роли · внешние · danger-оп Контекст процесса Роли-исполнители, внешние узлы и одна опасная операция. Правила — business-rules §8.
Роли-исполнители Повар (KDS) — принимает тикет, готовит, «Готово»/«Отказ». Кассир — стоп-лист, согласование с гостем, алерт готовности.
Внешние / старт Старт с двух источников: оплаченный заказ (E-02) ИЛИ заказ за столом до оплаты (E-09). Внешний узел — Колл-центр (алерт).
△ Опасная операция «Отказ» → стоп-лист (блокировка позиции на всех кассах) + при оплаченном блюде возврат позиции (E-04); замена — будущая опция.
Маршрутизация и альтитуда Тикет на планшете кухни маршрутизируется категория → станция. Альтитуда → слой 4: транспорт (локальный Wi-Fi / WebSocket, без интернета); авто-стоп-лист по остаткам (склад ↔ KDS) — Этап 1. Замена отказной позиции (компоновка возврат + новая продажа) — будущая опция (уточнено 2026-07-15).
2 · Пулы-дорожки Дорожки-исполнители Два пула канона + внешний узел. Тип узла = цвет + метка-kicker + значок-форма (не цветом одним).
Кассирроль-исполнитель
◆ задачи + события
PAYОплаченный заказ (E-02)старт-источник 1событие
TBLЗаказ за столом — отправлен официантом до оплаты (E-09)старт-источник 2событие
STOPПозиция в стоп-листеблокировка на всех кассахdanger
RESOLVEСогласовать с гостем: возврат позиции (E-04)замена — будущая опциявозврат
ALERTАлерт: заказ готовсобытие
Повар · KDSроль-исполнитель
◆ задачи + гейт
R1Заказ на планшете кухнимаршрут категория → станциязадача
GIЕсть ингредиенты?гейт
REJ«Отказ»danger
COOKГотовит блюдозадача
DONE«Готово»задача
Колл-центрвнешний узел
◫ алерт-получатель
CCАлерт в колл-центруведомление об отказе по позиции (message-flow)внешн.
3 · BPMN-граф Поток процесса Режим fallback-mermaid (§5/§7): тёплая тема поверх канона. Связи — sequence сплошная, alert/message пунктир.
событие (старт/алерт) задача / шаг гейт (решение) отказ / стоп-лист / возврат (danger) внешний узел sequence flow alert / message flow
%%{init:{
  "theme":"base",
  "themeVariables":{
    "fontFamily":"Hanken Grotesk, ui-sans-serif, sans-serif",
    "fontSize":"14px",
    "lineColor":"#5a4d3d",
    "primaryColor":"#f6e6cd",
    "primaryBorderColor":"#d5842a",
    "primaryTextColor":"#241b12",
    "clusterBkg":"#fbf7ef",
    "clusterBorder":"#d0c1a6",
    "edgeLabelBackground":"#fbf7ef",
    "tertiaryColor":"#f6efe2"
  },
  "flowchart":{"curve":"basis","nodeSpacing":42,"rankSpacing":52,"htmlLabels":true}
}}%%
flowchart TD
    subgraph Cash["Кассир"]
        PAY(["Оплаченный заказ (E-02)"])
        TBL(["Заказ за столом — отправлен
официантом до оплаты (E-09)"]) STOP["Позиция в стоп-листе
(блокировка на всех кассах)"] RESOLVE["Согласовать с гостем:
возврат позиции (E-04); замена — будущая опция"] ALERT(["Алерт: заказ готов"]) end subgraph Cook["Повар · KDS"] R1["Заказ на планшете кухни
(маршрут категория → станция)"] GI{"Есть ингредиенты?"} REJ["«Отказ»"] COOK["Готовит блюдо"] DONE["«Готово»"] end CC(["Алерт в колл-центр"]) PAY --> R1 TBL --> R1 R1 --> GI GI -->|нет| REJ REJ --> STOP REJ -.->|алерт| CC REJ -->|"блюдо уже оплачено"| RESOLVE GI -->|да| COOK --> DONE DONE -.->|алерт| ALERT classDef actor fill:#fbf7ef,stroke:#94866f,color:#241b12,stroke-dasharray:5 3; classDef ext fill:#e5ecf6,stroke:#5b7bb0,color:#243a5f; classDef gate fill:#f8e8cf,stroke:#c9791f,color:#7a4a10; classDef event fill:#dcefe1,stroke:#3c8a5b,color:#1c4a30; classDef task fill:#f6e6cd,stroke:#d5842a,color:#241b12; classDef danger fill:#f6dcd5,stroke:#bc3f2b,color:#7a241c; class R1,COOK,DONE task; class CC ext; class GI gate; class PAY,TBL,ALERT event; class REJ,STOP,RESOLVE danger; style Cash fill:#fbf7ef,stroke:#e2d6c1; style Cook fill:#f6efe2,stroke:#d0c1a6;
◍ fallback-mermaid Санкционировано design-system §5/§7 (утверждён для ВСЕХ L1): swimlanes + гейт + двойной старт (E-02/E-09) + пунктирные alert-flow между дорожками (Отказ→Колл-центр, Готово→Алерт кассиру) делают hand-authored CSS-grid хрупким.
Danger-ветка (гейт GI «нет»): нет ингредиентов → REJ «Отказ» ведёт к STOP постановке позиции в стоп-лист (блокировка на всех кассах) и пунктиром — алертом в CC колл-центр. Если блюдо уже оплачено — переход к RESOLVE согласованию с гостем: возврат позиции (E-04); замена — будущая опция. Опасная операция: блокирует продажи и инициирует возврат денег.