ยานพาหนะ
เมนูยานพาหนะใช้ดูและอัปเดตข้อมูลรถที่ใช้ในรอบขนส่ง เช่น สถานะพร้อมใช้งาน เลขไมล์ ประเภทน้ำหนักบรรทุก และความพร้อมก่อนนำไปสร้างรอบขนส่ง
ทางเข้าในแอป
| App | Target |
|---|---|
| Mobile | VehicleList |
| POS Terminal | vehicle -> VehicleDetailForm |
Workflow
กฎข้อมูล
| กฎ | รายละเอียด |
|---|---|
| แหล่ง list | getVehicles({ page, search }) จาก common services |
| Dedupe | Terminal split list dedupe ด้วย licensePlate |
| Status normalization | status ที่ไม่รู้จัก default เป็น READY; UNCHECKED และ NOT_READY ถูกคงไว้ |
| Mileage | getVehicleMileage ใช้ตรวจเลขไมล์ก่อน/หลังงานขนส่ง |
| พึ่งพาขนส่ง | Transport header ใช้ทะเบียน/คนขับ และควรเคารพสถานะความพร้อม |
Flow เปลี่ยนสถานะรถ
| Action | กฎ |
|---|---|
| รายการ | รองรับ pagination และตัดทะเบียนซ้ำก่อนแสดง |
| บันทึก | UI ส่งเฉพาะ UNCHECKED, READY, NOT_READY ผ่าน updateVehicleStatus แล้วโหลดใหม่ |
| เลขไมล์ | อ่านใน flow เริ่ม/จบขนส่ง ไม่ได้แก้ในฟอร์มนี้ |
| เลือกในขนส่ง | ต้องตรวจสถานะซ้ำ เพราะข้อมูลรายการอาจเก่า |
สิทธิ์และ guard
| เรื่อง | รายละเอียด |
|---|---|
| Terminal menu key | vehicle |
| deptCode ที่เห็นเมนู | -2, 1, 2, 3, 4, 7, 29, 21, 8, 9, 27 |
| เงื่อนไขสาขา | ใช้ permission family เดียวกับ employee/operations |
| Operational guard | ไม่ควร assign รถที่ไม่พร้อมให้รอบขนส่ง active |
Mobile vs POS Terminal
| เรื่อง | Mobile | POS Terminal |
|---|---|---|
| Navigation | VehicleList | HomeScreen split-pane menu key vehicle |
| Detail | list-centered vehicle view | VehicleDetailForm |
| แก้สถานะ | action ใน vehicle list/detail | action ใน detail form |
| ใช้ในขนส่ง | เลือกใน transport flow | ใช้โดย TransportDetailForm |
Developer Handoff Map
| Area | Code |
|---|---|
| Mobile list | apps/mobile/src/screens/vehicleStack/vehicleListScreen/index.tsx |
| Terminal detail | apps/pos-terminal/src/screens/HomeScreen/VehicleDetailForm.tsx |
| Common service | getVehicles, updateVehicleStatus, getVehicleMileage ใน services/common.ts |
| Transport dependency | TransportDetailForm.tsx |