App

Tento dokument popisuje funkcni chovani webove aplikace shift-planner-app.

Cil aplikace:

  • denne sbirat provozni data po skladech
  • zobrazit obsazenost smen (planned vs expected)
  • umoznit rucni i automaticke rizeni zamykani smen

Obrazovky

Obrazovka 1 - Zadani ocekavani

Formular pro zadani denniho stavu skladu.

data entry

  • tlacitko Do CME vraci uzivatele do CME
  • Zmenit den prepne datum formulare
  • prvni otevreni zobrazuje prazdny formular pro aktualni den

Obrazovka 2 - Potvrzeni zadani stavu

Field data confirmation

  • Upravit data vraci na editaci stejneho skladu a dne s predvyplnenymi hodnotami

Obrazovka 3 - Historie stavu

Mesicni prehled ulozenych zaznamu.

history of data

Obrazovka 4 - Editace konkretniho dne a skladu

Formular pro upravu starsich zaznamu.

Edit history of data

  • po Ulozit data se hodnoty opravdu prepisou
  • navrat bez ulozeni neprovadi zmenu

Obrazovka 5 - Shift locking

Kalendar pro konfiguraci auto-locku po dnech.

Shift locking

Obsah:

  • vyber skladu
  • mesicni kalendar
  • stav dne Povoleno / Zakazano
  • klik na den okamzite prepne auto_shift_lock_enabled

Dulezite:

  • tento pohled nemeni lock v CME
  • meni pouze lokalni nastaveni auto-locku (sp-shift-lock-YYYY-MM.csv)

Obrazovka 6 - Obsazenost smen

Kalendar s obsazenosti smen a rucnim lock/unlock v CME.

Shift occupancy

Obsah:

  • vyber skladu
  • mesicni kalendar
  • Obsazeno (celkem) + rozpad R/O
  • Ocekavano
  • ikona 🔒 pouze pro zamcene smeny

Pravidla:

  • klik na den vola lock/unlock v CME pres planovac_den_id
  • Obsazeno je z API naplanovane_hodiny
  • Ocekavano je z CME DB (expedice_prehled_plan, typ planu 3)
  • pri nedostupnosti API/DB se stranka vykresli, chybejici hodnoty zustanou 0

Datovy model

App database model

Kanonicke nazvy jednotek jsou pallet a roll_cage.

Vstupni validace:

  • prazdne pole => 0
  • cele cislo v rozsahu 0-1000

Ukladani dat

Data jsou ukladana do CSV po mesicich, UTF-8.

  • sp-daily-balance-YYYY-MM.csv
  • sp-shift-lock-YYYY-MM.csv
  • sp-shift-occupancy-YYYY-MM.csv
  • sp-warehouse.csv (ciselnik skladu)

Aktualni ciselnik skladu (source of truth je data/sp-warehouse.csv):

warehouse_id name CME_ID
1 Jablonec 6
2 Liberec B 1
3 Liberec A 8
4 Ceska Lipa 3
5 Ostrava 9

Konfigurace CME DB je v cme-db.ini.

Nasazeni a runtime

Aplikace se nasazuje podle pravidel serveru.

Adresarova struktura na serveru:

/home/agent/shift-planner
├── data
├── logs
└── conf

Lokalni beh:

  • data mount: ./data
  • logs mount: ./target/logs
  • conf mount: ./conf (u app/jobs jako /app/conf)

Logovani

Jednotna konvence:

  • aktivni log: logs/<module_name>.log
  • rotace po 100 MB
  • historie: logs/<module_name>.0001.log, 0002, ...

CME authentication mock

Pro vyvoj je pripraven samostatny modul cme-authentication-mock, ktery implementuje Simple Auth Protocol.

Out of scope

  • role/permission model nad ramec loginu
  • specialni pravidla pro svatky
  • pokrocile IAM funkce (MFA, OIDC/OAuth2 kompatibilita)