メインコンテンツまでスキップ

LEAVE-001: 休暇申請システム(IM-Workflow)

素材のダウンロード​

本サンプルで使用しているプロンプト素材(Markdown 一式)を以下からダウンロードできます。

概要​

社員が年次有給休暇・半日有給休暇をオンラインで申請し、上長と人事部の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日として計算する
有給残日数当年度に取得可能な有給休暇の残り日数(付与日数 + 前年繰越日数 − 取得済日数)
営業日土曜日・日曜日・祝日を除いた稼働日