Shift Planner Docs
Hlavni cil projektu je automatizace planovani smen brigadniku v jednotlivych skladech.
Co je uz implementovano
- Webova aplikace pro denni zadani dat (
pallet,roll_cage) po skladech. - Kalendar
Shift lockingpro zapnuti/vypnuti auto-locku po dnech. - Kalendar
Shift occupancypro prehled obsazenosti a rucni lock/unlock smen v CME. - Scheduler
shift-planner-jobs, ktery vyhodnocuje over-capacity dny a v LIVE rezimu zamyka smeny. - WAHA integrace pro notifikace do WhatsApp skupiny po uspesnem zamceni.
Automaticke zamykani smen (shift-planner-jobs)
Aktualni implementace je v shift-planner-jobs/jobs/auto_shift_lock.py.
Vyhodnoceni funguje takto:
- Vezme dny v intervalu
dnes .. dnes+N(AUTO_SHIFT_LOCK_LOOKAHEAD_DAYS). - Nacte
auto_shift_lock_enabledzdata/sp-shift-lock-YYYY-MM.csv. - Pokud zaznam pro sklad+den chybi, bere se hodnota
1(povoleno). - Nacte
planned_hoursz APImatematiciAPI.php?naplanovane_hodiny. - Nacte
expected_hoursz CME DB (expedice_prehled_plan, typ planu3). - Pokud pri nacitani vstupnich dat dojde k chybe (API/DB), cele kolo vyhodnoceni se preskoci.
- Pokud je
expected_hours <= 0, den se nikdy nezamyka. - Den je over-capacity, pokud plati
planned_hours > expected_hours + 100. - Pokud je den over-capacity, auto-lock je povolen a smena jeste neni zamcena, provede lock.
- V LIVE rezimu po uspesnem locku muze poslat WAHA notifikaci.
Rezimy behu:
AUTO_SHIFT_LOCK_DRY_RUN=1-> pouze loguje, nic nezamyka.AUTO_SHIFT_LOCK_DRY_RUN=0-> realne zamyka smeny.
Dulezite log radky:
AUTO_SHIFT_LOCK_SCAN_STARTEDAUTO_SHIFT_LOCK_ROUND_SKIPPEDAUTO_SHIFT_LOCK_LIVE/AUTO_SHIFT_LOCK_LIVE_FAILEDAUTO_SHIFT_LOCK_NOTIFY_SENT/AUTO_SHIFT_LOCK_NOTIFY_FAILEDAUTO_SHIFT_LOCK_RESULT
Pokud chybi WAHA konfigurace (typicky AUTO_SHIFT_LOCK_NOTIFY_GROUP_CHAT_ID), v logu bude:
AUTO_SHIFT_LOCK_NOTIFY_DISABLED reason=missing_config
Provozni cesty
- DEV logs:
target/logs - PROD logs:
/home/agent/shift-planner/logs - PROD data:
/home/agent/shift-planner/data - PROD conf:
/home/agent/shift-planner/conf
Nasazeni
Spousteci/deploy skripty jsou v scripts/:
start-<module>.shstop-<module>.shdeploy-<module>.sh
Podrobnejsi informace:
Ktere pravidlo kde hledat:
docs/remote-server.mdzustava aktivni dokument pro server, HAProxy, certifikaty a deploy flow na hostu.docs/container-runtime-contract.mdje projektovy runtime kontrakt pro Docker image, Compose a deploy skripty.- Codex skill neni source of truth; je to jen workflow guardrail nad dokumentaci a implementaci v repu.
- Zdroj skillu je commitnuty v
codex-skills/shift-planner-deploy-runtime/, ale pro realne pouziti v Codexu je potreba ho nainstalovat do${CODEX_HOME:-$HOME/.codex}/skills/shift-planner-deploy-runtime. - Instalace skillu z repa:
./scripts/install-shift-planner-skill.sh
Lokalni serve
- MkDocs (lokalne):
source .venv/bin/activate && mkdocs serve - Dokumentace v Dockeru: http://127.0.0.1:5005
- Shift Planner app: http://127.0.0.1:5004
- CME authentication mock: http://127.0.0.1:5003
Nasazene kontejnery (default domeny)
- Shift Planner app: https://shift-planner.mathbox.90.cz
- CME authentication mock: https://cme-authentication-mock.mathbox.90.cz
- WAHA API: https://waha.mathbox.90.cz
- WAHA Dashboard: https://waha.mathbox.90.cz/dashboard
- Shift Planner docs: https://shift-planner-doc.mathbox.90.cz
Moduly
As-Is stav
Data o poctech kleci a palet jsou podklad pro generovani ocekavaneho poctu hodin brigadniku do CME.
