本卡屬 FR-145(母卡見子卡清單回填),卡 1:稽核作業清單加下載、BE 選檔端點、FR-142 Word 報告加改善計畫節。可先派,只靠 FR-141/142;改善計畫資料若 FR-143 未落地走「尚未送出」分支。
「稽核作業」清單(FR-142.8 那張一列一個稽核次的表)每列最右加一欄「稽核報告」:已結案或矯正中的稽核次放一顆「下載報告」下拉,三個選項——稽核報告 Word、稽核報告 PDF、Excel 工作表;稽核中的列印「結案後開放」。Word 是 FR-142 既有報告(第 1~7 章+逐評估目標附件)在附件後加一節「改善計畫」,列每條不符合的改善任務、執行人員、到期日、改善措施。Excel 由後端決定給哪份:這次有送出改善計畫就給改善計畫工作表(含全部評估目標),沒有就給稽核結果工作表。
app/flow_control/service/ar_docx_generator.py(192 行):generate() :68 渲染一~七段後呼叫 _append_record_table :85 加橫式附件;_repeat_header :179、_landscape_section :187 可複用。app/flow_control/service/ar_report_export_service.py(135 行)組 ArReportModel;報告名 :75-77 已帶「第 N 次內部/外部稽核報告」。app/flow_control/service/ar_workbook_export_service.py:FORMATS=("xlsx","docx","pdf","zip"),export(round_uid, fmt, curr_user_id, pass_uid, locale, with_findings)。api/project/routes/audit_round_route.py(…/ar/export?format=,:224/:306 附近),守門沿用。jedi_compliance_audit/app/service/poam_app_service.py);未落地時本卡先做 pending 分支,留一個 poam_rows 取值函式待接。a4a86f0a「稽核作業」表格;歸屬判準 project_participants role in (auditor, manager, reviewer)。app/flow_control/service/ar_docx_generator.py:68 generate():在 _append_record_table 之後加一行呼叫新節
app/flow_control/service/ar_docx_generator.py:85 _append_record_table:橫式附件,新節在它後面、直式
app/flow_control/service/ar_report_export_service.py 組 ArReportModel:加 poam_state、poam_rows
app/flow_control/service/ar_workbook_export_service.py export():Excel 稽核結果版
api/project/routes/audit_round_route.py AR 匯出 route 旁加新 route
compliance-manager-fe/src/views/…(稽核作業清單元件,FR-142.8) 加「稽核報告」欄
GET /audit-round/<round_uid>/pass/<pass_uid>/report?format=docx|pdf|xlsx。app service 層:pass.status 不在 (closed, remediation) → 412(新 error code GRC_412xxx 照 common/code/grc_error_code.py 序號)。先查再寫:守門與 pass 解析沿用 …/ar/export 那支的做法,不另寫。poam_workbook_export(…, all_objectives=True)(卡 6 開關;未落地先回稽核結果版並在回應 header X-Workbook-Kind: ar),否則 ar_workbook_export_service.export(fmt='xlsx')。docx/pdf → ar_report_export_service 組 model 加 poam_state(has/none/pending:none 看 AR 最終 not_met==0,不看 POA&M)與 poam_rows。app/flow_control/service/ar_docx_poam_section.py:append_poam_section(doc, model)——直式新節、標題「改善計畫」、三態文案(有=五欄表:控制項/改善任務/執行人員/到期日/改善措施;無=「本次稽核無不符合項目,無改善計畫」;尚未送出=「改善計畫尚未送出」)。ar_docx_generator.generate() 只加一行呼叫,不往 192 行檔塞邏輯。report_available: bool(closed/remediation)、workbook_kind: 'poam'|'ar'。report_available 放「下載報告」下拉(btn btn-sm 帶 pi-download+pi-angle-down,選單元件照 FR-141 稽核計畫頁 menu-wrap/menu-item),三項:稽核報告(Word)、稽核報告(PDF)、依 workbook_kind 顯示「改善計畫工作表(Excel)」或「稽核結果工作表(Excel)」;否則印「結案後開放」灰字。對照雛形 prototype/audit-pass-exports.html。append_poam_section 三態各一個 case:has 表列數=rows 數;none/pending 文案正確且無表。