依 SOP 範本驅動的訂單待辦與進度控管系統
2026
訂單流程控管系統是一套為既有 ERP 客戶打造的內部營運工具。客戶的 ERP 擅長記帳與單據,卻缺乏「一張訂單該由誰、依什麼順序、做哪些步驟」的跨部門流程控管 — 這正是本系統補上的缺口。
核心是一套視覺化 SOP 範本編輯器:以 Vue Flow 節點式畫布把出貨、進貨、調撥、加工、會計等作業畫成流程圖,設定主線步驟、例外分支與跨範本跳轉,並指派每一步的主責與單號前綴。範本發布後,訂單即依範本快照自動展開為待辦任務,指派到人、追蹤進度,狀態由 state machine 嚴格驅動。
前端以 Astro 5 SSR 搭配 Vue 3 互動元件,資料層採 better-sqlite3 + Drizzle ORM 輕量落地、Zod 全程驗證,並以四級 RBAC 控制權限。整個專案依規格書驅動開發,AC-01~13 驗收條件與 BR-01~14 業務規則逐條對照,交付即通過驗收。
以 Vue Flow 打造節點式畫布,拖拉「主線步驟」與「例外步驟」,設定可開例外、例外流程與跨範本跳轉;每步驟可指派主責與單號前綴,並支援版本化發布
訂單建立時鎖定當下 SOP 範本快照,日後範本改版也不影響進行中的訂單 — 每筆訂單永遠依當初的流程執行,確保一致性與可稽核
依快照自動把每一步驟展開為待辦任務,指派主責與次要負責人;首頁看板即時統計進行中/暫停中/已完成/已取消
訂單狀態以 state machine 驅動(進行中・暫停・完成・取消),支援例外分支、訂單阻塞(被其他訂單卡住)與完成後跨範本轉換
管理員/主管/操作員/檢視者分級授權,精確控制範本編輯、訂單操作與檢視範圍,導覽列可即時切換角色檢視
每一次操作都寫入 orderEvents 事件日誌,完整可追溯;管理員可於首頁檢視最近事件,掌握全域流程動態
以 SOP 範本對應 ERP 單據類型(訂貨・銷貨・採購・請款…),透過單號前綴串接,補足既有 ERP 缺乏的「跨部門流程控管」
依《系統規格書》與《客戶需求確認文件》實作,AC-01~13 驗收條件與 BR-01~14 業務規則逐條對照,交付即通過驗收
SOP 範本以 Vue Flow 節點式畫布編輯:主線步驟以實線串接、例外步驟以虛線分支,並區分「可開例外」「例外流程」「跨範本跳轉」四種連線語意。每個節點可設定主責、單號前綴與屬性,發布後即成為訂單執行的藍圖。
資料層採 Drizzle ORM 搭配 better-sqlite3,以型別安全的 schema 定義 users、orders、tasks、sopTemplates、orderEvents 等資料表。SQLite 讓這套內部工具能零額外資料庫服務、單檔落地,部署與備份都極簡,非常適合搭配客戶既有系統的私有部署。
業務邏輯集中於 src/domain/,以 state machine 管理訂單生命週期(進行中→暫停/例外→完成/取消),並支援訂單阻塞(blockedByOrderId)與完成後跨範本轉換。每次狀態轉移都發出領域事件寫入 orderEvents,形成完整可稽核的操作軌跡。
訂單建立時會對 SOP 範本做一份快照(snapshot)並鎖定於該訂單。之後即使範本改版或停用,進行中的訂單仍依當初的步驟與負責人執行 — 避免「流程改了、舊單也跟著變」的資料一致性風險,這是流程控管系統可稽核性的關鍵。
所有 API endpoint 的輸入皆以 Zod schema 驗證,並與 TypeScript 型別對齊,從 Astro API Routes 到 Drizzle 資料層維持端到端型別安全,把錯誤擋在寫入資料之前。
以 src/lib/permissions 實作四級角色(管理員/主管/操作員/檢視者)的授權判斷,控制範本編輯、訂單操作、事件檢視等能力。middleware 在頁面與 API 兩層把關,未登入或越權的請求一律擋下。