返回作品案例
自動排班系統 Desktop App / MAUI / Scheduling

以 MAUI 打造可自動排班與匯出 Excel 的桌面排班系統

根據職能、班別、休假與每週班表範本,自動產生合規排班結果,並匯出 Excel 與衝突報告,降低人工排班成本。

自動排班 Excel 匯出 MAUI 桌面應用
自動排班系統主視覺概念圖

專案概觀

本專案為個人委託案,在預算有限的前提下,目標是把原本高度仰賴人工處理的排班流程整理為一套可在 Windows 環境獨立運作的桌面工具。

系統依據職能、班別、人員、休假與每週班表範本等條件,自動產生排班結果,並匯出 Excel 與衝突報告,協助使用者降低排班耗時與人工檢查成本。

專案重點

  • 實作採用 .NET MAUI,以桌面操作情境為主,聚焦單機可用、介面清楚與維護成本可控。
  • 排班核心採用 Google OR-Tools,同時考慮職能符合、休假限制、不可排班時段、連續上班天數與最小休息間隔等規則。
  • 系統提供快速算法與模擬算法兩種模式,前者用於較快取得可行解,後者可花更長時間換取更好的排班品質。
  • 使用者可指定運算上限時間,讓系統在不同規模與時效需求下彈性求解,對破百人團隊也能有效降低排班衝突。
  • 排班完成後除了輸出結果,也提供衝突檢視與警示資訊,讓使用者能根據系統提示再進行人工微調。

畫面說明

  • 案例展示中的系統截圖皆為示意資料,畫面內人名與排班內容皆為假資料。

交付價值

在有限預算下,這套工具把原本容易出錯且高度重複的排班工作集中到單一流程中,讓使用者能以較低的操作成本完成資料設定、排班執行與結果匯出,也為後續調整規則或延伸更多排班情境保留基礎。

畫面展示

Feature Highlights

主要功能亮點

以下整理本案在功能規劃、系統設計與實際交付上的核心亮點,對應真實使用情境與後續延伸需求。

Data Setup

職能、人員與班別資料集中管理

01

先建立職能、人員與班別等基礎資料,讓後續排班規則與指派邏輯有一致的資料來源。

Weekly Template

以每週班表範本驅動每日需求

02

使用者可依週一到週日定義固定班別需求,系統再根據日期區間自動展開排班條件。

Leave Control

整合休假與不可排班時段限制

03

排班時會一併檢查指定日期休假與個別不可排班時段,避免產生明顯衝突。

OR-Tools Solver

以 Google OR-Tools 建立排班求解核心

04

排班引擎以 Google OR-Tools 實作,將多項硬性限制與最佳化目標納入同一套求解流程。

Dual Strategy

快速算法與模擬算法雙模式排班

05

支援快速取得可行解的模式,以及願意花更久時間換取更佳結果的模擬算法模式,讓使用者依場景切換。

Large Team Planning

支援破百人團隊的排班需求

06

透過演算法求解與規則控制,降低大型團隊排班時的衝突率,協助產出較佳的排班結果。

Conflict Review

提供衝突檢視與人工調整依據

07

若仍有無法完全滿足的排班條件,系統會提示衝突與警示,讓使用者在結果基礎上進行人工安排。

Desktop Workflow

在有限預算下聚焦單機桌面流程

08

以桌面單機使用情境為核心,先滿足資料設定、排班執行與匯出需求,控制開發範圍與成本。

Next Stage

未來展望

如果後續要持續擴充這個專案,以下會是較合理的延伸方向與能力補強重點。

01

Rule Tuning

擴充更多排班規則與權重設定

若後續情境更複雜,可進一步加入更多限制條件與公平性權重,提升自動排班適配度。

02

Report Expansion

補強工時統計與視覺化報表

可延伸人員工時、班別分布與衝突趨勢等統計資訊,協助管理者更快掌握整體排班狀況。

03

Data Import

支援批次匯入與範本複製流程

未來可加入人員、班別與範本的批次匯入功能,降低初始建檔與維護成本。

04

Scenario Scaling

延伸更多部門或場域的排班需求

若使用範圍擴大,可在既有基礎上支援更多單位、更多班別型態與更細緻的排班情境。