Etap 17 — Job API: pojedyncza skrytka + flaga BROKEN¶
Wydawanie, nadawanie i odbiór przeszły z event-driven LockerOpenScreen na JobOpenScreen (Job API), plus flaga awarii skrytki.
Co weszło¶
Kiosk (1.5.42–1.5.43)¶
- Nowy
JobOpenScreen(mock/dev nadal naLockerOpenScreen). Agent prowadzi cyklopen→unlock→open→close, re-rygiel, timeouty; kiosk pollu je co 700 ms — czyta diody per skrytka + globalny master status (DrumStatusBanner). - Na zamknięciu: sukces → dalej; błąd (F07/timeout/awaria) → karta „Czy ponowić?": Ponów = nowy job, Nie =
KioskFault+ flaga BROKEN.
Backend¶
LockerStatus.BROKEN— wyklucza skrytkę z wydania/nadania/odbioru (pre-check blokuje), ale dostępna do inwentaryzacji/uzupełnienia (backend zdejmuje BROKEN z tych list). Pickupverify()zwracalockerStatus→ kiosk pokazuje „Skrytka w awarii" i blokuje otwarcie.
Pliki / endpointy¶
- Kiosk:
lib/screens/job_open_screen.dart(nowy),dispense_screen.dart,deposit_lookup_screen.dart,deposit_size_screen.dart,pickup_screen.dart. - Backend:
dispensing/kiosk-dispense.service.ts,shipments/shipments.service.ts(markLockerBroken),shipments/pickup.controller.ts.
Status¶
Wdrożone (kiosk 1.5.42–1.5.43). Pre-check otwarcia ujednolicony w etap-19 (lockerOpenPreCheck).