我在Optaweb(目前已停产)平台上工作,我有一个EmployeeAvailability
类,我可以在其中定义startDateTime
和endDateTime
以及状态(以下之一):UNAVAILABLE
,UNDESIRED
,DESIRED
).然而,这些都是单一事件.我想要的是为EmployeeAvailability
是一个循环事件.在那里我可以定义它的循环(例如每周五),然后它自动处理时,计划转移.我怎么能做到这一点?我不是在寻找非常具体的说明,但如何做到这一点的更高层次的理解.
现在,我尝试通过在每个EmployeeAvailability
上设置一个标志isRecurring
来解决这个问题,然后当我计划下一周时,我运行一个函数来复制过去一周中所有的EmployeeAvailability
和isRecurring == True
。
理想情况下,我希望:
- 能够定义任何重复模式(每周,每月,每天等)。也许我可以通过https://www.kanzaki.com/docs/ical/rrule.html存储重复
- 数据库中没有单独的
EmployeeAvailability
对象,而是只有一个定义递归模式的对象。当需要在前端显示或需要由求解器求解时,该对象可以转换为单独的对象??我将放弃以下建议:https://github.com/bmoeskau/Extensible/blob/master/recurrence-overview.md
1条答案
按热度按时间yjghlzjz1#
一种方法是创建一个新类
EmployeeAvailabilityPattern
,它有一个方法appliesToShift(Shift)
,如果Shift匹配可用性模式,则返回true,否则返回false。然后匹配EmployeeAvailabilityPattern
的约束如下所示: