工程文件

工程企劃書

本工程企劃書定義正式後端系統的模組分層、技術選型、資料流、測試策略與階段導入順序。

技術決策

項目C# .NET 5.0
測試框架xUnit
第一階段 HostWeb API + Console Worker,或先以 ConsoleHost 驗證排程與通知流程。
文件網站靜態 HTML,可部署至 GitHub Pages 或 Cloudflare Pages。
登入權限最後階段導入 Microsoft 365 / Outlook / Entra ID。

建議 Solution 結構

HS.ProjectFlow.sln
src/
  HS.ProjectFlow.Core/
  HS.ProjectFlow.Workflow/
  HS.ProjectFlow.Importing/
  HS.ProjectFlow.Adapters/
  HS.ProjectFlow.Notification/
  HS.ProjectFlow.Reporting/
  HS.ProjectFlow.Api/
  HS.ProjectFlow.Worker/
tests/
  HS.ProjectFlow.Core.Tests/
  HS.ProjectFlow.Workflow.Tests/
  HS.ProjectFlow.Notification.Tests/
  HS.ProjectFlow.Integration.Tests/

模組職責

模組職責
Core專案、節點、品項、狀態、部門、日期、通知事件等核心模型。
Workflow節點轉移、狀態機、流程檢查、逾期判斷。
Importing報價單、採購單、BOM、Excel 報表匯入與欄位標準化。
AdaptersGoogle Sheet、Outlook / SMTP、檔案儲存、Excel 匯出。
Notification提醒規則、通知合併、寄送結果、通知紀錄。
Reporting查詢、彙總、日報表與 Excel 匯出。
Api前端與外部系統使用的 HTTP API。
Worker每日排程檢查、通知寄送、背景同步。

開發階段

  1. 整理現有 React 前端與 .NET API 的資料欄位與行為規格。
  2. 先完成採購部作為第一個部門模組,驗證專案總覽、來源單據、採購明細與狀態異動。
  3. 把採購部本地 JSON 結構收斂為正式資料表草稿與 API contract。
  4. 建立 C# .NET 5.0 Solution 與 Core Model。
  5. 建立採購部正式 API、MySQL 5.6.2 Repository 與狀態異動紀錄。
  6. 建立 Workflow Engine 與節點狀態轉移測試。
  7. 建立 Import Adapter,先支援現有報價單 / 採購單 JSON。
  8. 建立 Google Sheet Adapter 與專案比對服務,作為過渡資料同步來源。
  9. 建立 Notification Rule Engine 與 dry run 通知紀錄。
  10. 建立 Web API 與背景 Worker。
  11. 確認採購部模組穩定後,再以相同邊界擴展到業務、工程、財務與倉庫。
  12. 補上權限欄位與審計紀錄,最後階段導入 Microsoft 登入。

部門 Agent 邊界

未來各部門可以配置自己的 Agent 或自動化流程,但 Agent 不得直接修改其他部門擁有的資料。所有跨部門互通都必須透過 API command、事件或任務建立。

Agent可修改範圍不可直接修改跨部門方式
採購部 Agent採購狀態、來源單據、交貨日、採購備註。BOM、案件合約日期、發票付款、倉庫入庫。發出採購事件或到貨待確認任務。
業務部 Agent案件基本資料、客戶、履約交貨日、驗收資料。採購狀態、BOM 明細、庫存與付款。發出開案、規格交付、驗收完成事件。
工程部 AgentBOM、工程圖、工程異常、測試回報。採購叫貨、付款、客戶合約欄位。發出 BOM 發布或補件需求事件。
倉庫 Agent到貨、入庫、儲位、短交、出庫。採購單價、BOM、合約日期、付款。回寫到貨事件,供採購與財務讀取。
財務 Agent發票、付款、成本歸屬、請款狀態。採購作業狀態、BOM、倉庫入庫數。發出付款或發票確認事件。

API 設計需避免共用一個大而全的 update endpoint,應以部門 Command 切開,例如 Procurement.UpdatePurchaseItemStatus、Warehouse.ConfirmArrival、Engineering.PublishBom、Sales.UpdateContractDeliveryDate、Finance.UpdateInvoiceStatus。這樣才能降低改 A 壞 B 的風險。

測試計畫

  • Core Model 單元測試。
  • Workflow 狀態轉移測試。
  • 報價單匯入與欄位映射測試。
  • 專案比對測試。
  • 通知規則與通知合併測試。
  • Excel 匯出格式測試。
  • 背景排程 dry run 測試。