本卡屬 FR-148(母卡見上方連結),第 ⑥ 棒:規劃頁「匯出/匯入任務配置」Excel。依賴 ①④。
規劃頁的「任務配置」Excel 有「指派人員」「參與部門」兩欄。任務有關卡之後,這兩欄的意思改成第 1 關(執行人);第 2 關以後的人與樣板選擇不進 Excel,一律在規劃頁彈窗設。Excel 尾端多一欄唯讀「任務關卡」,例如「標準三關(3 關,2 關已指派)」,讓人知道這個任務後面還有關卡。零關任務(預設)的格式與行為完全不變,舊檔照樣能匯入。
app/flow_control/service/job_import_service.py 492 行
:47 EXTRA_COLUMNS = 任務類型、指派人員、參與部門、設備(前九欄是 task_guidance_workbook 共用格式,依位置讀)
:224 _validate_import / :335 revalidate_items / :415 confirm_import(寫回 task_assignees,保留 is_approver)
app/flow_control/service/task_guidance_workbook.py HEADERS、填寫說明頁 _GUIDE_ROWS
infra/readmodel/tasks/job_export_query.py 匯出查詢(274 行)
compliance-manager-fe/src/components/grc/JobImportDialog.vue 443 行,預覽表欄 :309~
EXTRA_COLUMNS 尾端加「任務關卡」一欄(灰底唯讀),值=「<樣板名>(N 關,M 關已指派)」或「免審直通」;問卷任務留空。「指派人員」「參與部門」欄標頭不改字(相容舊檔)。task_guidance_workbook._GUIDE_ROWS)加一列:「多關卡任務:指派人員/參與部門是第 1 關(執行人);審核關卡的人員請到規劃頁的任務關卡設定」。注意這份格式是資源庫共用的——只在專案端那份加,不要影響資源庫匯出(先查 _GUIDE_ROWS 有沒有分專案/資源庫兩份)。headers[:len(HEADER_LABELS)] != HEADER_LABELS(:230)要能接受「有新欄」與「沒有新欄(舊檔)」兩種;第 1 關寫回 task_assignees 的既有邏輯不變;任務已開始時換第 1 關的人照舊放行,新加的人若第 1 關是當下那關要寄信(update_job 既有行為會處理)。JobImportDialog.vue 預覽表尾端加唯讀欄。feature/FR-139。開工先 git branch --show-current 確認,不對就停下問決策者,不要切 branch。git add <檔名>(禁 -am、禁 git add .;只 add 自己改的檔,別人已 staged 的不要帶走);本卡 append 白話補充(做了什麼、關鍵決定、commit hash、驗證方式、手測清單);狀態改「修正待驗證」。push 等令。<script> 函式 40 行)。動到已超標的檔,新邏輯一律新開檔再一行呼叫,不准往裡塞。開工先 wc -l 目標檔。