FR-148 · 討論稿 · 2026-10-18
關卡是任務裡面的事;BPMN 流程圖一顆方塊、一筆任務,不動圖
現在要讓一個任務經過主管、顧問兩道審核,只能在流程圖畫三個方塊,結果變成三張任務卡,證據與留言各自分家,後面的人看不到前面的東西。本案在任務身上加一條可自訂的關卡清單:公司在系統設定建好幾條審核流程,各專案在規劃頁自己決定哪些任務套哪一條(可一次套用到多個任務),任務卡上多一條關卡列與「審核歷程」按鈕(點開彈窗看),每換一關通知下一關負責人。流程圖維持一顆方塊、一筆任務;走完最後一關才叫既有的「完成任務」讓流程往下走。請先開 雛形索引 點四頁,再回來看規格。
狀態:討論稿(D1~D12 全裁、D3 作廢;雛形待依定案改,改完決策者看過即落 design.md) | 日期:2026-10-18 | 雛形:prototype/index.html
路徑慣例:BE 路徑相對 compliance-manager-be/;pkg/ 代表 ~/Projects/Jedicogy/module/jedi-python-package/;FE 路徑相對 compliance-manager-fe/。
| 日期 | 變更 | 對應 |
|---|---|---|
| 2026-10-18 | v1:方案比較(四案)、資料模型草案、端到端流程、畫面放法、D1~D10 待裁、拆卡草案、四頁雛形 | 本稿 |
| 2026-10-18 | 決策者裁 D13(任務配置 Excel 只管第 1 關,加唯讀摘要欄)、D14(改善計畫任務不套樣板);規劃頁指派收進彈窗(零關也開彈窗) | 決策者 |
| 2026-10-18 | 決策者補裁 D7:出廠預設=內建零關樣板「免審直通」(不可刪、不可加關),管理員自己改預設才會變 | 決策者 |
| 2026-10-18 | 決策者裁:用詞改為「任務關卡樣板」(系統設定選單叫「任務關卡樣板設定」、任務卡上叫「關卡進度」),「流程」只留給 BPMN 流程圖;設定頁改成清單+編輯 dialog,版型與專案列表統一。以下內文的「審核流程」皆指任務關卡樣板 | 決策者 |
| 2026-10-18 | 決策者裁 D4、D6、D7、D9、D10 照建議;D8 改為「批次完成=推進當下那一關」(審核關也可批次)。全部決策裁完 | 決策者 |
| 2026-10-18 | 決策者裁 D1:流程不設負責人,只是象徵性的關卡骨架;每關由誰做由 PM 在規劃頁指派,跟現在指派任務人員一樣、每關可多人。D3 作廢。資料模型拿掉 owner 欄、新增每關指派表 | 決策者 |
| 2026-10-18 | 決策者裁:審核歷程改成按鈕+彈跳視窗,不常駐在任務卡內(資訊太多) | 決策者 |
| 2026-10-18 | 決策者裁:D2(畫面呈現「開始 → 1 → 2 → 3 → 結案」,開始/結案只是端點、中間三關照舊)、D5(任務一旦開始就不能改流程)、D11(流程建在系統層、各專案自己決定套到哪些任務)、D12(不做單一任務微調,要不同流程就套不同條)。雛形待依新定案改 | 決策者 |
整案一句話:任務身上帶一條可自訂的關卡清單,同一張卡依序交給不同的人,每換一關通知下一關負責人,走完最後一關才算完成;流程圖一顆方塊一筆任務,不動。
給非工程讀者的背景:稽核任務常常不是一個人做完就算數——執行人交證據、部門主管看過、顧問確認符合法規,才算結案。現在系統的任務只有「未開始/進行中/已完成」三態,想做審核只能在流程圖畫三個方塊,就變成三件任務:證據在第一張、主管在第二張看不到證據、顧問在第三張看不到前兩張的留言。本案讓這三步變成同一張卡上的三關。
| 卡 | 做什麼 | 產出 | 決策者檢查法 |
|---|---|---|---|
| ① 任務卡關卡列+送審/核可/退回+歷程 | 任務卡標頭下多關卡列;底部按鈕跟著「目前關卡負責人是不是你」變;標題列右上角時鐘圖示,點開彈窗列出歷程;每換一關寄信 | 兩張新表(關卡快照、歷程)+任務新欄、推進/退回 service、通知掛點、FE 關卡列與歷程子元件 | 對照 雛形頁 1:用三個身分各登入一次,送審→主管核可→顧問核可並結案,歷程三筆、每步下一關的人收到信;主管退回執行人收到信且卡回第一關 |
| ② 待辦任務頁 | 多一欄「目前關卡」、篩選多一段「待我處理」 | 待辦查詢加欄位與條件、FE 表格欄與篩選段 | 對照 雛形頁 2:王經理登入「待我處理」只列等他審的;陳小明登入看到被退回的那筆 |
| **③ 系統設定「任務關卡樣板設定」 | 清單+編輯 dialog(版型同專案列表);管理員建好幾個樣板,每個自訂關卡名稱/說明/允許退回到哪(不設負責人**);一條設公司預設 | 關卡組兩張表+migration、CRUD 端點、FE 新頁 | 對照 雛形頁 4:點一列開 dialog 加一關、新增一個樣板、設預設,重開頁面還在 |
| ④ 規劃頁套流程+每關指派人員+套用到其他任務 | 任務設定多一個下拉「審核流程」選系統層的哪一條(複製一份到任務);原本的「指派人員」一格變成每關一格(第 1 關=原指派人員),每格可多人;「套用到其他任務」一次勾多個;任務開始後鎖 | 套用端點、每關指派端點、批次套用端點、FE 任務表單區塊、啟動前置檢查加「每關都要有人」 | 對照 雛形頁 3:選「標準三關」,指派人員變成三格、各填人(可多人),存檔重開還在;已開始的任務是鎖的 |
| ⑤ 退回重開與結案接線 | 管理員退回已結案任務時關卡重設第一關;走到最後一關才呼叫既有 complete_job 讓流程往下走;專案啟動時沒套的任務自動帶公司預設組 |
reopen_job_execution 與 restart_from_first_station 加 hook、complete_job 前置判斷、啟動時帶預設 |
把已結案任務退回重開 → 關卡列回第一關、執行人收到信;沒套關卡的任務行為與現在完全一樣 |
依賴:①是核心、先做(決策者最早看得到畫面);②只依賴①;③④可與②平行;⑤最後做。卡的排序以「何時看得到畫面」為準。
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#E2F0F1','primaryTextColor':'#14201F','primaryBorderColor':'#0E7C86','secondaryColor':'#EEF2F3','secondaryTextColor':'#14201F','tertiaryColor':'#FBFCFC','tertiaryTextColor':'#14201F','lineColor':'#4A5A5C','textColor':'#14201F','mainBkg':'#E2F0F1','nodeBorder':'#0E7C86','nodeTextColor':'#14201F','edgeLabelBackground':'#FBFCFC','titleColor':'#14201F','clusterBkg':'#FBFCFC','clusterBorder':'#E4EAEB','actorBkg':'#E2F0F1','actorTextColor':'#14201F','actorBorder':'#0E7C86','actorLineColor':'#C7D1D2','signalColor':'#4A5A5C','signalTextColor':'#14201F','labelBoxBkgColor':'#EEF2F3','labelBoxBorderColor':'#C7D1D2','labelTextColor':'#14201F','loopTextColor':'#14201F','noteBkgColor':'#F6EBD5','noteTextColor':'#14201F','noteBorderColor':'#9C6B12','activationBkgColor':'#EEF2F3','activationBorderColor':'#C7D1D2','sequenceNumberColor':'#FFFFFF'}}}%%
flowchart LR
C1[① 任務卡關卡列<br/>送審/核可/退回/歷程] --> C2[② 待辦任務頁]
C1 --> C3[③ 任務關卡樣板設定]
C3 --> C4[④ 規劃頁套流程<br/>套用到其他任務]
C1 --> C5[⑤ 退回重開與結案接線]
C4 --> C5
決策者的疑問是:「原版靠 BPMN 處理流程,再加一套設定是不是流程定義變兩個地方?」答案是兩層各管各的——BPMN 管「任務與任務之間」(先後、平行、分支),關卡管「一件任務裡面誰簽」。真正的癥結不是 BPMN,是這條既有鐵律:
🔴 一個方塊=一筆 job_executions,證據、留言、問卷、執行紀錄全掛在那一筆上
FR-112 定的(app/flow_control/service/flow_apply_to_tasks_service.py 檔頭、workflow_xml_sync_service.py 三向 diff 都靠 job_execution_uid 配對)。所以只要審核畫成多個方塊,資料就一定拆開;要資料不拆,換手就得放在引擎以外。
| 方案 | 做法 | 每間公司不一樣怎麼辦 | 牽連範圍 | 判定 |
|---|---|---|---|---|
| 一:三個方塊+「同一串」標記 | 圖上三方塊標成同串,引擎照跑三筆,UI 與證據池把同串當一張卡 | 靠畫圖 | 最大。所有「按任務讀」的地方改「按串讀」:稽核作業頁、AO 底稿(FR-141/142 剛做完)、證據分類、複審複製、進度與通過清單、Drive 歸檔;三向 diff 與套用到其他任務的配對規則重寫 | 排除 |
| 二:一個方塊,關卡塞方塊屬性 | 關卡清單寫進 camunda 屬性 | 靠畫圖時填 | 引擎不執行該屬性,只是當設定檔存;FR-112 才把屬性瘦到只剩名稱;範本 XML 是可翻譯欄位要雙寫 | 排除(重走舊路) |
| 三:一個方塊,關卡是任務層資料 | 任務多「目前第幾關」,關卡清單存新表;走到最後一關才 complete_job |
公司自建關卡組,PM 套、可微調 | 最小。14 個按 JobStatus.COMPLETED 讀的地方、三向 diff、套用到其他任務一行不改。要動:新表、推進/退回 service、通知掛點、任務卡 FE、待辦頁、設定頁 |
建議 |
| 四:BPMN call activity 子流程 | 一顆方塊展開成子流程三站 | 靠畫圖 | 子流程三站仍是三筆 job_executions,資料拆開問題與方案一相同,只多一層包裝 |
排除 |
反悔條件:若客戶要求「主管退回後走另一條路」「兩個審核並行」「審核結果決定下一個任務是誰」——這些是分支,是圖的事,線性關卡不夠,那時才把審核拉進圖;但資料共用問題仍要解,方案一的成本不會消失。
| 元件 | 現況 | 本案動作 |
|---|---|---|
任務狀態 JobStatus |
pkg/jedi-flow-engine/.../job_code.py:TODO/PROCESSING/COMPLETED/CANCEL 四態 |
不動。關卡是另一欄,PROCESSING 期間在關卡內換手 |
任務表 job_executions |
pkg/jedi-flow-engine/jedi_flow_engine/infra/models/job_execution.py:FR-137 已加週期六欄、期限兩欄 |
加 review_step_no(目前第幾關,null=沒套)、review_group_id(套了哪組,只記來源) |
| 完成任務入口 | api/flow_engine/__init__.py:38 /flow-engine/task/complete/<id> → workflow_execution_service.complete_job()(:623)→ 把下一方塊實體化成 PROCESSING 並 notify_user_todo_job |
有關卡的任務:FE 不直接打這支;推進 service 走到最後一關時由 BE 呼叫它。沒關卡的任務不變 |
| 批次完成 | app/flow_control/service/job_batch_complete_service.py:43 |
有關卡且未到最後一關的任務要擋(或改成批次送審)——D8 裁 |
| 退回重開 | app/flow_engine/service/job_reopen.py:10 reopen_job_execution(管理員退回結案)、job_restart_service.py:63 restart_from_first_station(週期重跑) |
兩處加 hook:關卡重設第一關、寫一筆歷程、通知執行人 |
| 通知 | workflow_execution_service.py:1209 notify_user_todo_job(job_id, assignees=None):寄信+Discord/Telegram,可指定收件人 |
換關時以該關負責人為 assignees 呼叫,不新開管線;信件文案多一種「待你審核」 |
指派表 task_assignees |
pkg/jedi-task-platform/.../task_assignee.py:is_approver(問卷審查人員專用)、role(String 50,現未用於審核) |
不動 is_approver(語意是問卷)。關卡負責人另存關卡快照表,不塞指派表 |
| 專案角色 | common/enum/participant_enum.py:manager/reviewer/auditor/viewer;reviewer 註解「系統送待審核通知給他」但 grep 全 app 只有一處 i18n 用到 |
關卡「依角色」的選項就是這四個+「任務執行人」;reviewer 當主管審預設、auditor 當顧問審預設 |
| 組織單位 | pkg/jedi-iam/.../org_unit.py:name/parent_id/path/metadata,沒有主管欄 |
「執行人的部門主管」查不到,負責人只能是專案角色或指定人(D3) |
| 問卷審核 | pkg/jedi-survey/.../task_survey_code.py:待填寫/編輯中/待審核/待補充說明/完成;task_survey.approval_required;BE 主專案 2 檔、套件 7 檔、FE 12 檔 |
第一期不併(D9)。問卷任務不套關卡,維持現狀 |
| 流程圖「套用到其他任務」 | app/flow_control/service/flow_apply_to_tasks_service.py:列同輪候選、只允許全 TODO 的目標 |
關卡的「套用到其他任務」比照同一動線:同輪候選、已開跑不可套 |
| 待辦任務頁 | FE src/views/project/MyTasksView.vue(760 行):表格欄專案/輪次/控制項/AO/任務/類型/期限/狀態;篩選全部/未開始/進行中/已完成 |
加「目前關卡」欄、「待我處理」段;BE 待辦查詢加兩欄與一個條件 |
| 任務卡 | FE src/components/grc/JobExecutionDrawer.vue(2,344 行,已超標):JobDrawerHeader+描述/指南/檢測設定/指派/部門/設備/問卷/執行紀錄/證據 |
關卡列、動作區、歷程各開子元件,抽屜只插三行;不往裡塞 |
| 規劃頁 | FE src/views/project/ProjectPlanningView.vue(2,604 行,已超標) |
「審核關卡」區塊開子元件 |
| 規劃頁「匯出/匯入任務配置」Excel | app/flow_control/service/job_import_service.py(492 行):前九欄資源庫共用格式(task_guidance_workbook.py)+後四欄「任務類型/指派人員/參與部門/設備」;匯入=上傳→預覽(JobImportDialog.vue,可在表上改指派與部門)→確認,寫回 task_assignees;指派人員必填;問卷審核者「留下來的人保留、新加的人預設否」 |
D13:指派人員/參與部門兩欄改為「第 1 關」;加一欄唯讀「任務關卡」摘要;第 2 關以後與樣板選擇不進 Excel;填寫說明頁加一句 |
| 改善計畫 Excel | poam_workbook_export.py/poam_workbook_import.py:「執行人員」欄是改善任務的執行人 |
D14:改善任務不套樣板,不動 |
| 資源庫任務說明、SSP 控制項現況、稽核計畫、稽核結果 Excel | 只有任務名稱/描述/指南三欄,或不碰指派 | 不動 |
| 下拉選項政策 | CLAUDE.md:選項進 system_menus |
關卡名稱是自由文字不是選項;「依角色」的角色清單是程式列舉(專案角色 enum),屬例外 |
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#E2F0F1','primaryTextColor':'#14201F','primaryBorderColor':'#0E7C86','secondaryColor':'#EEF2F3','secondaryTextColor':'#14201F','tertiaryColor':'#FBFCFC','tertiaryTextColor':'#14201F','lineColor':'#4A5A5C','textColor':'#14201F','mainBkg':'#E2F0F1','nodeBorder':'#0E7C86','nodeTextColor':'#14201F','edgeLabelBackground':'#FBFCFC','titleColor':'#14201F','clusterBkg':'#FBFCFC','clusterBorder':'#E4EAEB','actorBkg':'#E2F0F1','actorTextColor':'#14201F','actorBorder':'#0E7C86','actorLineColor':'#C7D1D2','signalColor':'#4A5A5C','signalTextColor':'#14201F','labelBoxBkgColor':'#EEF2F3','labelBoxBorderColor':'#C7D1D2','labelTextColor':'#14201F','loopTextColor':'#14201F','noteBkgColor':'#F6EBD5','noteTextColor':'#14201F','noteBorderColor':'#9C6B12','activationBkgColor':'#EEF2F3','activationBorderColor':'#C7D1D2','sequenceNumberColor':'#FFFFFF'}}}%%
erDiagram
review_step_groups ||--o{ review_step_group_items : "一組多關(公司設定)"
job_executions ||--o{ job_review_steps : "套組時複製成快照"
job_executions ||--o{ job_review_step_logs : "每次推進/退回一筆"
job_review_steps ||--o{ job_review_step_assignees : "PM 在規劃頁指派每關的人(可多人)"
review_step_groups {
int id PK
int tenant_id "租戶"
string name "組名稱"
text description
bool is_default "公司預設"
}
review_step_group_items {
int group_id FK
int seq "順序"
string name "關卡名稱(自由文字)"
text description
int[] back_to_seqs "允許退回到哪幾關"
}
job_executions {
int review_step_no "目前第幾關;null=沒套"
int review_group_id "來源組,只記錄"
}
job_review_steps {
int job_execution_id FK
int seq
string name
text description
int[] back_to_seqs
}
job_review_step_assignees {
int job_execution_id FK
int seq "第幾關"
int user_id "可多人"
}
job_review_step_logs {
int job_execution_id FK
int seq "在哪一關"
string action "submit / approve / reject / reopen"
int to_seq "退回到哪關"
int user_id
text note
timestamptz created_at
}
要點:
job_review_steps。之後改組、刪組都不影響已套的任務;不然會出現「指標在第 3 關、清單只剩 2 關」。complete_job 進入「結案」端點。job_review_step_assignees)。第 1 關(交證據)的人就是原本的任務指派人員(task_assignees),不另存一份。org_unit_id/RLS([[feedback_tenant_scoped_table_needs_org_unit_id]])。%%{init: {'theme':'base','themeVariables':{'primaryColor':'#E2F0F1','primaryTextColor':'#14201F','primaryBorderColor':'#0E7C86','secondaryColor':'#EEF2F3','secondaryTextColor':'#14201F','tertiaryColor':'#FBFCFC','tertiaryTextColor':'#14201F','lineColor':'#4A5A5C','textColor':'#14201F','mainBkg':'#E2F0F1','nodeBorder':'#0E7C86','nodeTextColor':'#14201F','edgeLabelBackground':'#FBFCFC','titleColor':'#14201F','clusterBkg':'#FBFCFC','clusterBorder':'#E4EAEB','actorBkg':'#E2F0F1','actorTextColor':'#14201F','actorBorder':'#0E7C86','actorLineColor':'#C7D1D2','signalColor':'#4A5A5C','signalTextColor':'#14201F','labelBoxBkgColor':'#EEF2F3','labelBoxBorderColor':'#C7D1D2','labelTextColor':'#14201F','loopTextColor':'#14201F','noteBkgColor':'#F6EBD5','noteTextColor':'#14201F','noteBorderColor':'#9C6B12','activationBkgColor':'#EEF2F3','activationBorderColor':'#C7D1D2','sequenceNumberColor':'#FFFFFF'}}}%%
sequenceDiagram
participant PM as 專案管理者
participant EX as 執行人
participant MG as 主管(第 2 關)
participant CS as 顧問(第 3 關)
participant BE as 後端
participant WF as BPMN 引擎
PM->>BE: 規劃頁套「標準三關」(複製快照、cur=1)
Note over WF: 專案啟動,方塊實體化成 PROCESSING(既有)
BE-->>EX: 通知「待你處理」(既有 notify_user_todo_job)
EX->>BE: 上傳證據、按「送審」
BE->>BE: cur=2、寫歷程 submit
BE-->>MG: 通知「待你審核」
MG->>BE: 看同一張卡的證據與留言,按「退回 → 第 1 關」+理由
BE->>BE: cur=1、寫歷程 reject
BE-->>EX: 通知「被退回」+理由
EX->>BE: 補證據、再送審
BE-->>MG: 通知
MG->>BE: 核可
BE->>BE: cur=3、寫歷程 approve
BE-->>CS: 通知
CS->>BE: 核可並結案
BE->>BE: cur=4(最後一關)
BE->>WF: complete_job()(既有)
WF->>WF: 下一方塊實體化、通知其執行人(既有)
關鍵接線只有三處:
/flow-engine/task/complete/<id>。complete_job,由它做 BPMN 推進與下一方塊通知——本案不重寫這段。reopen_job_execution 與 restart_from_first_station 結束時重設關卡。| 畫面 | 放哪 | 雛形 |
|---|---|---|
| 關卡列、動作區、審核歷程 | 任務卡(JobExecutionDrawer):關卡列在標頭下、標題列右上角一個時鐘圖示(角標顯示筆數,放在狀態標籤右邊),點開彈窗列時間/關卡/誰/核可或退回/理由;動作區在描述上方。歷程不常駐在抽屜內,避免資訊過多 |
頁 1 |
| 目前關卡欄、待我處理段 | 待辦任務頁(MyTasksView):欄在「狀態」右邊;段插在「全部」與「未開始」之間 |
頁 2 |
| 選流程、套用到其他任務 | 規劃頁任務表單:一個下拉「審核流程」+「套用到其他任務」按鈕,位置在週期設定之後 | 頁 3 |
| 任務關卡樣板管理 | 系統設定新頁「任務關卡樣板設定」:標題列+搜尋+表格(名稱/說明/關卡數/公司預設/已套用任務/操作,不放關卡預覽),點一列或「新增」開編輯 dialog,關卡預覽只在 dialog 內顯示;版型與專案列表統一 | 頁 4 |
UI 鐵律自檢:雛形 grep border-left 只命中三處 1px 結構邊線(抽屜左邊、工具列兩側),沒有粗色強調條。
✅ D1 — 流程不設負責人,每關由誰做是 PM 在規劃頁指派(決策者 2026-10-18 裁)
定案:系統層流程只是象徵性的關卡骨架(名稱、說明、順序、可退回到哪),不設負責人。PM 在規劃頁替任務指派人員時,跟現在一樣的操作,只是從一格變成每關一格,每格可多人。第 1 關(交證據)就是原本的任務指派人員。
理由:流程是公司層的範本,誰做是專案的事;沿用現有指派操作,PM 不用學新東西。
被排除:流程上填專案角色、跑到那關時查角色——要先在專案參與人員設角色才會生效,多一層間接、PM 看不出某關到底是誰。
✅ D2 — 畫面呈現「開始 → 1 → 2 → 3 → 結案」(決策者 2026-10-18 裁)
定案:開始、結案是流程圖的兩個端點,讓流程看起來完整;中間三關照舊(1 執行人交證據、2 主管審核、3 顧問審核)。第 1 關負責人固定任務執行人。
理由:純顯示,不影響資料模型;零關流程畫面上就是「開始 → 結案」,一眼看得出是直通不是壞掉。
✅ D3 — 作廢
D1 定案後每關由 PM 直接指派人,不需要系統自動找「執行人的部門主管」。
✅ D4 — 一關指派多人時,任一人核可就過(決策者 2026-10-18 裁)
定案:同一關指派多人時,第一個按核可或退回的人就算數;歷程記是誰簽的。
理由:全部都要簽等於會簽,要多一層「已簽幾個」的狀態,第一版不做。
✅ D5 — 任務一旦開始就不能改流程(決策者 2026-10-18 裁)
定案:任務開始(專案啟動、任務進入進行中)後,規劃頁的流程下拉鎖住;系統層改某條流程只影響還沒開始的任務——已套用的任務拿的是複製品。
理由:避免「主管正在審、流程被改掉第 2 關」的壞狀態。
✅ D11 — 流程建在系統層,各專案自己決定套到哪些任務(決策者 2026-10-18 裁)
定案:管理員在系統設定建好幾條審核流程(一條可設公司預設);各專案在規劃頁替任務選要套哪一條,並可「套用到其他任務」一次套多個。套用時把流程複製一份到任務身上。
理由:公司建一次、所有專案都能選,不用每個新專案重建;複製一份讓系統層改流程不影響已套的任務。放系統層或專案層的工作量相同(差別只在流程表掛 tenant_id 或 project_id),選系統層是看用法。
被排除:流程建在專案層——每個新專案都要重建或從他處複製,又要處理「從哪複製」。
✅ D12 — 不做單一任務微調,要不同流程就套不同條(決策者 2026-10-18 裁)
定案:任務套上流程後不能在任務上加減關、換負責人。要讓某些任務走不同的審核,就在系統層多建一條(例如「免審直通」=零關、「含法遵四關」)讓它套。
理由:微調會讓「這個任務到底走哪條」無從追查;多建一條流程是同樣效果、而且看得見。
✅ D6 — 退回時不清證據(決策者 2026-10-18 裁)
定案:退回後執行人在原有證據上補;歷程記退回理由。
理由:證據本來就可以多筆,標記「上一輪」是另一層資料。
✅ D7 — 沒選流程的任務:有公司預設就自動帶,沒設就零關(決策者 2026-10-18 裁)
定案:系統出廠內建一筆零關樣板「免審直通」,預設就勾它(seed migration 寫入、不可刪、不可加關)。所以裝好不動任何設定時,所有任務都是零關=現狀,這個功能對沒設定的客戶等於隱形。管理員自己把公司預設改成別的樣板,之後新啟動專案的任務才自動帶那個;已在跑的舊專案不回頭套。(決策者 2026-10-18 補裁:預設用 0 關,除非使用者自己改)
理由:客戶一設預設,新專案全部任務自動有審核;不設的客戶什麼都不會變。
✅ D8 — 批次完成:多關卡任務就是完成當下那一關(決策者 2026-10-18 裁)
定案:待辦頁勾多筆按「批次完成」,有關卡的任務推進當下那一關(執行人那關=送審、審核關=核可),各自寄信給下一關的人;零關任務照現在直接完成。只有當下那關的指派人勾得到。
理由:執行人一次交十筆、主管一次核可十筆都是常見動線;批次核可時沒有逐筆理由欄,要退回仍要逐筆開卡。
被排除:審核關不能批次——決策者裁示審核關也要能批次推進。
✅ D9 — 問卷任務第一版不能套流程(決策者 2026-10-18 裁)
定案:問卷任務維持問卷自己的審核(待審核/待補充說明),規劃頁的流程下拉對問卷任務不顯示;第二期再把問卷審核對到關卡上。
理由:一起併要動 jedi-survey 套件發版+FE 12 支檔,範圍翻倍。
✅ D10 — 資源庫任務範本不預設流程(決策者 2026-10-18 裁)
定案:第一版只有「公司預設」與「規劃頁替任務選」兩層,資源庫不加。
理由:FR-147 剛把資源庫任務三欄做完,再加一層要重碰那頁;需求明確再開第二期。
✅ D13 — 任務配置 Excel 只管第 1 關(決策者 2026-10-18 裁)
定案:規劃頁「匯出/匯入任務配置」Excel 的「指派人員」「參與部門」兩欄,意思改成第 1 關(=原本的指派人員);加一欄唯讀「任務關卡」顯示摘要(例:「標準三關(3 關,2 關已指派)」);第 2 關以後的人員與樣板選擇不進 Excel,一律在規劃頁彈窗設;「填寫說明」頁加一句「多關卡任務的審核關卡人員請到規劃頁設定」。零關任務(預設)格式與行為完全不變,舊檔照樣能匯入。任務已開始時匯入改第 1 關的人照舊放行(換人不改關卡結構);問卷審核者保留邏輯照舊。
理由:每個任務關數不同,攤成「第 N 關人員/部門」欄會讓欄數照最多的樣板開、大半空格,換樣板欄位位置還會跑;要大量派人的多半是第 1 關執行人,審核關通常是固定幾位主管顧問,彈窗設就夠。
被排除:(a) 每一關攤成欄。
✅ D14 — 改善計畫(POA&M)任務不套任務關卡樣板(決策者 2026-10-18 裁)
定案:改善任務不能套樣板,改善計畫頁與其 Excel 完全不動。
理由:改善任務是稽核結束後才產生,走另一條流程;一起套會擴大到改善計畫的指派、匯入與頁面。
| 順序 | 卡 | 範圍 | 看得到什麼 |
|---|---|---|---|
| 1 | ① 任務卡關卡列+推進/退回+歷程 | 三張新表 migration、任務新欄、推進/退回 app service(含通知、最後一關呼叫 complete_job)、三支端點、FE 三個子元件插進抽屜;先用 DEV 手灌一組關卡到一個任務驗畫面 |
一張卡三個身分走完送審→核可→結案,含退回 |
| 2 | ② 待辦任務頁 | 待辦查詢加「目前關卡」「負責人是我」、FE 欄與段 | 主管登入看「待我處理」 |
| 3 | ③ 系統設定任務關卡樣板 | 樣板兩張表、CRUD、FE 清單頁+編輯 dialog、ui_routes 選單 |
管理員建樣板 |
| 4 | ④ 規劃頁套流程+套用到其他任務 | 套用端點(複製快照)、批次套用端點、FE 下拉與按鈕、任務開始後鎖 | PM 替任務選流程 |
| 5 | ⑤ 退回重開+啟動帶預設+批次推進 | 兩處 reopen hook、啟動時帶公司預設流程(D7)、批次完成改成推進當下那一關(D8) | 退回重開回第一關;待辦頁勾三筆按批次完成,三筆各前進一關 |
| 6 | ⑥ 任務配置 Excel 對齊(D13) | 匯出加唯讀「任務關卡」欄、指派/部門兩欄註明為第 1 關、填寫說明頁加一句;匯入預覽表加唯讀欄;job_import_service.py 與 JobImportDialog.vue |
匯出一份含多關卡任務的檔,看到摘要欄;改第 1 關的人匯入,只動第 1 關、後面關卡的人不變 |
卡 1 動到 jedi-flow-engine 的 job_executions 加兩欄 → 走套件 path dependency、待發版;守衛測試與 RLS 形狀測試每卡 commit 前跑。