LEAVE-001: 休暇申請システム(IM-Workflow)
素材のダウンロード
本サンプルで使用しているプロンプト素材(Markdown 一式)を以下からダウンロードできます。
- 一括ダウンロード: leave-request-prompt.zip
- 個別ファイル:
概要
社員が年次有給休暇・半日有給休暇をオンラインで申請し、上長と人事部の2段階承認を経て有給残日数を自動管理するシステム。 申請時に残日数チェック・重複チェック等のバリデーションを行い、最終承認完了時に有給残日数を減算する。
対象ユーザ
| ペルソナ | 説明 |
|---|---|
| 一般社員 | 休暇を申請する社員。残日数を確認し、手軽に申請したい |
| 上長 | 部下の休暇申請を承認する直属の上司。部下の勤務状況を考慮して判断する |
| 人事部担当 | 休暇申請の最終承認を行う。全社の有給取得状況を管理する |
ユーザストーリー
一般社員として
- 残日数を確認したうえで休暇を申請できる。残日数不足時は申請できない
- 上長が未処理であれば申請を引き戻して修正・再申請できる
- 不要になった申請を取り止めることができる
- 差し戻された申請のコメントを確認し、修正して再申請できる
上長として
- 部下の休暇申請内容(種別・期間・理由・残日数)を確認し、承認・差戻し・否認できる
- 差戻し・否認時はコメントで理由を伝えられる
- 処理を一時保留し、後から再開できる
- 人事部が未処理であれば承認を引き戻せる
人事部担当として
- 上長承認済みの休暇申請を最終確認し、承認終了・差戻し・否認できる
- 差戻し先を申請者または上長から選択できる
- 最終承認完了時に有給残日数が自動的に減算される
ワークフロー定義
各定義の詳細は個別のドキュメントを参照。
機能要件
F-001: 休暇申請
F-001-1: 申請入力
- 申請者は休暇申請フォームに必要事項を入力し、申請を行える
- 申請に必要な情報:
- 休暇種別(必須、選択式: 年次有給休暇/半日有給休暇)
- 開始日(必須、当日以降の日付)
- 終了日(必須、開始日以降の日付。半日有給休暇の場合は開始日と同一)
- 半日区分(半日有給休暇の場合のみ必須、選択式: 午前/午後)
- 取得日数(自動計算、土日祝を除く営業日数。半日有給休暇の場合は0.5日)
- 申請理由(必須、選択式: 私用/通院/冠婚葬祭/家庭事情/リフレッシュ/その他)
- 緊急連絡先(任意、最大50文字)
- 備考(任意、最大500文字)
- 申請時に有給残日数を表示し、残日数を超える申請は不可とする(ユーザプログラムでバリデーション)
- 申請完了時にユーザプログラムにより
leave_requestテーブルへデータを保存する - 申請完了時に上長へ通知メールを送信する
F-001-2: 申請の引戻し
- 申請者は上長が未処理の申請を引き戻すことができる
- 引戻し後、申請内容を修正して再申請が可能
F-001-3: 申請の取止め
- 申請者は未承認の申請を取り止めることができる
- 取止め後、案件は完了(取止め)となる
F-001-4: 差戻し後の再申請
- 差戻しされた申請を修正して再申請できる
- 差戻しコメントを確認したうえで修正を行う
- 再申請時にユーザプログラムにより
leave_requestテーブルを更新し、バリデーションを再実行する
F-002: 承認処理
F-002-1: 上長承認
- 上長は部下の休暇申請を確認し、承認・差戻し・否認・保留・保留解除を行える
- 承認時の確認事項:
- 申請内容(休暇種別、期間、理由)
- 部下の有給残日数
- 差戻し時は差戻しコメントの入力が必須(最大300文字)
- 差戻し先は申請ノードとする
- 否認時は否認理由の入力が必須(最大300文字)
- 保留時は本人以外の処理対象者の処理が禁止される
- 人事部が未処理の場合、上長は引戻しが可能
- 処理完了時に申請者へ結果通知メールを送信する
F-002-2: 人事部最終承認
- 人事部担当者は上長承認済みの休暇申請を確認し、承認終了・差戻し・否認・保留・保留解除を行える
- 最終承認時の確認事項:
- 申請内容(休暇種別、期間、理由)
- 申請者の有給残日数
- 社内規定との整合性
- 差戻し時は差戻しコメントの入力が必須(最大300文字)
- 差戻し先は申請ノードまたは上長承認ノード(任意の処理済みノード)を選択可能
- 否認時は否認理由の入力が必須(最大300文字)
- 保留時は本人以外の処理対象者の処理が禁止される
- 承認終了時にユーザプログラムにより
leave_balanceテーブルの有給残日数を減算する - 処理完了時に申請者へ結果通知メールを送信する
F-003: 有給残日数表示
- 申請画面に有給残日数を表示する
- 残日数 = 年間付与日数 + 前年繰越日数 − 取得済日数
非機能要件
性能要件
- 画面表示: 3秒以内
- 申請・承認処理: 2秒以内
- 同時接続ユーザ数: 500人
ビジネスルール
| ID | ルール |
|---|---|
| BR-001 | 有給残日数を超える休暇申請は不可 |
| BR-002 | 半日有給休暇の場合、開始日と終了日は同一でなければならない |
| BR-003 | 取得日数は土日祝を除く営業日数で自動計算する(半日有給休暇の場合は0.5日) |
| BR-004 | 開始日は申請日以降でなければならない |
| BR-005 | 最終承認完了時にユーザプログラムによりleave_balanceの有給残日数を減算する |
| BR-006 | 否認・取止めされた申請は有給残日数に影響しない。leave_requestのデータは削除せず履歴として保持する |
| BR-007 | 同一期間に重複する休暇申請は不可 |
画面一覧
| 画面ID | 画面名 | IM-Workflow画面種別 | 概要 |
|---|---|---|---|
| SCR-001 | 休暇申請 | 申請画面 / 再申請画面 | 休暇申請の入力フォーム。有給残日数を表示。再申請時は差戻しコメントを表示 |
| SCR-002 | 処理 | 処理画面 | 承認者が申請内容を確認し、承認・差戻し・否認・保留を行う画面 |
| SCR-003 | 処理詳細 | 処理詳細画面 | 処理対象者が案件の詳細を参照する画面 |
| SCR-004 | 参照詳細 | 参照詳細画面 | 参照者が案件の詳細を参照する画面 |
画面項目定義
SCR-001: 休暇申請画面(申請画面 / 再申請画面)
| 項目名 | 入力種別 | 必須 | 備考 |
|---|---|---|---|
| 申請者 | 表示のみ | - | ログインユーザ名を自動表示 |
| 所属組織 | 表示のみ | - | ログインユーザの所属組織を自動表示 |
| 有給残日数 | 表示のみ | - | 現在の有給休暇残日数を表示 |
| 休暇種別 | セレクト | ○ | 年次有給休暇/半日有給休暇 |
| 開始日 | 日付 | ○ | カレンダーピッカー。当日以降 |
| 終了日 | 日付 | ○ | カレンダーピッカー。開始日以降 |
| 半日区分 | ラジオ | △ | 午前/午後。半日有給休暇の場合のみ表示・必須 |
| 取得日数 | 表示のみ | - | 営業日数を自動計算して表示 |
| 申請理由 | セレクト | ○ | 私用/通院/冠婚葬祭/家庭事情/リフレッシュ/その他 |
| 緊急連絡先 | テキスト | - | 最大50文字 |
| 備考 | テキスト | - | 最大500文字 |
| 差戻しコメント | 表示のみ | - | 再申請時のみ表示。承認者の差戻しコメントを表示 |
SCR-002: 処理画面(承認者向け)
| 項目名 | 入力種別 | 必須 | 備考 |
|---|---|---|---|
| 申請者 | 表示のみ | - | 申請者名 |
| 所属組織 | 表示のみ | - | 申請者の所属組織 |
| 有給残日数 | 表示のみ | - | 申請者の有給休暇残日数 |
| 休暇種別 | 表示のみ | - | 申請内容を表示 |
| 開始日 | 表示のみ | - | 申請内容を表示 |
| 終了日 | 表示のみ | - | 申請内容を表示 |
| 半日区分 | 表示のみ | - | 半日有給休暇の場合のみ表示 |
| 取得日数 | 表示のみ | - | 申請内容を表示 |
| 申請理由 | 表示のみ | - | 申請内容を表示 |
| 緊急連絡先 | 表示のみ | - | 申請内容を表示 |
| 備考 | 表示のみ | - | 申請内容を表示 |
| コメント | テキスト | △ | 差戻し・否認時は必須。最大300文字 |
SCR-003: 処理詳細画面(処理対象者向け)
| 項目名 | 入力種別 | 備考 |
|---|---|---|
| 申請者 | 表示のみ | 申請者名 |
| 所属組織 | 表示のみ | 申請者の所属組織 |
| 有給残日数 | 表示のみ | 申請者の有給休暇残日数 |
| 休暇種別 | 表示のみ | 申請内容を表示 |
| 開始日 | 表示のみ | 申請内容を表示 |
| 終了日 | 表示のみ | 申請内容を表示 |
| 半日区分 | 表示のみ | 半日有給休暇の場合のみ表示 |
| 取得日数 | 表示のみ | 申請内容を表示 |
| 申請理由 | 表示のみ | 申請内容を表示 |
| 緊急連絡先 | 表示のみ | 申請内容を表示 |
| 備考 | 表示のみ | 申請内容を表示 |
| 処理履歴 | 表示のみ | 各ノードの処理履歴を表示 |
SCR-004: 参照詳細画面(参照者向け)
SCR-003(処理詳細画面)と同一のレイアウト・項目を使用する。
データモデル(概要)
ユーザデータ(ユーザコンテンツ管理範囲)
休暇申請 (leave_request)
├── ユーザデータID (PK)
├── 申請者ユーザID
├── 休暇種別 (annual/half_day)
├── 開始日
├── 終了日
├── 半日区分 (am/pm, nullable)
├── 取得日数
├── 申請理由区分
├── 緊急連絡先
├── 備考
├── 作成日時
└── 更新日時
有給残日数 (leave_balance)
├── ユーザID (PK)
├── 年度 (PK)
├── 付与日数
├── 繰越日数
├── 取得済日数
├── 残日数 (= 付与日数 + 繰越日数 − 取得済日数)
├── 作成日時
└── 更新日時
案件プロパティ
| プロパティキー | 設定タイミング | 用途 |
|---|---|---|
| leave_days | 申請時 | 取得日数。メール置換文字列で使用 |
用語集
| 用語 | 説明 |
|---|---|
| 年次有給休暇 | 労働基準法に基づき、勤続年数に応じて付与される有給の休暇 |
| 半日有給休暇 | 1日の有給休暇を午前・午後に分割して取得する休暇。0.5日として計算する |
| 有給残日数 | 当年度に取得可能な有給休暇の残り日数(付与日数 + 前年繰越日数 − 取得済日数) |
| 営業日 | 土曜日・日曜日・祝日を除いた稼働日 |