# 07_case_document_generate.md(完全版) # 報告書自動生成設計 ## 1. 概要 本仕様書は、案件管理システムにおける**報告書自動生成機能**を定義する。 - 入力データ(案件基本情報、聴取内容、分析、経費等)から各種報告書を自動生成 - 出力形式はWord(.docx)、PowerPoint(.pptx)、PDF - 一括出力および個別出力に対応 --- ## 2. 出力物一覧 | 出力物 | 形式 | テンプレート | 生成元データ | |--------|------|-------------|-------------| | 報告書本文 | Word(.docx)/ PDF | 案件種別別 | 全入力データ | | 現場写真報告書 | PowerPoint(.pptx)/ PDF | 1枚/ページ or 2枚/ページ | 画像+メタデータ | | ドライブレコーダ画像報告書 | PowerPoint(.pptx)/ PDF | 1枚/ページ or 2枚/ページ | 画像+メタデータ | | 経費明細書 | PDF | 固定 | 経費データ | | 請求書 | PDF | 案件種別別 | 案件基本情報+経費合計 | | 現場図 | PDF | - | アップロードファイル | | 説明書(聴取用) | PDF | 固定 | 聴取項目リスト | | 説明書(証拠用) | PDF | 固定(署名欄あり) | 聴取項目リスト | --- ## 3. 報告書本文テンプレート ### 3.1 事故調査用テンプレート(ACC) ``` ┌─────────────────────────────────────────────────────────────────┐ │ 調査報告書 │ ├─────────────────────────────────────────────────────────────────┤ │ 【表紙】 │ │ - 発行日(和暦) │ │ - 依頼先 │ │ - 案件番号 │ │ - 調査種目 │ ├─────────────────────────────────────────────────────────────────┤ │ 【目次】 │ │ Ⅰ 調査概要 ・・・ P1 │ │ Ⅱ 調査結果 ・・・ P2~P4 │ │ Ⅲ 調査内容 ・・・ P5~P │ │ Ⅳ 調査経緯 ・・・ 別紙 │ ├─────────────────────────────────────────────────────────────────┤ │ 【Ⅰ 調査概要】 │ │ - 依頼者 │ │ - 対象者 │ │ - 依頼内容 │ │ - 調査目的 │ │ - 調査方法 │ │ - 調査先 │ ├─────────────────────────────────────────────────────────────────┤ │ 【Ⅱ 調査結果】 │ │ - 結論 │ │ - 根拠(物理的証拠分析、科学的分析、矛盾点分析) │ │ - まとめ │ ├─────────────────────────────────────────────────────────────────┤ │ 【Ⅲ 調査内容】 │ │ - 対象者聴取(Q&A形式 or 12項目形式) │ │ - 近隣確認 │ ├─────────────────────────────────────────────────────────────────┤ │ 【添付資料一覧】 │ │ - 現場写真報告書 │ │ - ドライブレコーダ画像報告書 │ │ - 現場図 │ │ - 経費明細書 │ └─────────────────────────────────────────────────────────────────┘ ``` ### 3.2 受傷疑義用テンプレート(INJ) 事故調査用テンプレートに加え、以下のセクションを追加: ``` ├─────────────────────────────────────────────────────────────────┤ │ 【加害者側聴取内容】 │ │ - 氏名、確認日、確認方法 │ │ - 12項目聴取内容 │ ├─────────────────────────────────────────────────────────────────┤ │ 【被害者側聴取内容】 │ │ - 氏名、確認日、確認方法 │ │ - 12項目聴取内容 │ ├─────────────────────────────────────────────────────────────────┤ │ 【医師面談記録】 │ │ - 医療機関名、医師名、面談日 │ │ - 診断内容 │ │ - 治療方針 │ └─────────────────────────────────────────────────────────────────┘ ``` ### 3.3 嫌がらせ調査用テンプレート(HAR) ``` ┌─────────────────────────────────────────────────────────────────┐ │ 【Ⅰ 調査概要】 │ │ - 依頼者、対象者、依頼内容 │ ├─────────────────────────────────────────────────────────────────┤ │ 【Ⅱ 調査結果】 │ │ - 結論 │ │ - 証拠保全内容 │ │ - 防犯対策提案 │ ├─────────────────────────────────────────────────────────────────┤ │ 【Ⅲ 調査内容】 │ │ - 対象者聴取(自由Q&A形式) │ │ - 関係者確認 │ │ - 関係先確認 │ ├─────────────────────────────────────────────────────────────────┤ │ 【Ⅳ 法的措置に関する助言】 │ │ - 弁護士紹介 │ │ - 警察への届出状況 │ └─────────────────────────────────────────────────────────────────┘ ``` ### 3.4 簡易報告書テンプレート(ASS / 簡易) ``` ┌─────────────────────────────────────────────────────────────────┐ │ 調査報告書(簡易) │ ├─────────────────────────────────────────────────────────────────┤ │ 【調査概要】 │ │ - 依頼者、対象者、調査目的 │ ├─────────────────────────────────────────────────────────────────┤ │ 【調査結果】 │ │ - 確認対象 │ │ - 確認先 │ │ - 確認結果 │ ├─────────────────────────────────────────────────────────────────┤ │ 【添付資料】 │ │ - 写真 │ │ - 書類写し │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## 4. 生成フロー ### 4.1 一括出力フロー ``` ユーザーが「報告書出力」ボタンをクリック ↓ 出力オプション選択画面表示 ├─ 出力物選択(全選択/個別選択) ├─ 形式選択(Word/PPT/PDF) └─ レイアウト選択(写真: 1枚/ページ or 2枚/ページ) ↓ 「生成」ボタンクリック ↓ サーバー側で各報告書を生成 ↓ 生成完了後、ZIPファイルとして一括ダウンロード ↓ 案件ファイルとして保存(オプション) ``` ### 4.2 個別出力フロー ``` 各セクションに「出力」ボタンを配置 ├─ 報告書本文出力ボタン ├─ 写真報告書出力ボタン ├─ ドラレコ画像報告書出力ボタン ├─ 経費明細書出力ボタン └─ 請求書出力ボタン ↓ クリックで該当ファイルのみ生成・ダウンロード ``` --- ## 5. API仕様 ### 5.1 報告書本文生成API **エンドポイント**: `POST /master/api/generate_report.php` **リクエスト**: ```json { "case_id": "L01R0709001A", "type": "main", // "main" / "photos" / "driving_recorder" / "expense" / "invoice" / "statement" "format": "docx", // "docx" / "pdf" "layout": "2perpage" // 写真報告書のみ } ``` **レスポンス(成功)**: ```json { "success": true, "file_path": "/data/cases/L01R0709001A/reports/L01R0709001A_報告書.docx", "download_url": "/data/cases/L01R0709001A/reports/L01R0709001A_報告書.docx" } ``` **レスポンス(エラー)**: ```json { "success": false, "error": "必要なデータが不足しています: 聴取内容" } ``` ### 5.2 一括出力API **エンドポイント**: `POST /master/api/generate_all_reports.php` **リクエスト**: ```json { "case_id": "L01R0709001A", "options": { "formats": ["docx", "pdf"], "photo_layout": "2perpage", "include_driving_recorder": true, "save_to_case": true } } ``` **レスポンス(成功)**: ```json { "success": true, "files": [ { "name": "L01R0709001A_報告書.docx", "path": "...", "size": 245760 }, { "name": "L01R0709001A_報告書.pdf", "path": "...", "size": 389120 }, { "name": "L01R0709001A_現場写真報告書.pptx", "path": "...", "size": 512000 }, { "name": "L01R0709001A_ドラレコ画像報告書.pptx", "path": "...", "size": 423000 }, { "name": "L01R0709001A_経費明細書.pdf", "path": "...", "size": 45600 }, { "name": "L01R0709001A_請求書.pdf", "path": "...", "size": 38900 } ], "zip_url": "/data/cases/L01R0709001A/reports/L01R0709001A_reports.zip" } ``` --- ## 6. 生成ロジック ### 6.1 Word生成(報告書本文) - PHPライブラリ: `PhpOffice/PhpWord` - テンプレートファイル(.docx)にデータをマージ - または、HTML/CSSから変換(`html2docx`) **推奨**: テンプレートマージ方式(レイアウトの一貫性) ### 6.2 PowerPoint生成(写真報告書) - PHPライブラリ: `PhpOffice/PhpPresentation` - テンプレートスライドに画像を配置 - タイトル、説明文、撮影日等をテキストボックスに挿入 ### 6.3 PDF生成 - 既存の `print.js` を活用 - ブラウザの印刷機能でPDF出力 - または、サーバー側で `wkhtmltopdf` や `mpdf` を使用 --- ## 7. 出力ファイルの保存先 | 種別 | 保存先 | |------|--------| | 報告書本文 | `/backoffice/data/cases/[案件番号]/reports/[案件番号]_報告書.docx` | | 現場写真報告書 | `/backoffice/data/cases/[案件番号]/reports/[案件番号]_現場写真報告書.pptx` | | ドラレコ画像報告書 | `/backoffice/data/cases/[案件番号]/reports/[案件番号]_ドラレコ画像報告書.pptx` | | 経費明細書 | `/backoffice/data/cases/[案件番号]/reports/[案件番号]_経費明細書.pdf` | | 請求書 | `/backoffice/data/cases/[案件番号]/reports/[案件番号]_請求書.pdf` | | 説明書(聴取用) | `/backoffice/data/cases/[案件番号]/reports/[案件番号]_説明書_聴取用.pdf` | | 説明書(証拠用) | `/backoffice/data/cases/[案件番号]/reports/[案件番号]_説明書_証拠用.pdf` | | ZIP一括 | `/backoffice/data/cases/[案件番号]/reports/[案件番号]_reports.zip` | --- ## 8. 印刷仕様 - `02_print_spec.md` に準拠する - 報告書本文:A4縦、左綴じ - 写真報告書:A4横、天綴じ - 経費明細書:A4縦、左綴じ - 請求書:A4縦、左綴じ --- ## 9. 日付表示 - `03_ui_design/01_design_guideline.md` の日付表記ルールに準拠する - 報告書本文:和暦(令和7年2月12日) - 請求書:和暦(令和7年12月10日) - 経費明細書:和暦(令和7年10月19日) --- ## 10. UIデザイン - `03_ui_design/01_design_guideline.md` に準拠する - 出力ボタンは「PDF出力」「印刷」の2つを分ける --- ## 11. エラーハンドリング | エラー | 表示メッセージ | 対応 | |--------|--------------|------| | 必要なデータ不足 | 「聴取内容が入力されていません。先に入力してください。」 | 入力画面への誘導 | | 画像なし(写真報告書) | 「写真がアップロードされていません。」 | アップロード画面への誘導 | | 経費なし | 「経費が入力されていません。経費明細書は生成されません。」 | 警告表示、続行 | | 生成失敗 | 「報告書の生成に失敗しました。しばらく経ってから再試行してください。」 | 再試行ボタン表示 | --- ## 12. 関連仕様書 | # | 仕様書 | 内容 | |---|--------|------| | 1 | `01_case_management.md` | 案件管理全体設計 | | 2 | `02_case_data_structure.md` | 案件データ構造 | | 3 | `03_case_type_master.md` | 案件種別マスタ設計 | | 4 | `04_case_input_screens.md` | 入力画面設計 | | 6 | `06_case_photo_report.md` | 写真/画像報告書生成設計 | | 9 | `09_case_accounting_link.md` | 会計連動設計 | | 10 | `10_case_export.md` | 出力仕様 | --- ## 13. 改訂履歴 | 日付 | 版 | 担当 | 内容 | 理由・影響範囲 | |------|----|------|------|--------------| | 2026-03-24 | 1.0 | 案件管理担当 | 初版作成 | 報告書自動生成機能の定義 | | 2026-03-27 | 1.1 | 案件管理担当 | 印刷仕様、日付表示を共通仕様参照に修正 | 共通仕様との整合性確保 |