บทที่ 13
ชื่อคลังบอกได้แค่ว่ารถจอดอยู่ที่ไหน บอกไม่ได้ว่ารถคันนั้นบรรทุกอะไรได้ บทนี้คือวิธีบอกโปรแกรมว่าจุดนี้ต้องใช้รถแบบไหน ไม่ใช่แค่ออกจากคลังไหน
กดแล้วได้คลัง จุดส่ง และกองรถชุดเดียวกับในภาพทั้งบท จะกดตามไปทีละขั้น หรืออ่านจบก่อนแล้วค่อยกดก็ได้
เดือนนี้เราเริ่มรับงานไอศกรีมกับของแช่แข็ง คลังบางนามีรถห้องเย็นคันเดียว ที่เหลือเป็นรถแห้งทั้งนั้น
วันจันทร์แผนออกมาดูดี รถ 2 คัน ระยะทางไม่เยอะ มีคนไปส่งทุกจุด แต่พอจะปล่อยรถจริงก็ไปต่อไม่ได้ ไอศกรีมสองจุดไปอยู่บนรถแห้ง
ก่อนหน้านี้เราบอกโปรแกรมได้แค่ว่า “จุดนี้ส่งจากคลังบางนา” บอกได้แค่นี้ยังไม่พอ เพราะรถที่จอดคลังเดียวกันไม่ได้ทำงานแทนกันได้ทุกคัน พอบอกแค่ชื่อคลัง ก็เท่ากับเปิดให้รถคันไหนในคลังนั้นมารับงานก็ได้ รถแห้งก็มาได้
ตั้งประเภทรถในคลังก่อน เปิด ⚙ รายละเอียด ของคลัง กด + เพิ่มประเภทรถ แล้วตั้งชื่อตามที่เรียกกันจริงหน้างาน เช่น ห้องเย็น, 4 ล้อ, 6 ล้อ
ชื่อนี้สำคัญกว่าที่คิด เพราะจุดส่งจะอ้างถึงชื่อนี้ และคนขับก็เห็นชื่อนี้บนหน้าจอ
ผูกจุดส่งกับประเภทรถ เปิด ⚙ รายละเอียด ของจุดส่ง หาแถว รถที่ส่งจุดนี้ได้ แล้วติ๊กแค่ ห้องเย็น
จุดส่งไม่ได้ผูกกับคลังแล้ว แต่ผูกกับประเภทรถของคลังนั้น มีสามแบบ:
ติ๊กครบทุกประเภทในคลัง เท่ากับติ๊กคลังทั้งคลังพอดี ไม่ต้องกลัวว่าจะกลายเป็นการจำกัด เพราะบอกว่า “รถทุกแบบที่คลังนี้มี” ก็คือไม่ได้จำกัดอะไรเลย
กดช่องคลังตอนที่มันขึ้นขีด แล้วได้อะไร
ได้ทุกประเภทในคลังนั้น ไม่ได้ล้างทิ้ง เพราะคนที่กดตอนนั้นส่วนใหญ่หมายถึง “รถคันไหนของคลังนี้ก็ได้” ถ้าอยากเอาคลังนี้ออกทั้งคลัง กดอีกครั้ง
ดูได้สามที่ ไม่ต้องเปิดอะไรเพิ่ม:
ที่แถวจุดส่ง ชื่อประเภทรถจะต่อท้ายน้ำหนักกับปริมาตร
ที่บรรทัดสรุป หลังกด วางแผนเส้นทาง มีคนไปส่งทุกจุด
ที่การ์ดรถ มีป้ายกำกับไว้ว่าคันนั้นเป็นรถแบบไหน
ที่หน้าจอคนขับ ลิงก์ที่ส่งให้คนขับมีบรรทัด ประเภทรถ อยู่ด้านบน คนขับรู้ตั้งแต่ก่อนออกรถว่าวันนี้ต้องเอาคันไหนไป
ยิ่งจำกัด ตัวเลือกยิ่งน้อย ถ้าวันนั้นของแช่แข็งมากเกินกว่าที่รถห้องเย็นจะรับได้ โปรแกรมไม่ยัดขึ้นรถแห้งให้ มันจะวางเท่าที่วางได้ แล้วบอกตรง ๆ ว่าเหลือจุดที่จัดไม่ได้
แบบนี้ถูกแล้ว โทรเลื่อนลูกค้าเจ้าหนึ่งตั้งแต่เช้า ยังดีกว่าแผนที่ดูสวยทั้งวัน แล้วไปรู้ตอนรถจอดหน้าร้านว่าของขึ้นผิดคัน
จุดส่งอ้างประเภทรถด้วยชื่อ พอไปแก้ชื่อในส่วนรถ ก็ไม่ได้แก้แค่ป้าย สองเรื่องนี้โปรแกรมจัดการให้แล้ว แต่ควรรู้ว่ามันทำอะไร:
เปลี่ยนชื่อ
จุดส่งที่ระบุชื่อเดิมไว้จะตามไปเอง เปลี่ยน ห้องเย็น เป็น รถเย็น แถวจุดส่งขึ้นชื่อใหม่ทันที ไม่ต้องไปแก้รายจุด
ลบประเภทรถ
จะถามก่อน พร้อมบอกว่ากระทบกี่จุด — “ลบประเภทรถ ห้องเย็น ไหม / มีจุดส่ง 1 จุดที่ระบุประเภทรถนี้ หลังลบจะใช้รถทุกประเภทในคลังได้” จุดที่กระทบจะกลับไปเป็น “รถคันไหนของคลังนี้ก็ได้” คือปล่อยให้กว้างขึ้น ไม่ได้ตัดจุดส่งทิ้ง
ในเพย์โหลด จุดส่งใช้ฟิลด์ candidate_van_types เขียนเป็นคู่ คลัง + ชื่อประเภทรถ:
{
"order_id": "A-101",
"location": { "lat": 13.706, "lng": 100.601 },
"weight_kg": 40,
"volume_cm3": 100000,
"candidate_van_types": [
{ "depot_id": "บางนา", "type_name": "ห้องเย็น" }
]
}
ฟิลด์เดิม depot_id กับ candidate_depot_ids ยังใช้ได้เหมือนเดิม
อ่านว่า “รถประเภทไหนก็ได้ในคลังนั้น” เพย์โหลดเก่าจึงได้แผนเหมือนเดิมทุกอย่าง
ถ้าพิมพ์ชื่อประเภทรถผิด ระบบไม่ปล่อยผ่านให้ไปโผล่เป็นจุด “จัดไม่ได้” เฉย ๆ แต่จะปฏิเสธตอนนำเข้า บอกบรรทัดที่ผิด และบอกว่าคลังนั้นมีประเภทอะไรให้เลือก:
line 46 — Job A-101 references van type 'ห้องเย็น',
which depot บางนา does not have (it has: ['4 ล้อ', '6 ล้อ'])
สามกรณีนี้กดเปิดในโปรแกรมได้เลย ไม่ต้องคัดลอกอะไร:
อีกไฟล์หนึ่งคือ ch13-no-chiller.json คลังไม่มีห้องเย็น แต่จุดส่งยังระบุไว้ ไฟล์นี้ตั้งใจให้ระบบปฏิเสธ ต้องเอาไปวางในแท็บ JSON เองเพื่อดูข้อความที่ขึ้น
สามอย่างที่ควรลองด้วยมือ: