#systems#tms#transport#logistics
ระบบขนส่ง TMS (SYS-07 Smart TMS)
TMS คือระบบ "จัดสายรถและการจัดส่ง" ของ BC Ai Account ใช้ปล่อยรถออกส่งของ ติดตามว่าแต่ละจุดส่งถึงหรือยัง เก็บหลักฐานส่งมอบ (e-POD) พร้อมรูปถ่ายหลายมุม บริหารรถของบริษัท/รถเหมา/รถรับจ้าง และบันทึกงานซ่อมบำรุงรถ (PM/CM) ที่ต่อเข้าเอกสารภาษี
ใครใช้ / เปิดอย่างไร
- ผู้ใช้หลัก: ฝ่ายจัดส่ง (จัดเที่ยวรถ ปล่อยรถ) คนขับ/ผู้ประสานงานที่บันทึกการส่งมอบ และผู้ดูแลกองรถ (ซ่อมบำรุง ต้นทุนขนส่ง)
- เปิดจากหน้ารวมระบบ (Portal) การ์ด
SYS-07"ขนส่ง TMS" กลุ่ม "supply" ซึ่งลิงก์ไป/tmsหรือจากแถบหัวระบบ "ระบบ ขนส่ง TMS" - หน้า
/tmsเป็น Server Page เหมือน ระบบคลังสินค้า WMS ภาพรวม (SYS-06 Smart WMS): ไม่มี session จะเด้งไป/login, ยังไม่เลือกฐานข้อมูลจะเด้งไป/select-databaseถ้าผ่านจะวางWorkspaceRouteSyncแล้วให้PersistentWorkspaceHostแสดงจอTmsDashboard(ค้างสถานะไว้เมื่อสลับระบบ ดู พื้นที่ทำงานแบบแท็บ MDI และสิทธิ์จอ (TabWorkspace))
5 แท็บในจอ
| แท็บ (id) | เนื้อหา | อ่านต่อ |
|---|---|---|
ใบกำกับเที่ยวรถ & จุดส่งมอบ e-POD (manifest) |
รายการเที่ยวรถและจุดส่ง บันทึกส่งมอบ ถ่ายรูปหลายมุม | TMS เที่ยวรถ จุดส่งมอบ และ e-POD (UpdateDeliveryPod / CreateTripDispatch) |
ทะเบียนรถตัวเอง·รถเหมาช่วง·รถรับจ้าง (fleet) |
ทะเบียนรถ ประเภทความเป็นเจ้าของ ต้นทุน | TMS ทะเบียนรถ งานซ่อมบำรุง PM/CM และเอกสารภาษี (ADD_VEHICLE / CREATE_MAINTENANCE / COMPLETE_MAINTENANCE) |
ระบบซ่อมบำรุงรถ PM/CM & ต่อภาษี (maintenance) |
ใบสั่งซ่อม ค่าอะไหล่ ค่าแรง VAT/หัก ณ ที่จ่าย | TMS ทะเบียนรถ งานซ่อมบำรุง PM/CM และเอกสารภาษี (ADD_VEHICLE / CREATE_MAINTENANCE / COMPLETE_MAINTENANCE) |
4. บันทึกส่งมอบ e-POD · ถ่ายรูปหลายมุม (dispatch) |
ฟอร์มเลือกจุดส่ง (Stop Code) บันทึกผู้รับ/COD/พิกัด แนบรูปหลายมุม; ปุ่มหัวจอ "ปล่อยเที่ยวรถด่วน" เปิดเที่ยวตัวอย่างพร้อมรูปขึ้นรถ 3 มุม | TMS เที่ยวรถ จุดส่งมอบ และ e-POD (UpdateDeliveryPod / CreateTripDispatch) |
สายพานเชื่อมโยง 8 ระบบ (ecosystem) |
แท็บผังเชื่อมโยงของโมดูล มีลิงก์ไป /crm /home /procure /wms /etax /dashboard /ai | - |
ข้อมูลและตาราง
เมื่อเรียก Overview แบ็กเอนด์สร้างตารางเองด้วย CREATE TABLE IF NOT EXISTS (สิทธิ์ AllowDDL) ครั้งแรกของแต่ละฐานข้อมูล:
tms_fleet_vehicle: ทะเบียนรถ (รหัสรถ, ทะเบียน, ประเภท,ownership_type, ผู้รับเหมา, ค่าเช่าตั้งต้นbase_rate_baht,wht_tax_rate, เลขไมล์odometer_km, ระยะเช็กถัดไปnext_pm_km,health_score_pct, สถานะ, น้ำหนักบรรทุกสูงสุด/ปัจจุบัน, รูปตรวจสภาพ)tms_trip_manifest: เที่ยวรถ (เลขเที่ยว, เส้นทาง, รถ, จำนวนจุดส่ง/ส่งแล้ว, ระยะทาง, ค่าน้ำมัน ค่าทางด่วน เบี้ยเลี้ยง, ค่าขนส่งรวม, มูลค่าบิลรวม)tms_delivery_stop: จุดส่งมอบหนึ่งแถวต่อหนึ่งใบงานคลัง (ผูกwms_doc_noกับerp_inv_doc_no, ลูกค้า, สินค้า, จำนวน, ยอด COD, ผู้รับ, เวลา/พิกัดส่งมอบ, รูป e-POD)tms_maintenance_log: ใบสั่งซ่อมบำรุง (ประเภท PM/CM, อู่, เลขไมล์, ค่าอะไหล่/ค่าแรง/VAT/หัก ณ ที่จ่าย, เลขเอกสารค่าใช้จ่ายerp_expense_doc_no)- ตารางที่เขียนข้ามระบบ:
wms_fulfillment_order,wms_movement_log,wms_stock_bin(ปิดใบงานคลัง)crm_customer_activity(บันทึกกิจกรรมลูกค้า)etax_document_log(เอกสารภาษีค่าซ่อม) รายละเอียดที่ TMS เที่ยวรถ จุดส่งมอบ และ e-POD (UpdateDeliveryPod / CreateTripDispatch) และ TMS ทะเบียนรถ งานซ่อมบำรุง PM/CM และเอกสารภาษี (ADD_VEHICLE / CREATE_MAINTENANCE / COMPLETE_MAINTENANCE) - ข้อมูลตัวอย่าง (seed) ใส่ให้เฉพาะฐาน
bcdemoฐานอื่นสร้างตารางแล้วเริ่มว่าง
ตัวเลขสรุปบนหัวจอ (KPI)
Overview ส่ง kpi พร้อมรายการรถ เที่ยว จุดส่ง และงานซ่อม:
- จำนวนรถรวม และแยกกลุ่ม: ชื่อประเภทเจ้าของที่มีคำว่า
OWNนับเป็นรถตัวเอง, มีคำว่าSUBCONTRACTนับเป็นรถเหมาช่วง, ที่เหลือนับเป็นรถรับจ้าง/เหมาเที่ยว (spot_hire_3pl_count) - ค่าขนส่งรวม มูลค่าบิลรวม และสัดส่วนค่าขนส่งต่อยอดขาย (
freight_to_sales_pct= ค่าขนส่ง / มูลค่าบิล x 100 ปัด 2 ตำแหน่ง) - จำนวนงานซ่อมที่ยังไม่เสร็จ (
maint_statusไม่ใช่COMPLETED_READY) และค่าซ่อมรวม - อัตราส่งตรงเวลา (
on_time_rate_pct) เป็นค่าคงที่ 98.6 ที่ฝังในโค้ด ไม่ได้คำนวณจากเวลาส่งจริง จึงไม่ควรใช้อ้างอิงผลงานจริง - การใช้น้ำหนักบรรทุกของรถ = น้ำหนักปัจจุบัน / น้ำหนักสูงสุด (สูงสุด 100%)
API และการเชื่อมต่อ
- Next.js proxy:
/api/tms/overview,/api/tms/pod,/api/tms/trip(ตรวจ session แล้วเรียก Go ด้วย token; ไม่มี token ตอบNO_TOKEN401) ดู เส้นทาง API ฝั่ง Next.js ที่ส่งต่อไป Go backend (API proxy routes) - Go (chi) ใต้
/api/v1/tmsทุกเส้นอยู่หลังAuth:GET /overview,POST /pod,POST /tripดูภาพรวมทุกโมดูลที่ API โมดูลธุรกิจ /api/v1/{dashboard,crm,ai,wms,tms,procure,etax,market,autocare} (Business module endpoints) - เชื่อมกับคลัง: จุดส่ง
tms_delivery_stopถูกสร้างจาก checkout ร้านค้าส่ง/marketพร้อมใบงานคลัง และเมื่อส่งมอบสำเร็จ TMS ปิดใบงานคลังและตัดสต็อกคลังให้ ดู WMS หยิบ-แพ็ค-ส่ง และตัดสต็อกคลังจริง (AdvanceFulfillment), ขายถึงรับเงิน (Order-to-Cash)
ข้อจำกัดที่ควรรู้
- ตัวเลขเงินและน้ำหนักในแฮนด์เลอร์ใช้
float64ไม่ใช่ decimal (หลักการเงินดู ความถูกต้องของข้อมูล: เงิน ภาษี Transaction เดียว และ Rebuild (Data Integrity, big.Rat, ExecBatch)) - คำสั่ง SQL ประกอบด้วยการจัดรูปแบบข้อความ +
escapeSQL(ไม่ใช่ parameterized) การเขียนหลายคำสั่งรวมเป็น transaction เดียวด้วยExecBatch - ค่าตั้งต้นฝังในโค้ดหลายจุด (ข้อมูลรถ จุดส่ง ผู้รับ พิกัด) ใช้เติมเมื่อฟอร์มไม่ได้ส่งค่ามา ควรกรอกค่าจริงเสมอเมื่อใช้งานจริง
ที่มาในโค้ด
frontend/src/app/tms/page.tsx:5-16หัวหน้าเว็บ redirect ตาม session และวางWorkspaceRouteSyncfrontend/shared/layout/SystemPortalScreen.tsx:195-210การ์ด SYS-07;frontend/shared/layout/Header.tsx:120ปุ่มหัวระบบ;frontend/shared/layout/PersistentWorkspaceHost.tsx:559ติดตั้งจอTmsDashboardbackend/internal/adapter/inbound/http/router.go:286-294เส้นทาง/api/v1/tmsbackend/internal/adapter/inbound/http/tms/handler.go:97-114โครง KPI;:272-288Overview;:1344-1595buildOverview(นับกลุ่มรถ, งานซ่อมค้าง,OnTimeRatePct = 98.6)backend/internal/adapter/inbound/http/tms/handler.go:1597-1735DDL สี่ตารางและเงื่อนไข seed เฉพาะbcdemofrontend/tms/TmsDashboard.tsx:280-290ชนิดแท็บ;:353เรียก/api/tms/overview- ดูเพิ่ม: TMS เที่ยวรถ จุดส่งมอบ และ e-POD (UpdateDeliveryPod / CreateTripDispatch) · TMS ทะเบียนรถ งานซ่อมบำรุง PM/CM และเอกสารภาษี (ADD_VEHICLE / CREATE_MAINTENANCE / COMPLETE_MAINTENANCE) · ระบบคลังสินค้า WMS ภาพรวม (SYS-06 Smart WMS) · API โมดูลธุรกิจ /api/v1/{dashboard,crm,ai,wms,tms,procure,etax,market,autocare} (Business module endpoints) · ภาพรวม Backend Go ของ BC Ai Account (Backend overview) · โมเดลผู้เช่าหลายราย: Tenant, Provider, Main DB, Company (Multi-tenant model)