บทที่ 15
ไม่มีใครอยากพิมพ์จุดส่งสี่สิบจุดใหม่ทุกเช้า ถ้าวันนี้อยู่ในชีตอยู่แล้ว เอาชีตนั้นเข้ามาเลย
บทนี้ไม่มีวันตัวอย่างให้กด เพราะสิ่งที่ต้องลองคือไฟล์ของคุณเอง
ประโยคที่ควรอ่านในกล่องนี้คือ ชื่อชีตไม่สำคัญ ระบบดูจากหัวคอลัมน์ เปลี่ยนชื่อชีตเป็น “จุดส่ง” “คลัง” “รถ” ได้ตามสบาย หรือเพิ่มชีตของตัวเองอย่างชีตสรุปให้เจ้านายดูก็ได้ ระบบจะข้ามชีตที่ไม่รู้จัก
สี่ชีตที่ระบบมองหา ดูจากคอลัมน์ที่มีในหัวตาราง
order_id คือชีตจุดส่งdepot_name คือชีตคลังvan_type คือชีตรถdelivery_date กับ plan_name คือชีตของแผน
สรุปนี้เป็นด่านตรวจที่ควรอ่านทุกครั้ง ไม่ใช่เพราะจะผิด แต่เพราะเลขที่ผิดตรงนี้คือเลขที่จะผิดไปทั้งวัน
active ไม่ได้บอกว่าใช้
ของที่นำเข้ามาไม่ได้ล็อก แก้ในตารางได้ตามปกติ ไฟล์คือจุดเริ่ม ไม่ใช่สัญญา
CSV เป็นไฟล์แบนไฟล์เดียว ไม่มีชีตแยก คลังจึงต้องอยู่บนแถวของจุดส่งเอง ห้าคอลัมน์นี้ขาดไม่ได้
order_id รหัสของจุดส่งlatitude กับ longitude พิกัดของจุดส่งtotal_weight_kg กับ total_volume_cm3 ของที่ต้องส่ง
บวกอีกคู่หนึ่งคือพิกัดของคลังที่จุดนั้นออก
origin_1_lat กับ origin_1_long
ถ้าจุดนั้นออกได้หลายคลัง ใส่ origin_2_* และ origin_3_* ต่อได้
เป็นวิธีทำเรื่องบทที่ 11 จากไฟล์
ที่ใส่ก็ได้ไม่ใส่ก็ได้ และมีประโยชน์จริง
customer_name ชื่อร้าน ไปโผล่ในลิงก์ของคนขับopening_time กับ closing_time ช่วงเวลารับของ คือบทที่ 4service_time_min เวลาที่ใช้ที่จุดนั้น ถ้าไม่เท่ากันทุกจุดdelivery_date วันที่ส่ง ใช้แยกไฟล์เดียวที่มีหลายวัน
ลองอัปโหลดไฟล์ที่หัวคอลัมน์เป็น รหัส,lat,lng,kg
ซึ่งคนทำจริงพลาดกันแบบนี้เกือบทุกคนในครั้งแรก
ประโยคสุดท้ายคือคำตอบของปัญหานี้เกือบทุกครั้ง
ชื่อคอลัมน์ต้องตรงกันทุกตัวอักษร
Order_ID ใช้ได้ เพราะระบบตัดช่องว่างและไม่แยกตัวใหญ่ตัวเล็ก
แต่ order ใช้ไม่ได้ และ รหัสออเดอร์ ก็ใช้ไม่ได้
หัวตารางเป็นภาษาไทยได้ ถ้ามีบรรทัดคอลัมน์จริงอยู่ด้วย
ชีตที่คนกรอกจริงมักมีสองบรรทัดหัว บรรทัดบนเป็นภาษาคนอย่าง “รหัสออเดอร์” “น้ำหนัก (กก.)” และบรรทัดล่างเป็นชื่อคอลัมน์จริง ระบบรองรับแบบนี้ จะหาบรรทัดที่เป็นชื่อคอลัมน์จริงแล้วทิ้งบรรทัดบนไป แม่แบบที่ดาวน์โหลดไปก็ทำแบบนี้ให้แล้ว
พิกัดที่หลุดออกนอกประเทศจะถูกปฏิเสธ
ถ้าพิกัดอยู่นอกกรอบประเทศไทย ระบบจะไม่รับแถวนั้น เพราะ longitude ที่พิมพ์ผิดเป็น 140 คือญี่ปุ่น และถ้ารับไว้ จะได้แผนที่มีเส้นทางหลายพันกิโลโดยไม่มีใครทันสังเกต สลับ lat กับ long กันเป็นความผิดที่เจอบ่อยที่สุด และด่านนี้จับได้
ทำไฟล์ต้นแบบของตัวเองไว้หนึ่งไฟล์ คลังกับรถกรอกครั้งเดียว เพราะสองอย่างนี้ไม่เปลี่ยนทุกวัน
ทุกเช้าเปลี่ยนแค่ชีตจุดส่ง วางทับจากระบบขาย แล้วอัปโหลด
อ่านบรรทัดสรุปก่อนกดวางแผน จำนวนจุดกับน้ำหนักรวม สองตัวนี้พอ
ถ้าลูกค้าซ้ำกันทุกวันเป็นส่วนใหญ่ มีทางที่ดีกว่าไฟล์ คือเก็บลูกค้าไว้ในสมุดลูกค้าของทีม แล้วเลือกจากที่นั่น อยู่ในบทที่ 16
ถ้าเขียนโค้ดต่อระบบได้ ไม่ต้องผ่านไฟล์เลย ยิงเข้า
POST /api/solve ตรง ๆ ด้วยรูปที่ทุกบทก่อนหน้าใช้
ตัวอ่านไฟล์มีไว้สำหรับคนที่ไม่มีทางเชื่อมระบบ ไม่ใช่ทางหลัก
ที่ยังมีประโยชน์จากฝั่งไฟล์คือแม่แบบ เพราะบอกได้ว่าตัวอ่านรับคอลัมน์อะไร และไฟล์นั้นสร้างจากโค้ดชุดเดียวกับที่ใช้อ่าน จึงไม่มีทางที่แม่แบบจะบอกคอลัมน์ที่ตัวอ่านไม่รู้จัก
คอลัมน์ปริมาตรรับสองหน่วย total_volume_cm3 เป็น cm³
และมีคอลัมน์ลิตรให้ใช้ด้วยในชีตของสมุดงาน
หน่วยที่ระบบใช้ข้างในเป็น cm³ เสมอ ตรงกับ volume_cm3
ในคำขอ JSON