- 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>
75 lines
2.4 KiB
Markdown
75 lines
2.4 KiB
Markdown
# Proposal: add-resource-workload
|
||
|
||
## Summary
|
||
|
||
實作資源管理系統的核心功能:負載熱圖與容量追蹤。讓主管能夠視覺化了解團隊成員的工作負載狀況,並進行資源分配決策。
|
||
|
||
## Motivation
|
||
|
||
根據 `project.md` 的核心目標:
|
||
- 提供**即時資源負載與專案進度分析**
|
||
- 讓 Unit Managers 獲得**團隊工作負載可見度、資源分配熱圖**
|
||
- 減輕工程師的**時間回報負擔**
|
||
|
||
目前系統已完成 `user-auth` 和 `task-management`,具備:
|
||
- 使用者資料與容量(capacity)欄位
|
||
- 任務的時間估算(original_estimate)與實際耗時(time_spent)
|
||
- 任務指派(assignee_id)與截止日期(due_date)
|
||
|
||
基於現有基礎,可以開始計算並展示資源負載資訊。
|
||
|
||
## Scope
|
||
|
||
### In Scope (Phase 1 - 核心負載功能)
|
||
|
||
1. **Workload Heatmap API**
|
||
- 計算每位成員的週負載百分比
|
||
- 依負載狀態分類(綠色/黃色/紅色)
|
||
- 支援時間範圍查詢
|
||
|
||
2. **User Capacity Management**
|
||
- 更新使用者容量設定 API
|
||
- 容量歷史記錄(未來週數的容量調整,如請假)
|
||
|
||
3. **Workload Snapshot Storage**
|
||
- 建立 `pjctrl_workload_snapshots` 表
|
||
- 定期快照或即時計算策略
|
||
|
||
4. **Team Workload Overview API**
|
||
- 部門級別的負載總覽
|
||
- 支援按專案或部門篩選
|
||
|
||
### Out of Scope (Future Phases)
|
||
|
||
- Multi-Project Health Dashboard(需要更多專案進度數據)
|
||
- 資源分配不均的自動建議
|
||
- 資源分配 AI 預測
|
||
- WebSocket 即時更新
|
||
|
||
## Affected Specs
|
||
|
||
- `resource-management` - 實作以下需求:
|
||
- Workload Heatmap(部分)
|
||
- Capacity Planning(部分)
|
||
- Team Workload Distribution(部分)
|
||
|
||
## Dependencies
|
||
|
||
- `user-auth` - 使用者認證與權限
|
||
- `task-management` - 任務與時間估算數據來源
|
||
|
||
## Risks
|
||
|
||
| Risk | Impact | Mitigation |
|
||
|------|--------|------------|
|
||
| 負載計算效能 | 大量任務時計算緩慢 | 使用 Redis 快取計算結果 |
|
||
| 任務時間數據不完整 | 無 original_estimate 的任務無法計算 | 提供預設值或排除計算 |
|
||
| 週邊界定義不一致 | 不同使用者對「週」的理解不同 | 統一使用 ISO 週(週一至週日)|
|
||
|
||
## Success Criteria
|
||
|
||
- [ ] 主管可查看團隊成員的週負載熱圖
|
||
- [ ] 負載百分比正確反映任務分配時數 vs 容量
|
||
- [ ] 支援按部門篩選負載視圖
|
||
- [ ] API 回應時間 < 500ms(快取命中時 < 100ms)
|