Antrian Produksi
Halaman layouter — kelola antrian masuk, staging keranjang, dan penugasan job ke mesin sebelum operator menjalankan batch.
Antrian Produksi
Section titled “Antrian Produksi”Menu Antrian Produksi (/production/antrian) menampilkan board operasional untuk layouter (viewMode = antrian). Judul di UI: Antrian Produksi (DTF).
Hak akses: production.queue.view · aksi operasional: production.queue.manage
Baca juga: Overview Produksi · Proses Produksi · Daftar Order
Layout halaman (3 area)
Section titled “Layout halaman (3 area)”Halaman dibagi menjadi tiga area utama:
| Area | Label UI | Fungsi |
|---|---|---|
| Kolom kiri | Incoming queue | Daftar job masuk — filter, claim layout, centang ke keranjang |
| Kanan atas | Production cart (Keranjang produksi) | Staging job terpilih sebelum dikirim ke mesin |
| Kanan bawah | Machine board (Papan mesin) | Status per mesin — menunggu, berjalan, operator |
Antrian Produksi — Overview
Yang di-capture: Board 3 area: incoming queue kiri (tab filter terlihat), keranjang staging kanan atas, machine board kanan bawah. Minimal 2–3 kartu job di incoming.
Filter & kontrol
Section titled “Filter & kontrol”Tab filter (dengan hitungan per tab):
| Tab | Menampilkan |
|---|---|
| Semua | Seluruh job sesuai scope layouter |
| Belum layout | Job yang belum punya dimensi layout (width/length) |
| Siap cetak | Layout sudah terdefinisi, status QUEUED, siap ke mesin |
| Prioritas | Order dengan flag prioritas / due date ketat |
| WA | Pelanggan dengan nomor WhatsApp — aksi chat cepat |
| Marketplace | Order dari channel marketplace |
Scope layouter: Milik saya (job yang sudah Anda claim) vs Semua layouter (pool order baru dari POS yang belum diambil).
Filter tambahan: Pelanggan · Admin layouter (saat scope Semua layouter) · Sort Urutan antrian (drag-drop) vs Terbaru · Pencarian order/pelanggan/produk di header.
Urutan antrian: Mode sort Urutan antrian mengaktifkan drag-drop pada kartu job (ikon ≡). Hanya job yang memenuhi syarat reorder yang bisa diseret — biasanya job dalam scope layouter Anda yang belum dikirim ke mesin.
Status job (API)
Section titled “Status job (API)”| Status | Arti untuk pengguna |
|---|---|
| QUEUED | Job menunggu — di antrian layout atau sudah di mesin tapi belum mulai cetak |
| IN_PROGRESS | Sedang diproses di mesin / dalam batch aktif |
| COMPLETED | Selesai — hilang dari antrian aktif; status produksi order terupdate |
Label tahap di kartu (pill di footer kartu) melengkapi status API:
| Label UI | Keterangan |
|---|---|
| Belum diambil | Job di pool — belum ada layouter claim |
| Layout (diambil) | Layouter sudah claim — siap dikerjakan layout |
| Belum layout | Dimensi layout (lebar/panjang) belum diisi |
| Siap cetak / Siap operator | Layout selesai atau sudah release ke operator |
| Jenjang N/M | Fase workflow aktif (phase_index / total_phases) |
| Di mesin (antri) | Sudah assign mesin, menunggu mulai |
| Sedang diproses | Status IN_PROGRESS di mesin |
Split job & fase: Job dengan qty besar bisa di-split menjadi beberapa porsi (anak job di bawah induk). Induk split tidak bisa masuk keranjang — hanya anaknya. Fase workflow menentukan mesin yang valid di dropdown keranjang (intersection pemetaan resep per jenjang).
Layout width/length: Dimensi layout (layout_width_cm, layout_length_m) dari item order menentukan apakah job masuk tab Belum layout vs Siap cetak.
Alur kerja layouter
Section titled “Alur kerja layouter”| Langkah | Aksi | Izin |
|---|---|---|
| 1 | Buka tab / scope → pilih job di incoming queue | view |
| 2 | Klik Ambil job (claim layout) | manage |
| 3 | Siapkan layout — release ke operator jika perlu | manage |
| 4 | Centang job → masuk keranjang staging | manage |
| 5 | Pilih mesin + operator → Kirim ke mesin & mulai produksi | manage |
| 6 | Pantau papan mesin — batch berjalan | view |
Kartu Job — Claim Layout
Yang di-capture: Kartu job dengan pill Layout (diambil) atau Belum diambil, tombol Ambil job / Lepas claim / Release ke operator terlihat pada kartu yang relevan.
Keranjang & Kirim ke Mesin
Yang di-capture: Keranjang berisi 2+ order, dropdown Pilih mesin + Operator mesin, tombol Kirim ke mesin & mulai produksi aktif.
Aksi pada kartu job (butuh production.queue.manage kecuali lihat saja):
| Tombol | Fungsi |
|---|---|
| Ambil job | Claim layout — job masuk scope Milik saya |
| Lepas claim | Batalkan claim layout (POST /jobs/:id/cancel-layout-claim) |
| Release ke operator | Tandai layout selesai, siap ke tahap operator |
| Centang | Tambah/hapus job dari keranjang (job split induk tidak bisa) |
| Split | Pecah job besar menjadi beberapa porsi |
| Buka chat pelanggan (tab WA) | |
| Estimasi | Popup perbandingan estimasi vs aktual material per job |
Keranjang: Centang job di incoming → atur urutan di keranjang (drag) → pilih mesin Idle yang cocok dengan fase job → pilih operator mesin → Kirim ke mesin & mulai produksi. Semua order dalam keranjang masuk satu batch dan mulai bersamaan.
Dropdown mesin difilter ke aset yang dipetakan di resep untuk jenjang aktif semua job di keranjang. Jika tidak ada mesin idle, tunggu batch selesai di papan mesin.
Papan mesin (Machine board)
Section titled “Papan mesin (Machine board)”Setiap mesin ditampilkan sebagai kartu accordion:
| Bagian | Isi |
|---|---|
| Badge status | Online (busy) · Idle · Maintenance |
| Menunggu | Job QUEUED yang sudah assign ke mesin — tombol Mulai (alur lama per job) |
| Berjalan | Job IN_PROGRESS — untuk batch produksi, selesai lewat menu Proses Produksi |
| Operator | Nama operator mesin dari master aset |
| Proses selesai | Selesaikan batch aktif di mesin ini (jika semua job batch siap) |
Legenda warna: Online · Idle · Maintenance.
Update realtime (WebSocket)
Section titled “Update realtime (WebSocket)”Antrian diperbarui otomatis tanpa refresh penuh lewat WebSocket /ws/production-queue (autentikasi token + branch_id cabang aktif).
Event yang memicu refresh UI antara lain: job.claimed, job.claim_released, job.assigned, job.started, job.finished, batch.completed, queue.reordered.
Jika koneksi terputus, klien mencoba reconnect setiap ~4 detik. Tombol Refresh tetap tersedia untuk muat ulang manual.
Troubleshooting
Section titled “Troubleshooting”| Masalah | Penyebab umum | Solusi |
|---|---|---|
| Tombol aksi tidak muncul | Hanya punya production.queue.view | Minta admin tambahkan production.queue.manage pada role layouter |
| Tidak ada order di Milik saya | Belum claim job | Pilih Semua layouter → Ambil job dari pool |
| Dropdown mesin kosong | Semua mesin busy atau tidak ada pemetaan resep | Selesaikan batch di Proses Produksi; cek Alat/Mesin dan BOM |
| Job tidak bisa ke keranjang | Induk split job atau status tidak QUEUED | Pilih job anak split; pastikan layout sudah release |
| Antrian tidak update otomatis | WebSocket gagal / token expired | Refresh halaman; login ulang; cek koneksi jaringan |
| Belum ada mesin | Master aset kosong di cabang | Daftarkan mesin di Alat / Mesin |
Operator: Setelah batch terkirim, lanjutkan di Proses Produksi — request material dan selesaikan batch.