# ルート定義: 休暇申請ルート

> 本書は [specification.md](specification.md) の「ルート定義」セクションを詳細化したものである。

## 基本情報

| 項目     | 値                  |
| -------- | ------------------- |
| ルート名 | 休暇申請ルート      |
| ルートID | leave_request_route |

## ルート構成図

```mermaid
flowchart LR
    Start(("開始")) --> Apply["申請ノード<br/>（申請者）"]
    Apply -- "申請" --> Approve1["承認ノード<br/>（上長）"]
    Approve1 -- "承認" --> Approve2["承認ノード<br/>（人事部）"]
    Approve2 -- "承認終了" --> End1(("完了<br/>可決"))
```

## ノード定義

### ノード一覧

| ノード順 | ノード種別 | ノード名       | 処理対象者       | 説明                           |
| -------- | ---------- | -------------- | ---------------- | ------------------------------ |
| 1        | 開始ノード | 開始           | -                | ルートの開始                   |
| 2        | 申請ノード | 休暇申請       | 申請者本人       | 休暇申請の入力・申請           |
| 3        | 承認ノード | 上長承認       | 申請者の直属上長 | 業務影響を考慮して承認         |
| 4        | 承認ノード | 人事部最終承認 | 人事部担当者     | 残日数・規定を確認して最終承認 |
| 5        | 終了ノード | 終了           | -                | ルートの終了                   |

## 処理権限者プラグイン

### プラグイン設定一覧

| ノード名       | プラグイン名           | プラグインID                                    | 説明                                                         |
| -------------- | ---------------------- | ----------------------------------------------- | ------------------------------------------------------------ |
| 上長承認       | 申請者の上位組織＋役職 | `apply_user_one_step_upper_department_and_post` | 申請者の直属上長を処理対象者として展開する                   |
| 人事部最終承認 | 組織＋ロール           | `department_and_role`                           | 指定した組織・ロールに属するユーザを処理対象者として展開する |

### 上長承認ノード: 処理権限者プラグインの詳細

| 項目                 | 値                                                    |
| -------------------- | ----------------------------------------------------- |
| プラグインID         | `apply_user_one_step_upper_department_and_post`       |
| 処理対象者の解決方法 | 申請者の1つ上位の組織に属し、指定した役職を持つユーザ |
| 展開タイミング       | 対象者を展開する日（フロー定義の機能設定に従う）      |

### 人事部最終承認ノード: 処理権限者プラグインの詳細

| 項目                 | 値                                               |
| -------------------- | ------------------------------------------------ |
| プラグインID         | `department_and_role`                            |
| 処理対象者の解決方法 | 指定した組織に属し、指定したロールを持つユーザ   |
| 展開タイミング       | 対象者を展開する日（フロー定義の機能設定に従う） |
| 設定する組織         | 人事部                                           |
| 設定するロール       | 人事部担当者ロール                               |

## 処理フロー補足

| 処理             | 説明                                                               |
| ---------------- | ------------------------------------------------------------------ |
| 差戻し（上長）   | 上長が申請ノードへ差し戻す                                         |
| 差戻し（人事部） | 人事部が申請ノードまたは上長承認ノードへ差し戻す                   |
| 否認             | 上長または人事部が申請を否認する。案件は完了（否認）となる         |
| 引戻し           | 申請者が次ノードの処理対象者の未処理中に申請を引き戻す             |
| 取止め           | 申請者が未承認の申請を取り止める。案件は完了（取止め）となる       |
| 保留             | 承認者が処理を一時保留する。本人以外の処理対象者の処理が禁止される |
| 保留解除         | 保留した承認者が保留を解除し、処理を再開可能にする                 |

## 関連ドキュメント

- [specification.md](specification.md) - 仕様書本体
- [flow_definition.md](flow_definition.md) - フロー定義
- [content_definition.md](content_definition.md) - コンテンツ定義
