2025年4月27日日曜日

夜勤を別状態(タスク)として記述する

 夜勤は、通常のシフトと同日にあるので、シフトとはせず、タスクとして記述します。シフトでこれを行おうとすると、各々夜勤あるなしの2状態のシフトが必要となります。既に30種ほどのシフトがあり、その倍近く(約60)のシフトを定義する必要があります。これでは扱いにくいし、出来れば25程度にシフトの状態数を抑える、という原則に反するので、シフトとは独立した状態のタスクを用います。


まずは、シフトを定義します。


次に夜勤があり得るシフトをフェーズで定義します。
下で定義されていないシフト、例えば年休や夜勤明けはありません。これらのシフトでは、夜勤の存在を許さないので、敢えて記述しません。


次にタスクを次のように記述します。状態としては、夜勤があるかないかの2状態だけを意味します。

以上がフレームワークになります。これから記述する制約は、全てこのフレームワーク上の制約となります。

この解は、次のようにシフト(上段)、タスク(下段)でハイブリッド形式で出力出来ます。


0 件のコメント:

コメントを投稿