หน้าแรก> กรณีการส่งออก> สถาปัตยกรรมอ้างอิงระบบการดำเนินงานด้านโลจิสติกส์

สถาปัตยกรรมอ้างอิงระบบการดำเนินงานด้านโลจิสติกส์

ประเภทข้อมูลอ้างอิงเอกสารอ้างอิงแอปพลิเคชัน
เอกสารสำหรับตรวจสอบVue · Go · MySQL · Redis · แอปพนักงานขับรถ Android · API แผนที่
สถาปัตยกรรมอ้างอิงระบบการดำเนินงานด้านโลจิสติกส์

เอกสารอ้างอิงแอปพลิเคชัน นี่คือสถาปัตยกรรมเชิงตัวอย่างและรายการตรวจสอบขอบเขตงาน ไม่ใช่โครงการลูกค้าที่ผ่านการตรวจสอบหรือการใช้งานจริงที่มีการวัดผล เทคโนโลยี ขอบเขตการผสานระบบ และรายการส่งมอบจะตกลงกันตามบรีฟจริง

สถานการณ์และข้อจำกัด

ผู้ให้บริการโลจิสติกส์รายหนึ่งกำลังเปลี่ยนจากการจัดส่งและการเรียกเก็บเงินด้วยสเปรดชีตและการทำงานด้วยตนเอง ข้อจำกัดสองประการเป็นตัวกำหนดการออกแบบ: พนักงานขับรถทำงานในพื้นที่ที่ไม่มีสัญญาณที่เชื่อถือได้ และรายการในใบแจ้งหนี้ทุกบรรทัดต้องสามารถชี้แจงได้เมื่อลูกค้าโต้แย้ง สิ่งนี้ผลักดันให้ระบบใช้บันทึกเหตุการณ์แบบเพิ่มอย่างเดียวเป็นแหล่งข้อมูลหลัก แทนคอลัมน์สถานะที่ใครก็สามารถเขียนทับได้

สถาปัตยกรรม

เลเยอร์และความรับผิดชอบ

เลเยอร์เทคโนโลยีรับผิดชอบเรื่องใด
เว็บปฏิบัติการVue 3 + Element Plusรับคำสั่งซื้อ กระดานจัดส่ง การจัดการข้อยกเว้น และการตรวจสอบการเรียกเก็บเงิน
แอปพนักงานขับรถAndroid (Kotlin) รองรับการทำงานออฟไลน์รายการงาน การสแกน รูปถ่าย ลายเซ็น และการบันทึกสถานะ ทุกอย่างจะเขียนลงเครื่องก่อนและอัปโหลดเมื่อมีการเชื่อมต่อ
พอร์ทัลลูกค้าโปรแกรมมินิ WeChatติดตามด้วยตนเอง วัดการเปลี่ยนแปลงของปริมาณคำถามหรือคำขอข้อมูล แทนการสมมติว่าปริมาณจะลดลง
APIGo + Ginการตรวจสอบความถูกต้อง กฎการจัดส่ง การรับเหตุการณ์ และการคำนวณค่าบริการ
พื้นที่จัดเก็บMySQLรายการฝากส่ง เหตุการณ์ และการชำระบัญชี ตารางเหตุการณ์เป็นแบบเพิ่มอย่างเดียวและเป็นแหล่งข้อมูลหลักของระบบ
แคช / คิวRedisการแคชกระดานจัดส่ง การขจัดข้อมูลอัปโหลดซ้ำ และงานเบื้องหลังสำหรับการเรียกเก็บเงินและการแจ้งเตือน
ไฟล์พื้นที่จัดเก็บออบเจ็กต์รูปถ่ายและลายเซ็นเพื่อเป็นหลักฐานการส่งมอบ โดยอ้างอิงด้วยคีย์แทนการจัดเก็บไว้ในฐานข้อมูล

แบบจำลองข้อมูล

ตารางด้านล่างประกอบด้วยกฎที่ทุกส่วนอื่นต้องพึ่งพา หากกำหนดสิ่งเหล่านี้ผิด สิ่งที่ได้จะเปลี่ยนจากเดโมที่ใช้งานได้เป็นระบบที่ไม่สามารถขยายต่อได้

เอนทิตีหลัก

เอนทิตีฟิลด์หลัก ความสัมพันธ์ และกฎ
consignmentระเบียนการจัดส่ง: คู่สัญญา ที่อยู่ ประเภทบริการ ช่วงเวลา น้ำหนักและปริมาตรที่แจ้งไว้ และเกณฑ์การกำหนดราคาที่ตกลงกันเมื่อรับงาน
shipment_eventเป็นแบบเพิ่มอย่างเดียว มีการประทับเวลา พร้อมผู้ปฏิบัติงาน สถานที่ ประเภทเหตุการณ์ และข้อมูลเหตุการณ์ สถานะปัจจุบันได้มาจากเหตุการณ์ล่าสุด ไม่ได้จัดเก็บแยกต่างหาก ซึ่งทำให้ลำดับเหตุการณ์สามารถชี้แจงได้ในการโต้แย้ง
task / assignmentการมอบหมายพนักงานขับรถและยานพาหนะพร้อมลำดับจุดแวะ รวมถึงประวัติการมอบหมายใหม่เมื่อมีการส่งต่องาน
pod_assetหลักฐานการส่งมอบ: คีย์รูปถ่ายและลายเซ็น เวลาที่บันทึก และตำแหน่งของอุปกรณ์ ซึ่งเก็บไว้เป็นหลักฐานประกอบการเรียกเก็บเงิน
charge / invoiceรายการค่าบริการที่สร้างจากกฎบนเหตุการณ์ที่บันทึกไว้ โดยแต่ละรายการจะมีรหัสเหตุการณ์ที่ใช้เป็นเหตุผลรองรับ รายการในใบแจ้งหนี้ที่ไม่มีเหตุการณ์ที่ตรวจสอบย้อนกลับได้จะถูกปฏิเสธตามการออกแบบ
rate_cardกฎการกำหนดราคาเฉพาะลูกค้าตามน้ำหนัก ปริมาตร ระยะทาง เวลารอ และค่าธรรมเนียมเพิ่มเติม โดยมีการกำหนดเวอร์ชันเพื่อให้ใบแจ้งหนี้ย้อนหลังยังคงสร้างยอดเดิมได้

ส่วนติดต่อหลัก

ปลายทางที่รองรับกฎทางธุรกิจ

ปลายทางวัตถุประสงค์และข้อสังเกตด้านการทำงานพร้อมกัน
POST /api/v1/consignmentsรับคำสั่งซื้อพร้อมการระบุพิกัดที่อยู่และการเลือกใช้เรตราคาในเวลาสร้างรายการ เพื่อให้เกณฑ์การกำหนดราคาถูกกำหนดไว้ก่อนเริ่มงาน
POST /api/v1/events/batchอัปโหลดเหตุการณ์แบบกลุ่มจากแอปพนักงานขับรถหลังขาดการเชื่อมต่อ ขจัดข้อมูลซ้ำด้วย UUID เหตุการณ์จากไคลเอนต์ และจัดเก็บเวลาที่บันทึกแยกจากเวลาที่รับข้อมูล เพื่อให้ลำดับเหตุการณ์ยังคงตรงตามความเป็นจริง
POST /api/v1/tasks/{id}/podอัปโหลดลายเซ็นและรูปถ่ายพร้อมเวลาที่บันทึก โดยส่งคืนคีย์พื้นที่จัดเก็บที่เชื่อมโยงกับรายการฝากส่ง
POST /api/v1/billing/runสร้างรายการค่าบริการจากเหตุการณ์สำหรับช่วงเวลาหนึ่ง ทำงานแบบไอดีมโพเทนต์ต่อ (ลูกค้า, ช่วงเวลา) เพื่อให้การเรียกใช้งานซ้ำแก้ไขผลลัพธ์แทนการสร้างรายการซ้ำ
GET /api/v1/track/{no}การติดตามสาธารณะ โดยมีการแคชและเปิดเผยเฉพาะส่วนของเหตุการณ์ที่ลูกค้ามองเห็น

การตัดสินใจด้านเทคนิค

  • ใช้เหตุการณ์เป็นแหล่งข้อมูลหลัก และใช้สถานะเป็นค่าที่คำนวณได้ คอลัมน์สถานะที่แก้ไขได้จะสูญเสียประวัติที่จำเป็นต่อการจัดการข้อโต้แย้ง การคำนวณสถานะทำให้ต้องเชื่อมข้อมูลเพิ่ม แต่ได้บันทึกตรวจสอบที่ครบถ้วนและสามารถชี้แจงได้
  • จัดเก็บเวลาที่บันทึกและเวลาที่รับข้อมูลแยกกัน การสแกนของพนักงานขับรถเวลา 14:02 ที่อัปโหลดเวลา 17:30 ต้องแสดงเป็น 14:02 พร้อมระบุความล่าช้าในการอัปโหลด มิฉะนั้นทุกพื้นที่ออฟไลน์จะสร้างลำดับเวลาที่ไม่ถูกต้อง
  • UUID เหตุการณ์ที่สร้างโดยไคลเอนต์ การอัปโหลดซ้ำเป็นเรื่องปกติเมื่อการเชื่อมต่อไม่ดี ดังนั้นการขจัดข้อมูลซ้ำต้องใช้ตัวระบุที่ไคลเอนต์เป็นผู้ควบคุม
  • กำหนดเวอร์ชันให้เรตราคาแทนการแก้ไข การเปลี่ยนราคาต้องไม่เขียนทับใบแจ้งหนี้ของเดือนที่แล้วโดยไม่แจ้งให้ทราบ ดังนั้นเวอร์ชันเก่าจะยังคงอยู่ และค่าบริการย้อนหลังยังคงชี้ไปยังเวอร์ชันดังกล่าว
  • สร้างการเรียกเก็บเงินแต่ไม่ออกใบแจ้งหนี้โดยอัตโนมัติ กฎครอบคลุมกรณีที่คำนวณได้ ส่วนสิ่งที่ต้องใช้ดุลยพินิจของมนุษย์จะเข้าสู่คิวตรวจสอบแทนการบังคับให้เป็นระบบอัตโนมัติ

เป้าหมายการออกแบบเชิงสมมติ

ตัวเลขด้านล่างเป็นตัวอย่างสมมติสำหรับการวางแผนความจุ ไม่ใช่ผลลัพธ์ของลูกค้าที่วัดได้ คำแนะนำด้านขนาดระบบที่ผ่านการยืนยันแล้ว หรือ SLA กำหนดเป้าหมายการยอมรับเฉพาะโครงการหลังจากระบุภาระงาน อุปกรณ์ ข้อมูล ฮาร์ดแวร์ และการพึ่งพาบุคคลที่สามแล้ว และตรวจสอบผ่านโครงการนำร่องและการทดสอบโหลดก่อนยืนยันเป้าหมายสำหรับระบบจริง

เป้าหมายด้านความจุและประสิทธิภาพ

เป้าหมายค่าและสมมติฐาน
การรับเหตุการณ์อัปโหลดเป็นชุดได้สูงสุดไม่กี่ร้อยเหตุการณ์ต่อครั้ง ขจัดข้อมูลซ้ำ และกำหนดขนาดให้รองรับพนักงานขับรถที่กลับมาหลังออฟไลน์หลายชั่วโมง
กระดานจัดส่งแสดงชุดงานที่กำลังดำเนินการภายใน 1 วินาที โดยใช้การกรองและการแบ่งหน้าในฝั่งเซิร์ฟเวอร์แทนการโหลดทุกอย่างเข้าสู่เบราว์เซอร์
การประมวลผลการเรียกเก็บเงินประมวลผลเหตุการณ์หนึ่งเดือนของลูกค้าหนึ่งรายเป็นงานเบื้องหลังพร้อมรายงานความคืบหน้า ระยะเวลาทำงานจะเพิ่มตามปริมาณเหตุการณ์และวัดเทียบกับข้อมูลจริงของคุณระหว่างการยอมรับระบบ
การอัปโหลดรูปถ่ายบีบอัดและจัดคิวไว้ในเครื่องก่อนอัปโหลด ให้ลองใหม่เมื่อเกิดความล้มเหลว และตรวจสอบการเก็บรักษา การรับทราบ และการกู้คืนบนอุปกรณ์จริง

สิ่งที่รวมอยู่ในการส่งมอบ

  • ซอร์สโค้ดเว็บปฏิบัติการ ซอร์สโค้ดแบ็กเอนด์ Go ซอร์สโค้ดแอปพนักงานขับรถ Android และซอร์สโค้ดโปรแกรมมินิ
  • สคีมาฐานข้อมูลพร้อมเอกสารตารางเหตุการณ์และการชำระบัญชี รวมถึงประวัติการไมเกรต
  • เอกสาร API รวมถึงสัญญาการอัปโหลดออฟไลน์และการขจัดข้อมูลซ้ำ
  • บันทึกการนำระบบไปใช้งาน การกำหนดค่าพื้นที่จัดเก็บออบเจ็กต์ ขั้นตอนการสำรองข้อมูลและการกู้คืน
  • แผนย้ายข้อมูลจากสเปรดชีตที่มีอยู่ พร้อมรายงานการกระทบยอดหลังนำเข้า

การวางแผนสำหรับธุรกิจของคุณ

โมดูลข้างต้นเป็นจุดเริ่มต้น ไม่ใช่แพ็กเกจตายตัว โดยปกติเราจะจำกัดรุ่นแรกให้เหลือเวิร์กโฟลว์หลักหนึ่งรายการและเวิร์กโฟลว์ผู้ดูแลระบบหนึ่งรายการ จากนั้นจึงขยายเมื่อการใช้งานจริงแสดงให้เห็นว่าภาระงานและกรณีขอบเขตอยู่ที่ใด ส่งบรีฟที่กำหนดขอบเขตแล้ว และเราจะนำไปเทียบกับสถาปัตยกรรมนี้ พร้อมแจ้งว่าส่วนใดที่คุณยังไม่จำเป็นต้องใช้

รูปภาพการใช้งาน

ระบบการดำเนินงานสำหรับธุรกิจขนาดเล็กที่มาแทนสเปรดชีต

ขอประเมินราคาโครงการ

บอกเราเกี่ยวกับเป้าหมายของผลิตภัณฑ์ เวิร์กโฟลว์ปัจจุบัน แพลตฟอร์มเป้าหมาย ข้อจำกัด และกรอบเวลาการตัดสินใจ เราจะตรวจสอบขอบเขตงานและแนะนำขั้นตอนถัดไปที่เหมาะสม

เพิ่มความต้องการของโครงการ (ไม่บังคับ — ช่วยประเมินขอบเขตและค่าใช้จ่าย)
เราใช้ข้อมูลนี้เพื่อพิจารณาและตอบกลับคำขอโครงการของคุณเท่านั้น อ่านนโยบายความเป็นส่วนตัว และกรุณาอย่าส่งรหัสผ่านหรือคีย์ API ที่เป็นความลับมาในแบบฟอร์ม

Demo Solutions