项目简介
本项目是基于Python的自动排班系统,专为南山高中交通服务队打造,能助力总指揮勤务长快速生成每月排班表,极大减少手动排班的时间与工作量。
项目的主要特性和功能
- 自动排班:依据成员工作权重和无法值勤时间,自动生成合理班表。
- 导入导出功能:可导入成员名单和班表模板,能将生成的班表导出为CSV格式,便于用Excel查看和编辑。
- 班表分析:提供班表分析功能,生成详细分析报告,助用户了解班表分配情况。
- 用户友好的界面:运用Tkinter GUI库构建,操作界面直观。
- 错误处理与日志:具备错误处理和日志功能,方便用户追踪解决问题。
安装使用步骤
前提条件
- Python 3.10.6或以上版本。
- 已安装Tkinter GUI库。
使用步骤
- 导入数据:
- 点击“匯入名單”导入符合格式的成员名单(
data/members.json
)。 - 点击“匯入班表模版”导入符合格式的班表模板(
data/schedule.json
)。
- 点击“匯入名單”导入符合格式的成员名单(
- 设置参数:
- 设置最大值勤次数和最大早班次数(默认分别为3和2)。
- 设置错误迭代次数(默认15次),以便在班表无法编排时自动重新执行。
- 开始排班:点击“开始排班”按钮,程序自动完成排班。
- 导出班表:点击“匯出班表”按钮,将生成的班表以CSV格式导出,可用Excel打开查看。
编辑成员信息
- 使用下拉菜单选择要编辑的成员。
- 点击“编辑成员”按钮,编辑该成员无法值勤的时间。
- 使用编辑区下方的功能键添加无法值勤的条件,或直接修改编辑区内容(需符合格式要求)。
- 编辑完成后,点击“儲存編輯”保存更改。
注意事项
- 班表模板和成员名单需符合格式要求。
- 目前支持高一和高二的排班。
- 程序已尽可能平均分配工作,但部分情况可能需要手动微调。
- 支持Windows 11和Windows 10(部分功能可能不兼容)。
版本更新
- v1.0.0 (2023/10/15):初版发布。
- v1.0.1 (2023/10/18):
- 支持高一和高二的排班。
- 根据成员权重进行班表分配。
- 新增功能按钮,支持添加无法值勤的条件。
- 修复了导入名单后需重新启动程序才能生效的问题。
- v1.0.2 (2023/10/30):
- 更改编辑成员前会询问是否保存变更。
- 调整了根据权重分配班表的公式。
- 新增班表分析功能。
- 修改了班表导出方式,支持选择导出位置。
待做功能
- 优化用户界面。
- 增加更多错误处理机制。
- 考虑更多排班策略。
版权声明
本项目采用MIT开源协议,可以自由使用和修改。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】