Vissza a Journal-hoz
logisticshu

Pick-and-pack mobil olvasoval

62-rol 89-re no pickelt sor oranként. NFC login, scan-debouncing, sulyellenorzes packelesnel - es a bug, ami megolt minket tavasszal.

A papir pick-listanal egy pickere 62 sort tudott felvenni oranként, atlagosan. A PWA-val Honeywell EDA51 olvason 89 sor oranként, ugyanaz az ember, ugyanaz a raktar. A kulonbseg nem a sebessegben van - a kulonbseg az, hogy soha nem teveszti el a polcot. Itt van, hogy hogyan epitettuk.

A keszulekvalasztas

Harom keszuleket teszteltunk a partnereinkkel: Honeywell EDA51 (Android 11, 2D imager, 1.000 nit kijelzo, 13 oras akku), Zebra TC22 (Android 13, 1.500 nit, hot-swappable akku), es egy olcsobb generikus Datalogic Memor 10 (Android 10). A Honeywell EDA51 lett a default ajanlas, mert a 2D imager scan-tavolsaga 50cm es a kepelmosodest a fenykepezogep nelkul oldja meg (kevesebb hibas scan az alsoabb polcoknal). A Zebra TC22 hot-swappable akkuja a 24/7 muszakos raktarakban kotelezo.

A PWA dontes nem volt magatol ertetodo. Egy native Android app feladatat dobtuk el, mert a partnerek device-flottaja kevert (EDA51 + TC22 + 1-2 BYO-tablet), es a OTA-frissites pluginnel egyenkent fajdalmas. A PWA-t a Chrome dispatcher-rel telepitjuk, a service worker-rel pedig offline-elsoseggel mukodik (lokal IndexedDB cache, sync-back ha a wifi visszater).

Login NFC tag-gel

A pickerek nem irnak be jelszot egy 6 oras muszak elejen. Minden picker NFC tag-et hord (raktari kapcsi, vagy egy POS-stilusu kartya), es a keszulekhez tartja. A WebNFC API beolvas a tag-rol egy UUID-t, amit a backend picker_sessions tablaja validalja. Ha a UUID erveny es az adott raktarhoz tartozik, a session 8 oran at tart. A device elveszte vagy ellopas eseten a backend picker_sessions revoke-javal egyetlen kerelem alatt levaltjuk a fero hozzaferest.

A pick-flow

A pick-list-et a backend allocator generalja (multi-warehouse logikat figyelembe veve). A pickerre rendelodik egy hullam (wave), ami 6-12 ordert tartalmazhat. A PWA megmutatja az elso polc-cimet (A12-04-03), a pickere odamegy, a polcot LCD jelzofeny vilagosan kiemeli (Wi-Fi pick-to-light integralas opcionalisan), a pickere scan-eli a polcot egyseggel megerositi, hogy a megfelelo helyen all. Ezutan scan-eli a SKU vonalkodajat, ami a pick-listrol az adott sort kvittalja. Ha a scan nem egyezik (rossz SKU, lejart, serult), a pickere a flag gombbal jelzi, es a sor a supervisor wave-jeben jelenik meg.

A bug, ami megolt minket 2026 tavaszan

A Honeywell EDA51 Android 11 patch szintje a 2026 marciusi havi frissites utan elkezdte ducsazni a barcode-scan eventet. A keypress event egyszer szol, de a kvevetkezo keydown + keyup kombinacioja egy masodszori keypress-et triggerezett, igy minden scan ketszer regisztralt. Hat napon at szerkesztettuk a problemat ahhoz, hogy a flag gombot is ketszer indickonyveztek. A megoldas: event.timeStamp-alapu debouncing (50ms-en belul ket scan = egy), es egy regression-spec, ami a Chromium DevTools Input.dispatchKeyEvent-ekkel szimulalja a double-fire-t. A teszt a CI-ban most all.

Wave picking vs. single-order picking

Tamogatjuk mindkettot. A single-order picking a kis raktaraknal (<3 picker) gyorsabb, mert nincs a sortolas overhead-je a packelo asztalnal. A wave picking a nagyobbaknal (4+ picker, 300+ orders/nap) hatekonyabb, mert egy picker korut tobb order-en haladunk vegig, a packelo asztal csinalja a sortolast. A switch egy tenant-config beallitas, es a partner napon belul valthat (csak az aktiv wave befejezesere varni kell).

Pack-asztal sulyellenorzes

A packing-resz nem latvanyos: a picker pack-asztalhoz hozza a kósi, a packere scan-eli az ordert, az asztali Bluetooth merleg leadja a sulyot, a backend ossszehasonlitja az order-be levo SKU-k osszesutottsulyaval (±2% tolerancia). Ha eltér, a packere a hibajat dokumentalja egy fotoval, es az order a problemas wave-ben land. Ez a sulyellenorzes 2026 februar ota 0.4%-rol 0.07%-ra csokkentette a 'rossz darabszamu csomag' panaszt.