สมอง SML

คลังความรู้ / Process Engine

#process#overview#hub#backend#router#handler

ภาพรวมกลุ่ม process ของ Backend

โฟลเดอร์ backend/internal/application/process/ คือชั้น Service ของงานที่ไม่ใช่รายการบัญชีหลัก ได้แก่ รายงาน, เอกสารและตารางสินค้า, ข้อมูลหลัก, ราคา/บาร์โค้ด, เครื่องมือสต็อกและระบบ, workflow, ผู้ช่วย AI และ POS โน้ตในโฟลเดอร์นี้ครอบคลุมเฉพาะกลุ่มที่ไม่ใช่บัญชี (กลุ่ม trans, gl, stock, cost, ap, pay, cheque, fx, fa, period ฯลฯ อยู่ในโน้ตของส่วนบัญชี ดู ภาพรวมระบบบัญชี SML AI Account (Accounting Overview)) ภาพรวมระบบ backend ทั้งหมดดู ภาพรวม Backend Go ของ SML Ai Account (Backend overview)

ทำงานอย่างไร

เส้นทางคำขอ: request -> dispatch -> handler -> service

  1. ในโค้ดไม่มีไฟล์ process.go เป็นตัวกระจายกลาง การกระจายคำขอแบ่งเป็น 2 ชั้นคือ route group ใน router.go และ *_handler.go ใน adapter/inbound/http/process/ (รายละเอียด ตัวกระจายคำขอของ process (Process dispatcher))
  2. router.go ลงทะเบียน /process (:127-167) และ /api/v1/process (:168-209) เป็นชุดเดียวกัน ผ่าน middleware Auth (JWT) แล้ว RequireRight(ex.Rights, processhttp.RequiredRight) ตรวจสิทธิ์เมนูก่อนถึง handler (ดู การตรวจสิทธิ์เมนูของ route process (Process route rights))
  3. handler ถอด JSON เข้า struct ใส่ ProviderCode / DatabaseName / ผู้ใช้จาก token (ฟิลด์เหล่านี้ json:"-" ไม่รับจาก body) แล้วเรียก Service
  4. Service ขอ connection pool ของบริษัทผ่าน companyPool(ctx, providerCode, databaseName) (ระบบหลายบริษัท) แล้วทำงานกับฐานข้อมูลของบริษัทนั้น
  5. กลุ่ม POS แยกอีกชุดที่ /api/v1/pos/* (router.go:328-348) ใช้การยืนยันตัวตนแบบ token ของเครื่อง POS หรือ token ผู้ใช้ (ดู POS ซิงก์ข้อมูลเครื่องแคชเชียร์ ผูกเครื่อง/ดึงส่วนต่าง/กู้คืน/รูปภาพ (POS Device Sync))

แผนที่โน้ตทั้งหมดในหมวดนี้

ตัวกระจายและสิทธิ์

รายงาน

เอกสารและตารางสินค้า

ข้อมูลหลัก ราคา บาร์โค้ด

เครื่องมือสต็อกและระบบ

POS

ลำดับอ่านที่แนะนำ

ขอบเขตที่ยังไม่ครอบคลุม (ยังไม่ยืนยัน)

  • ไฟล์ uat* มีเฉพาะไฟล์ทดสอบ (uat_s1_fixes_test.go) จึงไม่มีโน้ต
  • ตัวฟังก์ชัน report_menu_* และ service.go อ่านเฉพาะส่วนที่เกี่ยวกับโน้ตแต่ละเรื่อง ไม่ได้อ่านครบทุกบรรทัด
  • ไฟล์ docs.go เขียนเฉพาะกลไก ส่วนรายละเอียดบัญชีของ ap_ar_trans / gl_journal ดู ภาพรวมระบบบัญชี SML AI Account (Accounting Overview)

ที่มาในโค้ด

  • backend/internal/adapter/inbound/http/router.go:40-57 - ExtraHandlers ของ process
  • backend/internal/adapter/inbound/http/router.go:127-209 - route group /process และ /api/v1/process
  • backend/internal/adapter/inbound/http/router.go:328-348 - route กลุ่ม POS
  • backend/internal/adapter/inbound/http/process/permission.go:20-24 - ตารางสิทธิ์ routeRights
  • backend/internal/application/process/menu_title.go:10 - ไฟล์เมนูที่ฝังในไบนารี

ดูเพิ่ม