![概述](https://linux22.com/image/1034978/%E6%A6%82%E8%BF%B0.png)
概述
我有一套必须安排员工完成的职责。这些职责在两个月内每周重复一次。有许多限制条件决定了良好的时间表。(请参阅下面的示例。)过去,我手工制定时间表,但手工制定时间表非常耗时,而且几乎肯定会出现错误。
我正在寻找可以帮我制定日程安排的软件。我试过 TaskJuggler,但我不确定它是否能满足我的要求(文档毫无帮助,邮件列表中的人只是告诉我去阅读文档——我读了文档,但没有得到确切的结果)。
有人可以推荐一些东西吗?
细节
时间表示例
这是示例时间表。请注意,由于这是手工制作的,因此其中包含一两个错误。
示例约束
以下是我的一些限制:
- 所有计划的任务都必须能够手动指定。
- 每位教师必须有整整两个周末的休息时间。有些周末被定义为强制工作周末;任何教师都不得在这些周末休息。其他周末可能是强制休息周末;这些周末没有安排任务,可以算作每位教师的两个周末休息时间。最后,可能还有些周末没有分配任务,但仍然不计入教师的两个周末休息时间。
- 任务分配应尽可能均匀。这意味着,尽可能地,每位教师必须有相同次数的指定任务,有相同次数的每种不同任务,并且在给定的周末有相同权重的任务(请参阅下文的权重任务)。如果无法做到这一点,则应在教师之间平衡剩余任务。理想情况下,应根据每位教师的偏好安排剩余任务;因此,喜欢儿童故事的教师可能会得到额外的时间,而不是真正不喜欢儿童故事的教师。
- 任何教师都不应连续几周担负相同的职责。
- 不得安排任何老师在周末休息。
- 任何教师不得同时担任职务。
- 主要职责是感谢上帝,星期五和布道。
- 任何教师在安排重要职责的当天都不应兼任其他职责。
- 任何老师每周都不应承担超过一项主要职责。
- 如果可能的话,尽量不要让任何老师连续几周都有重要任务,但这并不是一个特别优先的限制。
答案1
我终于设法解决了这个问题。显然,我正在寻找的软件并不存在,而且我没有时间或专业知识来自己编写它。
以下是我最终做的事情:
- 首先,我重新排列了日程表中的各列,以便可以一目了然地看到我的限制,但代价是顺序稍微不那么合逻辑。
- 最近,我将我的日程安排从 LibreOffice Calc 切换到了 Google Docs 电子表格。我失去了很多格式化功能,但获得了一些脚本编写能力。(我从来都不知道如何为 LO 或 OOo 编写宏;它们的文档实在太糟糕了。)
- 然后,我在 Google Apps 中编写了一个脚本,它为我提供了一些按钮,当我点击它们时,所有具有相同内容的单元格都会突出显示。这使我可以手动验证我的日程安排是否正确。这是我的日程安排的一个例子。
这种方法并不是我真正想要的,但效果还不错。
答案2
我会使用日历应用程序,例如 Thunderbird 中的 Lightning,并将轮换设置为日历上的重复事件。这样,如果您从 9:00 开始并且必须每半小时切换一次,请将闹钟设置为 9:30、10:00 等,并在每个事件上描述轮换。
找到一款专门执行此任务的应用程序非常困难,因为它必须专门为此类工作而编写。也许有某种应用程序可以完成这项工作,但我还没有听说过。不过,我相信日历应该很有用,直到你设法找到更具体的应用程序。