Files
PROJECT-CONTORL/openspec/changes/archive/2025-12-28-add-resource-workload/tasks.md
beabigegg 61fe01cb6b feat: implement workload heatmap module
- Backend (FastAPI):
  - Workload heatmap API with load level calculation
  - User workload detail endpoint with task breakdown
  - Redis caching for workload calculations (1hr TTL)
  - Department isolation and access control
  - WorkloadSnapshot model for historical data
  - Alembic migration for workload_snapshots table

- API Endpoints:
  - GET /api/workload/heatmap - Team workload overview
  - GET /api/workload/user/{id} - User workload detail
  - GET /api/workload/me - Current user workload

- Load Levels:
  - normal: <80%, warning: 80-99%, overloaded: >=100%

- Tests:
  - 26 unit/API tests
  - 15 E2E automated tests
  - 77 total tests passing

- OpenSpec:
  - add-resource-workload change archived
  - resource-management spec updated

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 01:13:21 +08:00

2.2 KiB
Raw Blame History

Tasks: add-resource-workload

Phase 1: 資料模型與基礎設施

  • 1.1 建立 WorkloadSnapshot model (backend/app/models/workload_snapshot.py)
  • 1.2 建立 Alembic migration 建立 pjctrl_workload_snapshots
  • 1.3 建立 Workload schemas (backend/app/schemas/workload.py)

Phase 2: 核心服務層

  • 2.1 實作 workload_service.py 核心邏輯
    • ISO 週計算函式
    • 使用者週負載計算
    • 負載等級判定normal/warning/overloaded
  • 2.2 實作 Redis 快取整合
    • 快取讀取/寫入
    • TTL 設定

Phase 3: API 端點

  • 3.1 建立 workload router (backend/app/api/workload/router.py)
  • 3.2 實作 GET /api/workload/heatmap - 團隊負載熱圖
  • 3.3 實作 GET /api/workload/user/{user_id} - 使用者負載詳情
  • 3.4 實作 GET /api/workload/me - 當前使用者負載(替代 3.4 的容量更新)
  • 3.5 註冊 workload router 至 main.py

Phase 4: 權限控制

  • 4.1 實作部門隔離邏輯
    • super_admin 可查看所有
    • manager 可查看同部門
    • engineer 僅可查看自己

Phase 5: 測試

  • 5.1 單元測試:負載計算邏輯
  • 5.2 單元測試:週邊界計算
  • 5.3 API 測試heatmap 端點
  • 5.4 API 測試user workload 端點
  • 5.5 API 測試:權限控制

Phase 6: E2E 測試與驗證

  • 6.1 自動化 E2E 測試:負載熱圖完整流程
    • 建立測試使用者與任務資料
    • 驗證負載計算正確性
    • 驗證負載等級判定
  • 6.2 自動化 E2E 測試:權限控制流程
    • super_admin 可查看所有人
    • 一般使用者僅能查看自己
    • 跨部門存取拒絕
  • 6.3 自動化 E2E 測試Redis 快取驗證
    • 首次請求計算並快取
    • 二次請求命中快取
  • 6.4 更新 API 文件OpenAPI 自動生成)

Dependencies

1.1, 1.2 → 可平行執行
1.3 → 依賴 1.1
2.1 → 依賴 1.1, 1.3
2.2 → 依賴 2.1
3.1-3.5 → 依賴 2.1, 2.2
4.1 → 依賴 3.1
5.1-5.5 → 可平行執行,依賴 Phase 3, 4
6.1-6.4 → 依賴 Phase 3, 4, 5

Validation Criteria

每個任務完成後需確認:

  • 程式碼無語法錯誤
  • 相關測試通過
  • 符合現有程式碼風格