Kindle本に記載の仕様から、■当直、■日直、■遅出 仕様が変更になっています。
■当直
変更前 | 変更後 |
---|---|
当直について 昼から翌朝まで院内) |
昼から翌朝まで院内 |
勤務時間の内訳: |
勤務時間の内訳: |
勤務1 8:30~17:00 |
勤務1 8:30~17:00 |
当 直 17:00~ 8:30 |
勤務2 17:00~24:00 |
勤務2 8:30~12:30 |
連続の時間外勤務 24:00~ 8:30 |
振休:なし |
振休:あり |
振休のケース1 当直明けの朝帰宅 明け当日が振替休日 | |
明け8:30~翌8:30まで休日(セカンド、遅出、当直のアサインが無い完全休暇) |
|
振休のケース2 当直明けがそもそも休日 |
|
金曜日の当直 土曜のAM8:30時で帰宅 → 平日に振替休日取得 |
|
土曜日の当直 日曜のAM8:30時で帰宅 → 平日に振替休日取得 |
|
休日前日の当直 休日のAM8:30で帰宅 → 平日に振替休日取得 |
■日直
変更前 | 変更後 |
---|---|
日直について 土日祝日の日直)> | 日直について 土日祝日の日直 |
振休:あり ・・・ 平均1週間に2人は振替休 | 振休:なし ・・・ 連続の時間外勤務 とする。 振休はなしとする |
勤務1 8:30~17:00 |
勤務1 8:30~17:00 |
■日直
変更前 | 変更後 |
---|---|
8:30~12:30まで休み 12:30~22:00まで勤務 このうち17:00~22:00まではER当番(救外当番) | 8:30~22:00まで勤務 このうち17:00~22:00までは時間外勤務 残業手当 |
遅出は廃止してER当番を平日1名アサイン。 前述の当直の振替え休日では遅出はERへ読み替え |
振休の仕様整理
■ 日~木の平日の当直は翌日が完全休日 =振休
■ 金土の当直、および 祝前当直は平日に完全休日 =振休
■ 振休は「臨時出勤」の時にも必要
実装検討
上記仕様について、振休実装は、下記のようにパターン振休と代休的振休の二つに分けて考えます。
■ 日~木の平日の当直は翌日が完全休日 =パターン振休 パターンとして実装
■ 金土の当直、および 祝前当直は平日に完全休日 =代休的振休
■ 振休は「臨時出勤」の時にも必要=代休的振休
パターン振休の実装
同直(A)後は、振休(B)というパターンABを実装します。Kindle本のパターンABCDのパターンABの実装部を参照します。
ところで、休み前当直は、代休的振休なので、上記パターンを禁止する必要があります。
代休的振休の実装
同値制約 ΣAi==ΣBi で記述します。
臨出+休み前当直 ==代休的振休数
休み前
休みの前日は、休み集合に対してオペレータ -1 を作用させればよいのですが、-1オペレータについて下記注意が必要です。
制約終了日以降の休みは定義できないので、仮に次月が1日が休みであったとしても、休みとして認識されない問題がある。制約終了日を次月1日する案も考えられるが、それも面倒。
そこで、対策として、年間カレンダで、次月1日が休みとなる日を定義し、それとのORを取っています。
最後の2行が欲しい集合になります。 今月内で、互いに排他的(ANDは、空集合で、ORは、全体集合=今月となる)であることに注意してください。この排他集合があって、初めて、上のパターン振休と、代休的振休が調和的に動作します。
プロジェクト
プロジェクトは、以下です。
ダウンロード
して、実装の参考にしてください。