# 風險報告功能 - 快速使用指南

## 🚀 快速開始

### 1. 啟動系統

```bash
# 終端 1：啟動後端
cd backend
python manage.py runserver

# 終端 2：啟動前端
cd frontend
npm start
```

### 2. 訪問報告

#### 個別風險報告
1. 訪問 http://localhost:3000/risks
2. 點擊任一風險的「👁️ 查看」按鈕
3. 查看完整的風險報告

**或直接訪問：** http://localhost:3000/risks/{風險ID}

#### 整體風險評估報告
1. 在風險列表頁點擊「📄 整體報告」按鈕
2. 查看組織整體風險狀況

**或直接訪問：** http://localhost:3000/risks/reports/overall

---

## 📊 功能說明

### 個別風險報告包含：

✅ **風險概覽**
- 風險等級、風險值、可能性、影響度
- 殘餘風險資訊（如已處理）
- 風險降低率視覺化

✅ **詳細資訊**
- 基本資訊：描述、分類、狀態、處理方式
- 受影響資產列表
- 處理行動記錄（含進度）
- 審查歷史時間軸
- 威脅來源與脆弱性資訊

✅ **操作功能**
- 🖨️ 列印報告
- 📥 匯出 HTML
- ◀️ 返回列表

### 整體風險評估報告包含：

✅ **關鍵指標**
- 總風險數、高風險數、待處理數、逾期審查數

✅ **風險降低效果**
- 平均初始/殘餘風險值
- 風險降低率計算
- 已處理風險進度條

✅ **圖表視覺化**
- 📊 風險等級分布（圓餅圖）
- 📊 風險類別分析（柱狀圖）
- 📈 風險趨勢分析（折線圖，過去12個月）

✅ **高風險項目**
- Top 10 高風險列表
- 可排序表格

✅ **處理行動統計**
- 按狀態統計（已規劃/進行中/已完成/逾期）

---

## 🧪 測試功能

執行測試腳本驗證所有 API：

```bash
./test_risk_reports.sh
```

測試項目：
- ✅ 風險趨勢分析 API
- ✅ 整體報告 API
- ✅ 個別報告 API
- ✅ PDF 匯出 API

---

## 📖 API 端點

### 風險趨勢分析
```
GET /api/risks/risks/risk_trend_analysis/
```
返回過去12個月的風險趨勢數據

### 整體風險評估報告
```
GET /api/risks/risks/overall_risk_report/
```
返回組織整體風險統計與分析

### 個別資產風險報告
```
GET /api/risks/risks/{id}/asset_risk_report/
```
返回特定風險的詳細報告數據

### 匯出報告（HTML）
```
GET /api/risks/risks/{id}/export_pdf/
```
返回格式化的 HTML 報告，可列印為 PDF

---

## 💡 使用技巧

### 列印報告
1. 在報告頁面點擊「🖨️ 列印」按鈕
2. 或使用瀏覽器快捷鍵 Ctrl+P (Cmd+P on Mac)
3. 選擇「另存為 PDF」或直接列印

### 匯出報告
1. 點擊「📥 匯出 PDF」按鈕
2. 下載 HTML 文件
3. 在瀏覽器中開啟 HTML 文件
4. 使用列印功能儲存為 PDF

### 查看趨勢
- 整體報告頁面自動顯示過去12個月的趨勢
- 折線圖可查看各等級風險的變化
- 柱狀圖展示風險類別分布

---

## 🎨 介面特色

- ✨ 響應式設計（支援桌面、平板、手機）
- 🎯 直觀的操作介面
- 📊 豐富的圖表視覺化
- 🖨️ 列印友善設計
- 🏷️ 色彩編碼風險等級
- 📈 即時數據更新

---

## ⚠️ 注意事項

1. **數據要求：** 需要先建立風險數據才能查看報告
2. **瀏覽器支援：** 建議使用 Chrome、Firefox、Edge 最新版本
3. **圖表顯示：** 需要安裝 recharts 套件（已包含在 package.json）
4. **報告生成：** 報告即時生成，反映最新數據

---

## 📞 問題排查

### 報告頁面空白
- 檢查後端服務是否運行
- 確認風險數據已存在
- 查看瀏覽器控制台錯誤訊息

### 圖表不顯示
- 確認已安裝 recharts：`npm install recharts`
- 清除瀏覽器快取重新載入
- 檢查數據是否正確返回

### 無法匯出 PDF
- 檢查後端 API 端點是否正常
- 確認瀏覽器允許下載
- 嘗試使用列印功能作為替代方案

---

## 🎓 進階使用

### 自訂報告時間範圍
目前趨勢分析固定為12個月，如需自訂，可修改後端 `views.py` 中的：
```python
for i in range(11, -1, -1):  # 修改此處數字
    month_date = today - timedelta(days=30*i)
```

### 調整圖表樣式
修改 `RiskOverallReport.tsx` 中的 Recharts 配置：
```typescript
<LineChart data={trendChartData}>
  {/* 在這裡調整顏色、大小等 */}
</LineChart>
```

### 新增報告欄位
1. 後端：修改 `views.py` 中的報告數據結構
2. 前端：在報告頁面加入對應的顯示元件

---

## 📚 相關文件

- 完成報告：`RISK_REPORT_COMPLETION.md`
- 開發計劃：`plan.md`
- 測試腳本：`test_risk_reports.sh`
- 規格文件：`spec/ISO27001-MVP10規劃.md`

---

**最後更新：** 2025-10-31  
**版本：** 1.0
