#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)
ภาพรวมการทำงาน
- จอเรียก Next.js
GET /api/monitormapทุก 20 วินาที (และครั้งแรกตอนเปิด) - route นี้หาโทเคนของฝั่งหลังบ้าน: ถ้ามี session ใช้ของผู้ใช้ ถ้าไม่มีจะขอโทเคนฐานเดโมให้อัตโนมัติ (ดูหัวข้อข้อควรระวัง)
- ถ้าฐานเป็น
bcdemo(หรือสั่ง?reseed=1) จะเรียก Go/api/v1/crm/overviewก่อนเพื่อให้มีตารางmonitormap_*แล้วหว่านข้อมูลตัวอย่างกับสร้างตาราง KPI สรุปด้วยคำสั่งชุดเดียว (/query/execBatch) - อ่านตาราง
monitormap_*6 ตาราง พร้อมดึงภาพรวม TMS, WMS, แดชบอร์ด และ POS มารวมในคำตอบเดียว (sourceเป็นpostgresql_liveถ้ามีแถวคลัง ไม่เช่นนั้นresilient_seed) - หน้าจอแปลงคำตอบเป็นชุดข้อมูลโลก 3 มิติด้วย
buildMonitorWorldDataset(รายละเอียดที่ ตารางและตัวสร้างชุดข้อมูลของ 3D Monitor TV (monitormap_*)) - ผู้บริหารกด "สั่งการ" ที่การแจ้งเตือน: จอเปลี่ยนสถานะทันที แล้วส่ง
POST /api/monitormapเพื่อบันทึกว่าแจ้งเตือนนั้นแก้ไขแล้ว (RESOLVE_ALERT,RESET_ALERTS,APPROVE_ALL_ALERTS)
ความสัมพันธ์กับระบบบัญชีและระบบอื่น
- ชั้น Go มีเพียงตัวพร็อกซีและแคชแผ่นแผนที่
GET/POST /api/v1/monitormap/tile(GET ไม่ต้องล็อกอิน, POST เติมแคชต้องล็อกอิน) ดูรายละเอียดเต็มที่ API ตรวจสุขภาพ แผนที่ติดตาม และเส้นทางเฉพาะชั้น Next (Health, Monitormap, Next-only routes) (ไม่เขียนซ้ำที่นี่) ส่วน/api/monitormapเป็นเส้นทางที่มีเฉพาะชั้น Next - ตาราง
monitormap_*เป็น "แคชที่สร้างจากข้อมูลดิบ" ไม่ใช่ข้อมูลบัญชีหลัก นโยบายเขียนของระบบจึงยกเว้นให้เขียนผ่านเกตเวย์คิวรีได้ด้วยคำนำหน้าmonitormap_ดู ADR-0011 ล็อก SQL เขียนจาก browser: ตารางเงิน/สต๊อก/GL ผ่าน /api/process เท่านั้น และ นโยบายล็อกการเขียนผ่าน Query Gateway (Query write policy / lockdown) - ข้อมูลภาพรวมของ ระบบขนส่ง TMS ภาพรวม (SYS-07 Smart TMS), ระบบคลังสินค้า WMS ภาพรวม (SYS-06 Smart WMS), แดชบอร์ด BI ผู้บริหาร ภาพรวม (SYS-09 Executive Dashboard) และ POS ถูกดึงมาพ่วงในคำตอบ แต่ในโค้ดปัจจุบันตัวสร้างชุดข้อมูลของหน้าจอใช้เพียงเพื่อบอกว่า "เชื่อมต่อหลังบ้านได้" ตัวเลขที่เห็นบนแผนที่มาจากตาราง
monitormap_*(ดู ตารางและตัวสร้างชุดข้อมูลของ 3D Monitor TV (monitormap_*))
ข้อควรระวังและข้อจำกัด
- ข้อมูลบนแผนที่ส่วนใหญ่เป็นข้อมูลตัวอย่าง: การหว่านข้อมูล (คลัง 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_*)
ที่มาในโค้ด
frontend/shared/layout/SystemPortalScreen.tsx:77-82กลุ่มcommand3d;:304-320การ์ด SYS-13;frontend/shared/layout/Header.tsx:74-80,128ปุ่มหัวระบบfrontend/shared/layout/PersistentWorkspaceHost.tsx:88-92,167-168โหลดจอและจับคู่เส้นทาง;frontend/src/app/monitormap/page.tsx:1-20redirect ตาม session;frontend/src/proxy.ts:10-25รายการเส้นทางที่อนุญาตบนโดเมนเดโมfrontend/src/app/api/monitormap/route.ts:11-26หาโทเคน;:80-98หว่านข้อมูลเฉพาะbcdemo;:321-417GET;:419-468POSTbackend/internal/adapter/inbound/http/router.go:351-358เส้นทาง/api/v1/monitormap;backend/internal/domain/query/write_policy_legacy.go:41-42คำนำหน้าmonitormap_เขียนได้- ดูเพิ่ม: หน้าจอแผนที่ 3 มิติ: กล้อง แผง คีย์ลัด เสียง และแคชแผ่นแผนที่ (ThailandMonitorMapScreen) · ตารางและตัวสร้างชุดข้อมูลของ 3D Monitor TV (monitormap_*) · API ตรวจสุขภาพ แผนที่ติดตาม และเส้นทางเฉพาะชั้น Next (Health, Monitormap, Next-only routes) · ข้อมูลภูมิศาสตร์ไทย 77 จังหวัด แผนที่ปักหมุด และโลโก้ธนาคาร 40 แห่ง (Thai Geo, Map Picker, Bank Logos) · เส้นทาง API ฝั่ง Next.js ที่ส่งต่อไป Go backend (API proxy routes)