# ERP財務管理システム バッチ設計書

## 概要・目的

本ドキュメントは、ERP財務管理システムにおけるバッチ処理の設計仕様を定義するものです。システムの自動処理要件を満たすために必要なバッチ処理の一覧、各バッチの詳細な仕様、処理フロー、データ仕様、エラー処理方法などを明確にし、開発および運用の指針とすることを目的としています。

本システムでは、売上データの取得から請求書の生成・配信、債権管理、入金消込、仕訳データ生成に至るまでの一連の財務プロセスを自動化するバッチ処理群を実装します。これにより、業務効率の向上、人為的ミスの削減、リアルタイムな財務状況の把握を実現します。

## バッチ一覧

| No | 機能名 | 機能概要 | 実行頻度 | 実行時刻 | 依存関係 |
|----|--------|----------|----------|----------|----------|
| 1 | 売上データ取得 | 外部システムから売上情報を自動取得し、システムに取り込む | 日次 | 毎日 01:00 | なし |
| 2 | 請求書データ自動生成 | 検証済みの売上データから請求書データを自動生成する | 日次 | 毎日 03:00 | 売上データ取得 |
| 3 | 電子請求書生成 | 請求書データから電子請求書(PDF/XML)を生成する | 日次 | 毎日 05:00 | 請求書データ自動生成 |
| 4 | 電子請求書配信 | 生成した電子請求書を顧客に自動配信する | 日次 | 毎日 06:00 | 電子請求書生成 |
| 5 | 請求書発行記録更新 | 請求書の発行状況を記録・更新する | 日次 | 毎日 07:00 | 電子請求書配信 |
| 6 | 債権情報自動更新 | 請求書発行情報から債権情報を自動的に更新する | 日次 | 毎日 08:00 | 請求書発行記録更新 |
| 7 | 未入金情報自動抽出 | 期日を過ぎた未入金の請求書を自動抽出する | 日次 | 毎日 09:00 | 債権情報自動更新 |
| 8 | 自動催促メール送信 | 未入金案件に対して自動催促メールを送信する | 日次 | 毎日 10:00 | 未入金情報自動抽出 |
| 9 | 銀行データ自動取得 | 銀行システムから入金データを自動取得する | 日次 | 毎日 07:00 | なし |
| 10 | 自動消込処理 | 入金データと請求書データを自動照合し消込する | 日次 | 毎日 09:00 | 銀行データ自動取得、債権情報自動更新 |
| 11 | AI照合処理 | 通常の照合ロジックでは特定できない入金データをAIにより照合する | 日次 | 毎日 10:00 | 自動消込処理 |
| 12 | 仕訳データ自動生成 | 消込結果から会計仕訳データを自動生成する | 日次 | 毎日 12:00 | 自動消込処理、AI照合処理 |

## 各バッチ詳細

### 1. 売上データ取得

#### 1-1 機能概要
売上情報を外部システムから自動取得し、システムに取り込む（Create）機能。定期的に実行され、新規売上データを識別して取得する。

#### 1-2 処理フロー
1. 外部システムへの接続確立
2. 前回取得時のタイムスタンプ情報の取得
3. 前回取得時以降に登録・更新された売上データの抽出
4. 売上データの取得
5. データ形式の変換・バリデーション
6. システムへの登録
7. 取得結果のログ出力
8. 最終取得日時の更新

#### 1-3 入力データ仕様
- 外部システム連携設定情報（接続先URL、認証情報、タイムアウト設定等）
- 前回データ取得時のタイムスタンプ情報

#### 1-4 出力データ仕様
- 売上データ
  - 売上ID（一意の識別子）
  - 顧客ID
  - 売上日
  - 売上金額
  - 税額
  - 売上内訳（商品/サービスID、数量、単価等）
  - 取引条件（支払条件、支払期限等）
  - 部門情報
  - 担当者情報
  - 登録日時
  - 更新日時
  - 取得ステータス（「未検証」）

#### 1-5 エラー処理
- 接続エラー：3回まで30秒間隔でリトライ。その後管理者へメール通知
- データ形式エラー：エラーログに記録し、エラーデータをエラーディレクトリに退避
- システム登録エラー：トランザクションをロールバックし、エラーログに記録

#### 1-6 実行条件
- 前提条件：外部システムが稼働中であること
- 排他条件：同一バッチが実行中でないこと

#### 1-7 ログ出力仕様
- 開始・終了ログ
- 取得件数サマリ（取得成功件数、エラー件数）
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象データID）
- 処理時間

#### 1-8 リトライ設計
- 外部システム接続エラー時：最大3回、30秒間隔でリトライ
- システム内部エラー時：リトライなし、翌日の定期実行で再処理

### 2. 請求書データ自動生成

#### 2-1 機能概要
検証済みの売上データから請求書データを自動生成（Create）する機能。顧客マスタの請求条件に基づいて集計・分割し、請求書データを作成する。

#### 2-2 処理フロー
1. 検証済み売上データの抽出
2. 顧客マスタの請求条件取得
3. 請求条件に基づく売上データのグルーピング
4. 請求サイクルに応じた請求期間の設定
5. 請求書データの生成
6. 請求書番号の採番
7. 請求書データの保存
8. 処理結果のログ出力

#### 2-3 入力データ仕様
- 検証済み売上データ
  - 売上ID
  - 顧客ID
  - 売上日
  - 売上金額
  - 税額
  - 売上内訳
  - 検証ステータス（「検証済」のみ対象）
- 顧客マスタ
  - 顧客ID
  - 請求サイクル（月次/半月/週次等）
  - 締日設定
  - 請求書送付先情報
  - 支払条件（支払期限日数等）
  - 請求書分割条件（部門別/プロジェクト別等）

#### 2-4 出力データ仕様
- 請求書データ
  - 請求書ID（一意の識別子）
  - 顧客ID
  - 請求先情報
  - 請求日
  - 支払期限
  - 請求金額合計
  - 税額合計
  - 請求明細（売上ID、明細内容、金額等）
  - 請求書ステータス（「未発行」）
  - 作成日時

#### 2-5 エラー処理
- 顧客マスタ不整合エラー：エラーログに記録し、対象顧客の処理をスキップ
- 請求書生成エラー：エラーログに記録し、対象顧客の処理をスキップ
- システムエラー：トランザクションをロールバックし、エラーログに記録

#### 2-6 実行条件
- 前提条件：検証済みの売上データが存在すること
- 排他条件：同一バッチが実行中でないこと

#### 2-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理顧客数、生成請求書数、エラー件数）
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象顧客ID）
- 処理時間

#### 2-8 リトライ設計
- システムエラー時：リトライなし、翌日の定期実行で再処理
- 個別顧客処理エラー：当該顧客のみスキップし、他顧客の処理は継続

### 3. 電子請求書生成

#### 3-1 機能概要
請求書データから電子請求書（PDF/XML）を生成する機能。請求書テンプレートを適用し、電子署名を付与する。

#### 3-2 処理フロー
1. 未発行の請求書データの抽出
2. 顧客マスタから電子請求書フォーマット情報の取得
3. 請求書テンプレートの適用
4. 電子請求書（PDF/XML）の生成
5. 電子署名の付与（該当する場合）
6. 生成した電子請求書の保存
7. 請求書データのステータス更新（「発行待ち」）
8. 処理結果のログ出力

#### 3-3 入力データ仕様
- 請求書データ
  - 請求書ID
  - 顧客ID
  - 請求先情報
  - 請求日
  - 支払期限
  - 請求金額合計
  - 税額合計
  - 請求明細
  - 請求書ステータス（「未発行」のみ対象）
- 請求書テンプレートマスタ
  - テンプレートID
  - テンプレート名
  - テンプレートファイル（PDF/XMLテンプレート）
  - 会社ロゴ
  - 固定文言情報
- 電子署名情報
  - 署名証明書
  - 秘密鍵

#### 3-4 出力データ仕様
- 電子請求書ファイル
  - ファイル名：「請求書番号_顧客ID_発行日.pdf/xml」形式
  - ファイル形式：PDF/XML
  - 格納先：請求書保存ディレクトリ
- 更新された請求書データ
  - 請求書ステータス：「発行待ち」
  - 電子請求書ファイルパス

#### 3-5 エラー処理
- テンプレート適用エラー：エラーログに記録し、対象請求書の処理をスキップ
- 電子署名エラー：エラーログに記録し、対象請求書の処理をスキップ
- ファイル保存エラー：エラーログに記録し、対象請求書の処理をスキップ

#### 3-6 実行条件
- 前提条件：未発行の請求書データが存在すること
- 排他条件：同一バッチが実行中でないこと

#### 3-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理請求書数、生成成功件数、エラー件数）
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象請求書ID）
- 処理時間

#### 3-8 リトライ設計
- システムエラー時：リトライなし、翌日の定期実行で再処理
- 個別請求書処理エラー：当該請求書のみスキップし、他請求書の処理は継続

### 4. 電子請求書配信

#### 4-1 機能概要
生成した電子請求書を顧客に自動配信する機能。配信方法（メール/ポータル/EDI）は顧客マスタの設定に従う。

#### 4-2 処理フロー
1. 発行待ちの請求書データの抽出
2. 顧客マスタから配信方法情報の取得
3. 配信方法に応じた処理分岐
   a. メール配信の場合：メールテンプレート適用、添付ファイル設定、送信
   b. ポータル配信の場合：ポータルへのアップロード、通知設定
   c. EDI配信の場合：EDIシステムへのデータ連携
4. 配信結果の記録
5. 請求書データのステータス更新（「発行済」）
6. 処理結果のログ出力

#### 4-3 入力データ仕様
- 請求書データ
  - 請求書ID
  - 顧客ID
  - 請求先情報
  - 電子請求書ファイルパス
  - 請求書ステータス（「発行待ち」のみ対象）
- 顧客マスタ
  - 顧客ID
  - 配信方法設定（メール/ポータル/EDI）
  - 配信先情報（メールアドレス、ポータルアカウント、EDI接続情報等）
- メールテンプレート
  - テンプレートID
  - 件名テンプレート
  - 本文テンプレート

#### 4-4 出力データ仕様
- 配信結果データ
  - 配信ID
  - 請求書ID
  - 配信方法
  - 配信先
  - 配信日時
  - 配信ステータス（成功/失敗）
  - エラー情報（失敗時）
- 更新された請求書データ
  - 請求書ステータス：「発行済」
  - 発行日時

#### 4-5 エラー処理
- メール送信エラー：3回までリトライ後、エラーログに記録
- ポータルアップロードエラー：3回までリトライ後、エラーログに記録
- EDI連携エラー：3回までリトライ後、エラーログに記録
- 配信先情報不備：エラーログに記録し、管理者へ通知

#### 4-6 実行条件
- 前提条件：発行待ちの請求書データと対応する電子請求書ファイルが存在すること
- 排他条件：同一バッチが実行中でないこと

#### 4-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理請求書数、配信成功件数、エラー件数）
- 配信方法別件数（メール/ポータル/EDI別）
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象請求書ID）
- 処理時間

#### 4-8 リトライ設計
- 配信エラー時：最大3回、5分間隔でリトライ
- リトライ後も失敗の場合：エラー状態で記録し、翌日の定期実行で再処理

### 5. 請求書発行記録更新

#### 5-1 機能概要
請求書の発行状況を記録・更新（Update）する機能。発行日時、配信方法、配信先、既読状況などを管理する。

#### 5-2 処理フロー
1. 発行済み請求書データの抽出
2. 配信結果データの取得
3. 請求書発行記録の作成・更新
4. 既読状況の確認（ポータル配信の場合）
5. 請求書発行記録の保存
6. 処理結果のログ出力

#### 5-3 入力データ仕様
- 請求書データ
  - 請求書ID
  - 顧客ID
  - 請求書ステータス（「発行済」のみ対象）
  - 発行日時
- 配信結果データ
  - 配信ID
  - 請求書ID
  - 配信方法
  - 配信先
  - 配信日時
  - 配信ステータス
- ポータル既読情報（ポータル配信の場合）
  - 請求書ID
  - 閲覧日時
  - 閲覧ユーザー情報

#### 5-4 出力データ仕様
- 請求書発行記録
  - 記録ID
  - 請求書ID
  - 発行日時
  - 配信方法
  - 配信先
  - 配信ステータス
  - 既読状況（既読/未読）
  - 既読日時
  - 更新日時

#### 5-5 エラー処理
- データ不整合エラー：エラーログに記録し、対象請求書の処理をスキップ
- 既読情報取得エラー：エラーログに記録し、既読状況を「未確認」として処理継続
- システムエラー：トランザクションをロールバックし、エラーログに記録

#### 5-6 実行条件
- 前提条件：発行済みの請求書データと配信結果データが存在すること
- 排他条件：同一バッチが実行中でないこと

#### 5-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理請求書数、記録更新件数、エラー件数）
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象請求書ID）
- 処理時間

#### 5-8 リトライ設計
- システムエラー時：リトライなし、翌日の定期実行で再処理
- 個別請求書処理エラー：当該請求書のみスキップし、他請求書の処理は継続

### 6. 債権情報自動更新

#### 6-1 機能概要
請求書発行情報から債権情報を自動的に更新（Create/Update）する機能。請求日、入金予定日、債権額などを債権管理台帳に反映する。

#### 6-2 処理フロー
1. 発行済み請求書データの抽出
2. 請求書発行記録の取得
3. 債権情報の存在確認
   a. 存在する場合：債権情報の更新
   b. 存在しない場合：新規債権情報の作成
4. 入金予定日の計算（請求日＋支払条件の日数）
5. 債権情報の保存
6. 処理結果のログ出力

#### 6-3 入力データ仕様
- 請求書データ
  - 請求書ID
  - 顧客ID
  - 請求日
  - 請求金額合計
  - 支払条件
  - 請求書ステータス（「発行済」のみ対象）
- 請求書発行記録
  - 記録ID
  - 請求書ID
  - 発行日時
  - 配信状況
- 既存の債権情報（更新の場合）
  - 債権ID
  - 請求書ID
  - 顧客ID
  - 債権額
  - 入金予定日
  - 債権ステータス

#### 6-4 出力データ仕様
- 債権情報
  - 債権ID（一意の識別子）
  - 請求書ID
  - 顧客ID
  - 債権額
  - 請求日
  - 入金予定日
  - 債権ステータス（「未入金」）
  - 作成日時
  - 更新日時

#### 6-5 エラー処理
- データ不整合エラー：エラーログに記録し、対象請求書の処理をスキップ
- 入金予定日計算エラー：デフォルト値（請求日+30日）を設定し、処理継続
- システムエラー：トランザクションをロールバックし、エラーログに記録

#### 6-6 実行条件
- 前提条件：発行済みの請求書データと請求書発行記録が存在すること
- 排他条件：同一バッチが実行中でないこと

#### 6-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理請求書数、新規作成債権数、更新債権数、エラー件数）
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象請求書ID）
- 処理時間

#### 6-8 リトライ設計
- システムエラー時：リトライなし、翌日の定期実行で再処理
- 個別請求書処理エラー：当該請求書のみスキップし、他請求書の処理は継続

### 7. 未入金情報自動抽出

#### 7-1 機能概要
期日を過ぎた未入金の請求書を自動抽出する機能。入金予定日と現在日を比較し、未入金案件をリストアップする。

#### 7-2 処理フロー
1. 債権情報の抽出（ステータスが「未入金」）
2. 入金予定日と現在日の比較
3. 期日超過の債権を抽出
4. 期日超過日数による分類（30日以内/30-60日/60-90日/90日以上）
5. 未入金情報の作成・更新
6. 処理結果のログ出力

#### 7-3 入力データ仕様
- 債権情報
  - 債権ID
  - 請求書ID
  - 顧客ID
  - 債権額
  - 入金予定日
  - 債権ステータス（「未入金」のみ対象）
- 入金記録
  - 入金ID
  - 請求書ID
  - 入金日
  - 入金額
  - 入金ステータス

#### 7-4 出力データ仕様
- 未入金情報
  - 未入金ID（一意の識別子）
  - 債権ID
  - 請求書ID
  - 顧客ID
  - 債権額
  - 入金予定日
  - 期日超過日数
  - 期日超過区分（30日以内/30-60日/60-90日/90日以上）
  - 最終催促日
  - 催促回数
  - 作成日時
  - 更新日時

#### 7-5 エラー処理
- データ不整合エラー：エラーログに記録し、対象債権の処理をスキップ
- 日付計算エラー：エラーログに記録し、対象債権の処理をスキップ
- システムエラー：トランザクションをロールバックし、エラーログに記録

#### 7-6 実行条件
- 前提条件：未入金の債権情報が存在すること
- 排他条件：同一バッチが実行中でないこと

#### 7-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理債権数、期日超過債権数、期日超過区分別件数、エラー件数）
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象債権ID）
- 処理時間

#### 7-8 リトライ設計
- システムエラー時：リトライなし、翌日の定期実行で再処理
- 個別債権処理エラー：当該債権のみスキップし、他債権の処理は継続

### 8. 自動催促メール送信

#### 8-1 機能概要
未入金案件に対して自動催促メールを送信する機能。催促ルールに基づき、期日超過日数に応じたテンプレートでメールを送信する。

#### 8-2 処理フロー
1. 未入金情報の抽出
2. 催促ルールマスタから催促条件の取得
3. 催促条件に合致する未入金案件の抽出
4. 顧客マスタから連絡先情報の取得
5. 期日超過区分に応じたメールテンプレートの選択
6. メールテンプレートの適用
7. 催促メールの送信
8. 催促履歴の記録
9. 未入金情報の更新（最終催促日、催促回数）
10. 処理結果のログ出力

#### 8-3 入力データ仕様
- 未入金情報
  - 未入金ID
  - 債権ID
  - 請求書ID
  - 顧客ID
  - 債権額
  - 入金予定日
  - 期日超過日数
  - 期日超過区分
  - 最終催促日
  - 催促回数
- 催促ルールマスタ
  - ルールID
  - 期日超過区分
  - 催促間隔日数
  - テンプレートID
  - 催促優先度
- 顧客マスタ
  - 顧客ID
  - 連絡先担当者
  - メールアドレス
  - 催促除外フラグ
- メールテンプレート
  - テンプレートID
  - 件名テンプレート
  - 本文テンプレート
  - 差出人設定

#### 8-4 出力データ仕様
- 催促履歴
  - 催促ID（一意の識別子）
  - 未入金ID
  - 請求書ID
  - 顧客ID
  - 催促方法（「メール」）
  - 催促先
  - 催促日時
  - 使用テンプレートID
  - 催促内容
  - 送信結果（成功/失敗）
  - エラー情報（失敗時）
- 更新された未入金情報
  - 最終催促日：現在日
  - 催促回数：インクリメント

#### 8-5 エラー処理
- 連絡先情報不備：エラーログに記録し、対象未入金案件の処理をスキップ
- メール送信エラー：3回までリトライ後、エラーログに記録
- システムエラー：トランザクションをロールバックし、エラーログに記録

#### 8-6 実行条件
- 前提条件：催促条件に合致する未入金情報が存在すること
- 排他条件：同一バッチが実行中でないこと
- 時間制約：営業時間内（9:00-18:00）のみ実行

#### 8-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理未入金案件数、催促メール送信数、送信成功数、送信失敗数）
- 期日超過区分別送信件数
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象未入金ID）
- 処理時間

#### 8-8 リトライ設計
- メール送信エラー時：最大3回、1分間隔でリトライ
- リトライ後も失敗の場合：エラー状態で記録し、翌日の定期実行で再処理

### 9. 銀行データ自動取得

#### 9-1 機能概要
銀行システムから入金データを自動取得（Create）する機能。定期的に実行され、新規入金データを識別して取得する。

#### 9-2 処理フロー
1. 銀行口座マスタから接続情報の取得
2. 銀行システムへの接続確立
3. 前回取得時のタイムスタンプ情報の取得
4. 前回取得時以降の入金データの抽出
5. 入金データの取得
6. データ形式の変換・バリデーション
7. システムへの登録
8. 取得結果のログ出力
9. 最終取得日時の更新

#### 9-3 入力データ仕様
- 銀行口座マスタ
  - 口座ID
  - 銀行名
  - 支店名
  - 口座種別
  - 口座番号
  - オンラインバンキング接続情報
  - API連携設定
- 前回データ取得時のタイムスタンプ情報

#### 9-4 出力データ仕様
- 銀行入金データ
  - 入金ID（一意の識別子）
  - 口座ID
  - 取引日
  - 入金額
  - 振込依頼人名
  - 振込依頼人口座情報
  - 振込メッセージ
  - 取引種別
  - 取得日時
  - 消込ステータス（「未消込」）

#### 9-5 エラー処理
- 接続エラー：3回まで30秒間隔でリトライ。その後管理者へメール通知
- データ形式エラー：エラーログに記録し、エラーデータをエラーディレクトリに退避
- システム登録エラー：トランザクションをロールバックし、エラーログに記録

#### 9-6 実行条件
- 前提条件：銀行システムが稼働中であること
- 排他条件：同一バッチが実行中でないこと

#### 9-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理口座数、取得入金データ数、エラー件数）
- 口座別取得件数
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象口座ID）
- 処理時間

#### 9-8 リトライ設計
- 銀行システム接続エラー時：最大3回、30秒間隔でリトライ
- システム内部エラー時：リトライなし、翌日の定期実行で再処理

### 10. 自動消込処理

#### 10-1 機能概要
入金データと請求書データを自動照合し消込（Update）する機能。入金額、入金日、振込名義などから対応する請求書を特定し、消込処理を行う。

#### 10-2 処理フロー
1. 未消込の銀行入金データの抽出
2. 債権情報の抽出（ステータスが「未入金」）
3. 照合条件の設定（完全一致/金額一致/名義部分一致等）
4. 照合条件に基づく入金データと債権情報の照合
5. 照合成功時：消込情報の作成
6. 債権情報のステータス更新（「入金済」）
7. 銀行入金データの消込ステータス更新（「消込済」）
8. 照合失敗時：AI照合処理へ送信
9. 処理結果のログ出力

#### 10-3 入力データ仕様
- 銀行入金データ
  - 入金ID
  - 口座ID
  - 取引日
  - 入金額
  - 振込依頼人名
  - 振込メッセージ
  - 消込ステータス（「未消込」のみ対象）
- 債権情報
  - 債権ID
  - 請求書ID
  - 顧客ID
  - 顧客名
  - 債権額
  - 債権ステータス（「未入金」のみ対象）
- 顧客マスタ
  - 顧客ID
  - 顧客名
  - 振込名義バリエーション

#### 10-4 出力データ仕様
- 消込情報
  - 消込ID（一意の識別子）
  - 入金ID
  - 債権ID
  - 請求書ID
  - 顧客ID
  - 入金額
  - 消込日
  - 消込方法（「自動」）
  - 消込ステータス（「完了」）
  - 作成日時
- 更新された債権情報
  - 債権ステータス：「入金済」
  - 入金日：取引日
- 更新された銀行入金データ
  - 消込ステータス：「消込済」
  - 関連請求書ID

#### 10-5 エラー処理
- データ不整合エラー：エラーログに記録し、対象入金データの処理をスキップ
- 照合失敗：AI照合処理へ送信
- システムエラー：トランザクションをロールバックし、エラーログに記録

#### 10-6 実行条件
- 前提条件：未消込の銀行入金データと未入金の債権情報が存在すること
- 排他条件：同一バッチが実行中でないこと

#### 10-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理入金データ数、消込成功件数、照合失敗件数、エラー件数）
- 照合条件別成功件数
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象入金ID）
- 処理時間

#### 10-8 リトライ設計
- システムエラー時：リトライなし、翌日の定期実行で再処理
- 個別入金データ処理エラー：当該入金データのみスキップし、他入金データの処理は継続

### 11. AI照合処理

#### 11-1 機能概要
通常の照合ロジックでは特定できない入金データをAIにより照合する機能。取引パターン学習により、振込名義の表記揺れなどがあっても対応する請求書を特定する。

#### 11-2 処理フロー
1. 自動消込処理で照合失敗した入金データの抽出
2. AI学習データの読み込み
3. 入金データの特徴量抽出（金額、振込名義、日付等）
4. AI照合モデルによる類似請求書の予測
5. 予測結果の確度評価
6. 確度閾値以上の場合：消込情報の作成
7. 債権情報のステータス更新（「入金済」）
8. 銀行入金データの消込ステータス更新（「消込済」）
9. 確度閾値未満の場合：手動処理対象としてマーク
10. 処理結果のログ出力

#### 11-3 入力データ仕様
- 照合失敗した銀行入金データ
  - 入金ID
  - 口座ID
  - 取引日
  - 入金額
  - 振込依頼人名
  - 振込メッセージ
  - 消込ステータス
- 債権情報
  - 債権ID
  - 請求書ID
  - 顧客ID
  - 顧客名
  - 債権額
  - 債権ステータス（「未入金」のみ対象）
- AI学習データ
  - 過去の手動消込結果
  - 振込名義と顧客名の対応関係
  - 入金パターン情報

#### 11-4 出力データ仕様
- 消込情報（AI照合成功時）
  - 消込ID（一意の識別子）
  - 入金ID
  - 債権ID
  - 請求書ID
  - 顧客ID
  - 入金額
  - 消込日
  - 消込方法（「AI」）
  - 確度スコア
  - 消込ステータス（「完了」）
  - 作成日時
- 手動処理対象データ（AI照合失敗時）
  - 入金ID
  - 予測候補リスト（確度スコア順）
  - 手動処理フラグ：「要確認」
- 更新された債権情報（AI照合成功時）
  - 債権ステータス：「入金済」
  - 入金日：取引日
- 更新された銀行入金データ（AI照合成功時）
  - 消込ステータス：「消込済」
  - 関連請求書ID

#### 11-5 エラー処理
- データ不整合エラー：エラーログに記録し、対象入金データの処理をスキップ
- AI予測エラー：エラーログに記録し、手動処理対象としてマーク
- システムエラー：トランザクションをロールバックし、エラーログに記録

#### 11-6 実行条件
- 前提条件：自動消込処理で照合失敗した入金データが存在すること
- 排他条件：同一バッチが実行中でないこと

#### 11-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理入金データ数、AI照合成功件数、手動処理対象件数、エラー件数）
- 確度スコア分布
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象入金ID）
- 処理時間

#### 11-8 リトライ設計
- システムエラー時：リトライなし、翌日の定期実行で再処理
- 個別入金データ処理エラー：当該入金データのみスキップし、他入金データの処理は継続

### 12. 仕訳データ自動生成

#### 12-1 機能概要
消込結果から会計仕訳データを自動生成（Create）する機能。入金取引を会計システム用の仕訳形式に変換する。

#### 12-2 処理フロー
1. 新規消込情報の抽出
2. 仕訳パターンマスタの参照
3. 消込情報に基づく仕訳データの生成
   a. 売掛金勘定の減少（貸方）
   b. 預金勘定の増加（借方）
4. 仕訳データの検証
5. 仕訳データの保存
6. 会計システム連携用データの作成
7. 処理結果のログ出力

#### 12-3 入力データ仕様
- 消込情報
  - 消込ID
  - 入金ID
  - 債権ID
  - 請求書ID
  - 顧客ID
  - 入金額
  - 消込日
  - 消込方法
  - 消込ステータス（「完了」のみ対象）
- 銀行入金データ
  - 入金ID
  - 口座ID
  - 取引日
  - 入金額
- 請求書データ
  - 請求書ID
  - 顧客ID
  - 部門情報
  - 請求金額合計
- 仕訳パターンマスタ
  - 取引種別
  - 勘定科目マッピング
  - 部門情報マッピング

#### 12-4 出力データ仕様
- 仕訳データ
  - 仕訳ID（一意の識別子）
  - 取引日
  - 伝票番号
  - 借方勘定科目
  - 借方金額
  - 借方部門
  - 貸方勘定科目
  - 貸方金額
  - 貸方部門
  - 摘要
  - 関連消込ID
  - 作成日時
  - 承認ステータス（「未承認」）
- 会計システム連携用データ
  - ファイル名：「仕訳データ_YYYYMMDD.csv」形式
  - ファイル形式：CSV
  - 格納先：会計システム連携ディレクトリ

#### 12-5 エラー処理
- データ不整合エラー：エラーログに記録し、対象消込情報の処理をスキップ
- 仕訳パターン未定義エラー：エラーログに記録し、管理者へ通知
- システムエラー：トランザクションをロールバックし、エラーログに記録

#### 12-6 実行条件
- 前提条件：新規消込情報が存在すること
- 排他条件：同一バッチが実行中でないこと

#### 12-7 ログ出力仕様
- 開始・終了ログ
- 処理件数サマリ（処理消込情報数、仕訳生成件数、エラー件数）
- 連携ファイル情報（ファイル名、レコード数）
- エラー発生時の詳細情報（エラーコード、エラーメッセージ、対象消込ID）
- 処理時間

#### 12-8 リトライ設計
- システムエラー時：リトライなし、翌日の定期実行で再処理
- 個別消込情報処理エラー：当該消込情報のみスキップし、他消込情報の処理は継続
