今回は過去に対応した開発事例として「シフト表の自動作成」を紹介。
依頼者は障害者グループホームを経営しており、そこで役所等へ提出する形式のシフト表を自動作成するのが目的
【背景】
役所へ提出する「勤務形態一覧表」に記載するシフト表を自動作成したい。
参考リンク↓
【仕様】
「設定」シート
祝日一覧の入力
シフト種類(A,B,C,休,有)を色分けしつつ一覧を入力
職種の一覧を設定
「シフト表自動作成」シート
年月を設定。◀▶ボタンで増減できる
シフト表の中で有給「有」を使用するかどうかをON/OFFで入力
職員の一覧を職種、氏名で入力
「自動作成通常」「自動作成ランダム」ボタンで、条件に一致したシフト表を自動作成する
「次月繰越」ボタンで設定の月末分を次の月へ継承する
【技術要素】
ナーススケジューリング問題を解くプログラムの開発
選択入力フォームの実装
条件付き書式
【シフト表の条件】
作成は1ヶ月毎に行う
週2回は公休
「サービス管理者」は日・月は公休
「管理者」は土・日は公休
「管理者」はAのみ使用
「サービス管理者」はAまたはBを使用
「パート」は週2,3勤務
「パート」は月曜日は公休
A,B,Cの振り分けはできるだけ均等にする
日付の前後でC→A、B→Aは不可
5連勤は不可
【実際の動作】
「自動作成通常」ボタンでシフト表を作成した場合。ちなみに処理には1秒弱程度。
各条件を満足している
A,B,C,有,休は自動的に、職員別、日付別で合計している
上の状態から「次月繰越」を押すと、4月の最後の1週間の分が繰越されて5月分の作成画面になる。これで「月をまたいでの条件」もしっかり処理できるようになる。
上の状態からまた「自動作成通常」ボタンを押して5月分のシフト表を作成する
【ユーザービリティ(便利機能)】
職種はセルをダブルクリックして選択入力フォームが起動する
通常はドロップダウンリストの機能を実装するが、文字が小さくなったり操作性が悪かったりとするので採用しない
作成されたシフト表を手動で修正する場合も、ダブルクリックでシフトを選択入力できるフォームが起動する。選択ボタンは着色されて操作性もよい。
作成されたシフト表は完全に条件を満足できない場合(人数が足りない)場合は赤く着色されて、ユーザーが分かりやすいようにする。
Comments