Employeeに HashMapを持たせ、Assetsを解析させることで DRLから参照できるようにして、ついに拘束日と休日を実装できた
GitHub - vascarpenter/ShiftSolver
だが、DRLではどうやったら拘束日の実装をすればいいのかわからん
一番の理想:拘束日の医師は決定しており optaplannerを使うまでもない
理想:ある日がだれかの拘束日に当たっていて、その担当以外の医師だったらスコアを下げる
→ある日が誰かの拘束日であるか逆算できる必要がある
現実:その医師の拘束日だったらスコアをあげる。本当は上げたくないんだが。
DRL:
when WorkDayAssignment(employee != null, employee.isWorkDay(day) == true) then scoreHolder.addHardConstraintMatch(kcontext, new BigDecimal(1));
うーんむずかしい
でもプログラムとしてはこれでほとんど完成なんだな..