主題 7/9:報表:進度、流向、日誌與工作量
  1. 總覽:概念、認證與基本用法
  2. 任務操作
  3. 附件:隨流轉上傳、複製與下載
  4. 專案:跨票共享的檔案目錄
  5. 需求方窗口:接需求、開票、回覆
  6. 流程設計 API 與設計原則
  7. 報表:進度、流向、日誌與工作量
  8. 存成 skill 與定期更新
  9. 版本紀錄

報表

報表端點都是唯讀的 GET,回應包在 {"data": …} 裡。所有請求都要帶:

Authorization: Bearer <你的 API key>
Accept: application/json

端點一覽#

端點 內容 參數
GET https://station-flow.staging.quanhox.com.tw/api/v1/routines/{routineId}/report/progress 某個例行事務(routine)目前的進度與各站件數 無
GET https://station-flow.staging.quanhox.com.tw/api/v1/routines/{routineId}/report/flow 各站進出件數與每日流向 date、date_from、date_to、user_id
GET https://station-flow.staging.quanhox.com.tw/api/v1/routines/{routineId}/report/logs 該例行事務所有票的完整流轉紀錄 無
GET https://station-flow.staging.quanhox.com.tw/api/v1/report/workload 組織內每個人近 N 天的流轉次數,依類型拆分 days
GET https://station-flow.staging.quanhox.com.tw/api/v1/report/user/{userId}/daily 某人某一天的流轉紀錄 date

權限與資料範圍#

  • 只看得到目前組織的資料。別組織的 routine 回 404「例行事務不存在」;不是本組織成員的使用者回 404「使用者不存在」。
  • flow 報表:非管理者一律只統計自己做的流轉。帶別人的 user_id 不會報錯,而是被伺服器改成你自己;不帶也一樣只看自己。組織管理者不帶 user_id 看全組織,帶了就只看那個人。
  • 其他報表只要是組織成員就能查,不另外限制角色。

日期與時區#

  • 時間欄位(created_at)為 UTC。
  • date、date_from、date_to 格式 YYYY-MM-DD,以 UTC 日期比對。台灣時間(UTC+8)凌晨 0–8 點發生的流轉,會算在前一個 UTC 日。

進度報表 progress#

curl -s -X GET "https://station-flow.staging.quanhox.com.tw/api/v1/routines/3/report/progress" \
  -H "Authorization: Bearer $SF_KEY" -H "Accept: application/json"
{"data":{
  "routine_id": 3,
  "total_tasks": 40,
  "completed_tasks": 25,
  "in_progress_tasks": 15,
  "progress_percentage": 62.5,
  "stations": [
    {"station_id": 11, "station_name": "撰稿", "type": "normal", "task_count": 6, "percentage": 15.0}
  ]
}}
  • 「完成」=票停在結束(end)或存查(archive)類型的站。
  • stations 只列流程現行版本的站;total_tasks、completed_tasks 則算這個 routine 的所有票(包含停在舊版本站的票)。

流向報表 flow#

curl -s -X GET "https://station-flow.staging.quanhox.com.tw/api/v1/routines/3/report/flow?date_from=2026-10-01&date_to=2026-10-29" \
  -H "Authorization: Bearer $SF_KEY" -H "Accept: application/json"
{"data":{
  "routine_id": 3,
  "date": null,
  "stations": [
    {"station_id": 11, "station_name": "撰稿", "type": "normal", "entered": 12, "exited": 10, "net": 2}
  ],
  "daily": [
    {"date": "2026-10-28", "to_station_name": "審稿", "count": 4}
  ]
}}
  • date:只看某一天;date_from/date_to:區間(含頭尾),可只給一邊。
  • entered=進入該站的次數,exited=離開該站的次數,net=兩者相減。依站名比對,所以新舊版本中同名的站會合併計算。
  • stations 只列現行版本的站;daily 依日期與目的站名分組。
  • 留言也是一筆流轉紀錄(來源站與目的站都是目前站),會計入進出次數。

日誌報表 logs#

curl -s -X GET "https://station-flow.staging.quanhox.com.tw/api/v1/routines/3/report/logs" \
  -H "Authorization: Bearer $SF_KEY" -H "Accept: application/json"

data 是陣列,依時間由舊到新,每筆:

{"task_id": 57, "from_station_name": "撰稿", "to_station_name": "審稿",
 "transition_type": "normal", "transition_name": "送審", "transition_tone": "positive",
 "is_return": false, "comment": "初稿完成", "actor": {"id": 8, "name": "小明"},
 "created_at": "2026-10-28T03:12:00.000000Z"}
  • transition_type:normal(走出口)、rollback(退回上一站)、exception(進異常站)、jumpback(從異常站跳回)、comment(留言)。
  • is_return: true 表示這是一次「退件」:normal 流轉且出口的 tone 為 negative。
  • 沒有分頁也沒有篩選,會回整個 routine 的全部紀錄。只需要單張票的歷史時,改用 GET https://station-flow.staging.quanhox.com.tw/api/v1/tasks/{id}/logs。

工作量報表 workload#

curl -s -X GET "https://station-flow.staging.quanhox.com.tw/api/v1/report/workload?days=7" \
  -H "Authorization: Bearer $SF_KEY" -H "Accept: application/json"
{"data":[
  {"user_id": 8, "name": "小明", "total": 23,
   "by_type": {"normal": 15, "reject": 2, "rollback": 1, "exception": 0, "jumpback": 0, "comment": 5},
   "count": 23}
]}
  • 唯一參數 days,預設 30,最小 1;統計從 N 天前(UTC)當天 0 點起到現在。
  • 依 total 由大到小排序。count 與 total 相同,為相容舊用法保留。
  • reject=走了 tone 為 negative 的出口(退件),已從 normal 拆出,normal 只算非退件;各類加總等於 total。
  • 統計的是整個組織,不限單一 routine。帳號已刪除的人 name 顯示「(已刪除)」。

個人每日報表 user daily#

curl -s -X GET "https://station-flow.staging.quanhox.com.tw/api/v1/report/user/8/daily?date=2026-10-28" \
  -H "Authorization: Bearer $SF_KEY" -H "Accept: application/json"
{"data":[
  {"task_id": 57, "from_station_name": "撰稿", "to_station_name": "審稿",
   "transition_type": "normal", "comment": "初稿完成", "created_at": "2026-10-28T03:12:00.000000Z"}
]}
  • 唯一參數 date(YYYY-MM-DD,UTC),預設今天(UTC)。一次只查一天,要多天就逐日呼叫。
  • 只列這個人當天做的流轉與留言,依時間由舊到新。

常見錯誤#

HTTP 情況 怎麼處理
401 沒帶或帶錯 API key 檢查 Authorization header
404 routine 不存在或不屬於目前組織;使用者不是目前組織成員 先用 GET https://station-flow.staging.quanhox.com.tw/api/v1/routines 或 GET https://station-flow.staging.quanhox.com.tw/api/v1/users 確認 id
回傳只有自己的資料 非管理者查 flow 報表 正常行為,伺服器強制只看自己