← OPEREX Motorok

Műszakütemező motor

FEJLESZTŐKNEK ÉS INTEGRÁTOROKNAK

Determinisztikus, compliance-tudatos műszakütemező motor HTTP-n. Generálj folytonos-üzemi műszakbeosztást, rakd rá a nemzeti munkaszüneti napokat, és minden beosztást ellenőriztess egy tételes munkajogi szabálykönyvvel — pontos paragrafus-hivatkozással minden jelzésen.

API-referencia → · egy motor, kétféleképpen: ez az API, vagy az OPEREX Műszaktervező UI-modul.

API-referenciaBeszéljünk — design partnerek

Miért erre építs

DETERMINISZTIKUS

Ugyanaz a bemenet + ugyanaz a motor- és szabály-verzió MINDIG ugyanazt a beosztást adja — reprodukálhatóan, jogi vagy bérszámfejtési auditra. Nincs rejtett véletlen, nincs elcsúszás.

COMPLIANCE-TUDATOS

Minden generált beosztás egy nemzeti, tételes munkajogi szabálykönyvhöz mérve, pontos paragrafus-hivatkozással jelentve. Jelez és indokol — nem garantál.

SZABÁLYOK = ADAT

A műszak-minták, a rotáció-fázisok, az ünnep-készlet és a munkajogi küszöbök verziózott adatok, a motortól külön. Egy megváltozott jogszabály adat-szerkesztés, nem kódírás.

Mit tud a motor

Bármilyen minta, bármekkora időszak

Generálj bármilyen ciklikus műszak-rotációt — 8h három-műszak, 12h két-műszak, 2-2-3, egyedi — tetszőleges dátumtartományra, két héttől egy teljes évig. A minták verziózott adatok, nem kód.

A műszakok külön kezelve

Minden műszak a rotáció saját fázisát futtatja; az egyéni felülírások (nappalos, beugrós, LEAN) erre ülnek rá. Solver nélkül, determinisztikusan — a referencia-üzem valós műszakjait pontosan reprodukálja.

Vegyes 8/12 órás rend

A reggel/délután/éjszaka 8h és a nappal/éjszaka 12h műszakok egy telephelyen belül együtt élnek, a nappalosokkal és beugrósokkal — vegyes műszak-modell, nem egyetlen fix rács.

Ünnep-overlay

A nemzeti munkaszüneti napok (fix + húsvét-alapú) automatikusan: a műszakosok átdolgozzák, a nappalosok fizetett ünnepi pihenőt (Üp) kapnak.

Lefedettség és biztonsági minimum

Napi létszám műszakonként, a telephely üzembiztonsági minimumát alullépő műszakok jelzésével.

Per-fő statisztika

Ugyanabból a beosztásból per-fő havi összesítő: motor-hiteles ledolgozott óra, éjszakák száma, ledolgozott műszakok, a nap-kódok (szabadság Sz, csúszó CS, ünnepi pihenő Üp) és a munkaidőkeret-egyenleg (ledolgozott − elvárt, Mt. 93–94. §).

Forrásolt megfelelőségi jelentés

Napi pihenő, napi/heti max óra, éjszakai korlát és heti pihenőnap — minden jelzés citálja a paragrafusát. Jelez és indokol; nem garantál.

Egy hívás, egy teljes hónap

Egyetlen kérés felépíti a hónapot és (opcionálisan) kiértékeli a megfelelőséget:

curl https://api.operex.eu/v1/schedule:build \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{
    "site": {
      "site_id": "plant-01",
      "shift_pattern_key": "12h-2-2-4",
      "anchor": "2022-08-09",
      "n_crews": 4,
      "dayworker_anchor": "2022-08-08",
      "min_headcount": { "safety_total": 8 },
      "employees": [
        { "staff_id": "1000001", "name": "…", "role": "Operator", "kind": "shift", "crew": 0 },
        { "staff_id": "9000001", "name": "…", "role": "Engineer", "kind": "dayworker" }
      ]
    },
    "year": 2025, "month": 12, "evaluate": true
  }'

Válasz (rövidítve):

{
  "engine_version": "0.6.0",
  "schedule": {
    "site_id": "plant-01", "year": 2025, "month": 12,
    "days": [ "2025-12-01", "2025-12-02", … ],
    "rows": {
      "1000001": [ "É","É","-","-","-","-","R","R", … ],
      "9000001": [ "N","N","N","N","N","-","-", …, "Üp","Üp" ]
    },
    "coverage": [
      { "day": "2025-12-01", "morning": 1, "afternoon": 0, "night": 1, "dayworker": 1, "understaffed": [] }, …
    ],
    "statistics": {
      "1000001": { "worked_hours": 192, "night_count": 8, "shift_count": 16, "vacation_days": 0, "flex_days": 0, "holiday_rest_days": 0, "expected_hours": 176, "balance": 16 }, …
    }
  },
  "compliance": {
    "rulebook_version": "2026-09-03-draft",
    "violations": [],
    "notes": [ "This report signals and justifies; it does not guarantee compliance. …" ],
    "any_needs_review": false
  }
}

Jelek: R/É = 12h nappal/éjszaka, r/d/é = 8h reggel/délután/éjszaka, N = nappalos, Üp = fizetett ünnepi pihenő, - = pihenő. A teljes séma a referenciában.

Determinizmus és verziózás

A rotáció fix bázisnaphoz horgonyzott, így a ciklusban elfoglalt hely a dátum tiszta függvénye. Minden válasz visszaadja az engine_version-t és a rulebook_version-t; rögzítsd őket, és ugyanaz a kérés bájtra ugyanazt a beosztást reprodukálja — ettől auditálható a beosztás és rendezhető egy vita.

Jelez és indokol — nem garantál

A compliance-réteg a differenciátor. Minden generált beosztás egy nemzeti, tételes munkajogi szabálykönyvhöz mérve (napi pihenő, napi/heti max óra, éjszakai korlát, heti pihenő), és minden lehetséges sértés a statute_section-jével, a mért értékkel és a küszöbbel jelentve. Őszintén pozicionál: jelez és megmagyaráz, de nem tanúsít. A jogi megerősítésre váró szabály jelzései needs_review flaget kapnak.

Állapot és csomagolás

Élő. A motor éles üzemben fut, valós beosztásokon validált. A munkajogi szabálykönyv folyamatos jogi felülvizsgálat alatt áll — a megerősítésre váró szabályok jelzései needs_review flaget kapnak —, a hosztolt API pedig előzetes hozzáférésű design partnereknek érhető el, nem nyilvános önkiszolgáló szolgáltatásként.

Kétsávos csomagolás. Vedd meg az API-t önmagában (havidíj, REST-integráció, UI nélkül), vagy használd az OPEREX Műszaktervező modult, aminek a UI-ja ugyanezt a motort hívja. Előzetes hozzáférésű design partnereket szívesen látunk.

GYIK

Determinisztikus a beosztás?

Igen. Ugyanaz a telephely-konfiguráció + ugyanaz a motor- és szabály-verzió mindig ugyanazt a beosztást adja. A válasz tartalmazza a verziókat, így később rögzíthető és reprodukálható egy eredmény.

Garantálja a jogi megfelelőséget?

Nem — és ezt ki is mondja. A motor jelzi a lehetséges munkajogi problémákat, és mindegyiket paragrafus-hivatkozással indokolja. A szabálykönyv verziózott adat, amit a hatályos jogszabályhoz kell erősíteni; a piszkozat-szabály jelzései felülvizsgálandóként jelöltek.

Milyen optimalizálót használ?

A v1-ben egyet sem. A referencia-folyamat determinisztikus mintaforgatás, nem kombinatorikus optimalizálás, ezért a motor közvetlenül kifejti a rotációt. Constraint-solvert csak akkor vezetnénk be, ha egy jövőbeli igény valódi optimalizálást kíván.

Generálhatok egynél több hónapot egy hívásban?

Igen. A POST /v1/schedule:build-range egy kezdő és záró dátumot vesz, és egyetlen hívásban felépít bármilyen inkluzív időszakot — két hetet, egy negyedévet, egy egész évet —, ugyanazzal a rotációval, cella-szintű felülírásokkal és megfelelőséggel, mint a havi build (a megfelelőség gördülő ablakai a teljes tartományon futnak, a statisztika pedig a tartományra összesít). A havi POST /v1/schedule:build megmarad a gyakori esetre.

Hogyan kapom meg a UI-t?

Egy motor, kétféle fogyasztás: vedd meg az API-t önmagában és integráld REST-en, vagy használd az OPEREX Műszaktervező modult, aminek a UI-ja ugyanezt a motort hívja. Az előzetes hozzáférésről beszéljünk.

BeszéljünkOlvasd el az API-referenciát
Hírlevél

Kövesd az OPEREX fejlődését

Új modulok, ipari műszaknapló-tippek és ISO 45001-es gyakorlatok — havonta legfeljebb egyszer, spam nélkül.

Bármikor leiratkozhatsz — minden levél alján ott a link.