排班表管理系统是一款专为各类组织设计的智能化排班解决方案,可广泛应用于医院、工厂、商场、酒店、学校等需要复杂排班管理的场景。该系统采用现代化的图形界面,结合强大的数据库功能,为用户提供直观、高效的排班管理体验。
- 多用户支持:支持创建多个用户账号,各用户拥有独立的排班数据库
- 多样化视图:提供月视图、双月视图、年视图和双年视图,满足不同查看需求
- 批量操作:支持批量添加、修改和删除排班记录
- 智能提醒:自动备份和恢复功能确保数据安全
- 个性化配置:可自定义界面显示内容和样式
- 采用Python 3.8+开发
- 使用PyQt5构建图形界面
- SQLite3作为数据库引擎
- 支持跨平台运行(Windows/macOS/Linux)
- 符合MIT开源协议
系统采用多用户架构,每个用户可以创建自己的排班数据库。登录界面提供:
- 用户名选择/输入
- 密码保护(可选)
- 记住密码功能
- 用户注册/删除/修改功能
专业说明: 系统使用SQLite数据库存储用户信息,密码采用明文存储(建议在实际部署时改为哈希加密)。每个用户的数据存储在独立的数据库文件中(user_用户名.db),实现了数据隔离。
已登录用户可随时切换账户,系统会自动保存当前视图状态,切换后恢复。
- 单条添加:通过表单逐一添加排班记录
- 批量添加:选择多个员工、多个日期一次性添加排班
- 快捷添加:在日历视图上右键点击日期快速添加
专业说明: 批量添加功能使用事务处理,确保所有记录要么全部成功,要么全部失败,保持数据一致性。排班记录包含员工姓名、部门、职位、日期、班次类型和备注等字段。
- 双击排班记录或使用右键菜单进行编辑
- 保留最近使用的部门和班次类型,提高输入效率
专业说明: 编辑操作采用乐观锁机制,直接更新数据库记录,不进行显式锁定,适合多用户轻度并发的场景。
- 单条删除:选择后确认删除
- 批量删除:通过过滤条件选择多条记录一次性删除
- 右键菜单删除:在日历视图上快速删除
数据安全: 所有删除操作都要求确认,且提供备份恢复功能防止误删。
- 月视图:显示单个月份的排班情况
- 双月视图:并排显示当前月和下一月
- 年视图:以紧凑形式显示全年12个月
- 双年视图:并排显示当前年和下一年
UI设计: 采用马卡龙色系(300种颜色)为不同员工分配不同背景色,提高视觉区分度。周末日期显示为红色,工作日为黑色。
- 表格形式展示排班记录
- 支持按日期范围、部门、姓名筛选
- 支持排序和多选操作
技术实现: 使用QTableView和QStandardItemModel构建,支持大数据量下的高效滚动和渲染。
- 每天自动备份一次数据库
- 备份文件存储在程序目录下的backups文件夹
- 保留30天内的自动备份
用户可随时手动触发备份,备份文件包含时间戳和备份类型信息。
- 从备份列表中选择恢复点
- 恢复前自动创建回滚备份
- 支持查看备份详情(时间、类型、大小)
专业说明: 备份机制采用文件级备份,恢复时先创建回滚文件,确保操作可逆。备份文件名包含时间戳和类型(自动/手动/回滚),便于管理。
- 控制显示内容:日期、姓名、部门、班次
- 调整字体大小:日期字体和内容字体
- 配置保存在用户本地,随账号持久化
- 内置默认班次:早班、中班、晚班、全天班
- 支持自定义班次名称和时间段
- 模糊班次支持(不指定具体时间)
- 启动程序,注册新用户
- 进入主界面,熟悉视图切换
- 添加部门和员工信息
- 开始排班
- 添加排班:点击"添加排班"按钮或右键日历日期
- 编辑排班:双击记录或使用右键菜单
- 删除排班:选择后点击删除按钮或使用右键菜单
- 切换视图:使用顶部工具栏按钮
- 在批量添加时,可以使用日期范围+工作日过滤快速选择多个日期
- 批量删除前先用过滤条件缩小范围
- 按住Ctrl键可多选记录
- 回车键:在对话框中快速确认
- 方向键:在日历视图中导航日期
- Ctrl+N:快速添加排班(列表视图)
[用户界面层]
↓
[业务逻辑层] - 排班管理、用户管理、备份恢复
↓
[数据访问层] - SQLite数据库操作
↓
[存储层] - 用户数据库文件、备份文件
- users表:存储用户账号信息
- 字段:id, username, password, db_file, last_login, has_password
- departments表:部门信息
- schedules表:排班记录
- custom_shifts表:自定义班次类型
- 使用索引加速查询
- 分批加载大数据集
- 采用模型-视图架构减少内存占用
- 使用QPixmap缓存渲染结果
- 创建科室:内科、外科、急诊等
- 设置三班倒班次:早8-晚4,晚4-夜12,夜12-早8
- 批量分配月度排班
- 导出排班表供护士查看
- 按部门:收银、理货、客服
- 设置早晚班和周末特别班次
- 使用年视图规划节假日排班
- 快速调整临时调班
- 创建各生产线班组
- 设置四班三运转等复杂班次
- 批量复制周排班到整月
- 标注特殊岗位和技能要求
Q:如何快速找到某天的排班? A:在日历视图中点击日期,或在列表视图中设置日期范围筛选。
Q:能否打印排班表? A:目前支持截图打印,未来版本将添加导出PDF功能。
Q:如何区分不同员工的排班? A:系统自动为不同员工分配不同颜色,可在日历视图中直观区分。
Q:数据存储在哪里?如何迁移? A:数据存储在程序目录下,迁移时复制user_用户名.db文件即可。
Q:支持多少用户同时使用? A:由于使用文件数据库,建议单用户使用,多用户可能产生冲突。
Q:如何实现自定义报表? A:可通过SQL查询导出数据到Excel进行进一步处理。
- 新增双年视图模式
- 优化视图切换性能
- 修复备份恢复功能中的类型显示问题
- 改进用户界面配色方案
- 添加批量删除功能
- 改进日历右键菜单
- 优化数据库查询性能
- 修复若干小错误
- 新增年视图模式
- 添加自动备份功能
- 改进用户管理界面
- 增加马卡龙配色方案
版权声明 © 永久 杜玛 保留所有权利
项目地址:https://github.com/duma520
问题报告:通过GitHub Issues提交
注意:我们不提供私人邮箱支持,所有技术支持都通过公开渠道进行,以便其他用户也能受益。
本说明书持续更新,随软件版本升级而修订。建议用户定期查看GitHub获取最新文档。