Műszakütemező motor
FEJLESZTŐKNEK ÉS INTEGRÁTOROKNAKDeterminisztikus, 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.
Miért erre építs
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.
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.
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
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.
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.
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.
A nemzeti munkaszüneti napok (fix + húsvét-alapú) automatikusan: a műszakosok átdolgozzák, a nappalosok fizetett ünnepi pihenőt (Üp) kapnak.
Napi létszám műszakonként, a telephely üzembiztonsági minimumát alullépő műszakok jelzésével.
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. §).
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.