สมอง BC

คลังความรู้ / ระบบงานในชุด BC

#systems#monitormap#3d#command-center

3D Monitor TV (SYS-13)

MonitorMap คือจอ "ศูนย์บัญชาการ 3 มิติ" ของ BC Ai Account วาดแผนที่ประเทศไทยด้วย Three.js แล้วแสดงคลังสินค้า รถขนส่งที่วิ่งอยู่ ร้านลูกค้า/สาขา POS เหตุการณ์สด และการแจ้งเตือนสำหรับผู้บริหาร เหมาะกับการเปิดค้างบนจอทีวีหรือจอใหญ่ในห้องประชุม รายละเอียดหน้าจอ 3 มิติอยู่ที่ หน้าจอแผนที่ 3 มิติ: กล้อง แผง คีย์ลัด เสียง และแคชแผ่นแผนที่ (ThailandMonitorMapScreen) และตารางข้อมูลอยู่ที่ ตารางและตัวสร้างชุดข้อมูลของ 3D Monitor TV (monitormap_*)

ใครใช้ / เปิดอย่างไร

  • ผู้ใช้หลัก: เจ้าของ/ผู้บริหารที่อยากเห็นภาพรวมทั่วประเทศแบบเห็นภาพ และใช้เป็นจอโชว์ในห้องประชุมหรือหน้าร้าน
  • เปิดจากหน้ารวมระบบ (Portal) การ์ด SYS-13 "3D Monitor TV (แผนที่ธุรกรรม 3 มิติ)" ในกลุ่ม "④ 3D Command Center & ตรวจสอบ" ซึ่งลิงก์ไป /monitormap หรือจากแถบหัวระบบ "ระบบ 3D Monitor TV"
  • หน้า /monitormap เป็น Server Page: ไม่มี session เด้งไป /login, ยังไม่เลือกฐานข้อมูลเด้งไป /select-database ถ้าผ่านจะวาง WorkspaceRouteSync แล้ว PersistentWorkspaceHost โหลดจอ ThailandMonitorMapScreen แบบโหลดตามต้องการ (ค้างสถานะเมื่อสลับระบบ ดู พื้นที่ทำงานแบบแท็บ MDI และสิทธิ์จอ (TabWorkspace))
  • เมื่อเข้าทางโดเมนเดโม (isBcDemoHost) ด่าน proxy อนุญาตเฉพาะรายการเส้นทางที่กำหนด ซึ่งมี /monitormap อยู่ด้วย (อีก 2 ระบบในกลุ่มเดียวกันคือ /workmonitor และ /fraudwarning)

ภาพรวมการทำงาน

  1. จอเรียก Next.js GET /api/monitormap ทุก 20 วินาที (และครั้งแรกตอนเปิด)
  2. route นี้หาโทเคนของฝั่งหลังบ้าน: ถ้ามี session ใช้ของผู้ใช้ ถ้าไม่มีจะขอโทเคนฐานเดโมให้อัตโนมัติ (ดูหัวข้อข้อควรระวัง)
  3. ถ้าฐานเป็น bcdemo (หรือสั่ง ?reseed=1) จะเรียก Go /api/v1/crm/overview ก่อนเพื่อให้มีตาราง monitormap_* แล้วหว่านข้อมูลตัวอย่างกับสร้างตาราง KPI สรุปด้วยคำสั่งชุดเดียว (/query/execBatch)
  4. อ่านตาราง monitormap_* 6 ตาราง พร้อมดึงภาพรวม TMS, WMS, แดชบอร์ด และ POS มารวมในคำตอบเดียว (source เป็น postgresql_live ถ้ามีแถวคลัง ไม่เช่นนั้น resilient_seed)
  5. หน้าจอแปลงคำตอบเป็นชุดข้อมูลโลก 3 มิติด้วย buildMonitorWorldDataset (รายละเอียดที่ ตารางและตัวสร้างชุดข้อมูลของ 3D Monitor TV (monitormap_*))
  6. ผู้บริหารกด "สั่งการ" ที่การแจ้งเตือน: จอเปลี่ยนสถานะทันที แล้วส่ง POST /api/monitormap เพื่อบันทึกว่าแจ้งเตือนนั้นแก้ไขแล้ว (RESOLVE_ALERT, RESET_ALERTS, APPROVE_ALL_ALERTS)

ความสัมพันธ์กับระบบบัญชีและระบบอื่น

ข้อควรระวังและข้อจำกัด

  • ข้อมูลบนแผนที่ส่วนใหญ่เป็นข้อมูลตัวอย่าง: การหว่านข้อมูล (คลัง 12 แห่ง ลูกค้า/สาขา 24 จุด รถ 22 คัน เหตุการณ์สด 12 รายการ แจ้งเตือน 8 รายการ) ทำเฉพาะฐาน bcdemo หรือเมื่อสั่ง ?reseed=1 ฐานอื่นจะได้แผนที่ว่างจนกว่าจะมีคนเติมตารางเอง
  • ปุ่ม "สั่งการ" ไม่ได้สร้างเอกสารจริง: POST /api/monitormap มี 3 การกระทำ ทุกอันแค่แก้ alert_status ในตาราง monitormap_sme_alerts (เช่น ข้อความ "อนุมัติเปิด PO สั่งซื้อด่วน" ไม่ได้ไปสร้างใบสั่งซื้อ) ถ้าไม่มีโทเคนจะตอบ { ok: true, mode: "client_only" } และเปลี่ยนสถานะเฉพาะบนหน้าจอ
  • ปุ่ม "ปล่อยรถด่วน" เป็นการสาธิตบนจอ: บวกตัวเลขยอดขาย/เงินสดในหน้าจอชั่วคราวโดยไม่เรียก API หรือสร้างเอกสารจริง และตัวเลขหายเมื่อจอดึงข้อมูลรอบถัดไป ดู หน้าจอแผนที่ 3 มิติ: กล้อง แผง คีย์ลัด เสียง และแคชแผ่นแผนที่ (ThailandMonitorMapScreen)
  • ตัวเลขเงินในแผงผู้บริหารเป็นค่าคงที่ (ฐานเดโม) หรือค่าประมาณจากสูตร ไม่ใช่ผลทางบัญชี ดู ตารางและตัวสร้างชุดข้อมูลของ 3D Monitor TV (monitormap_*)

ที่มาในโค้ด