4.5 KiB
4.5 KiB
批量排班示例
示例1:为新医生创建一周排班
场景
新入职医生张医生,需要为其创建下周的工作日排班。
操作步骤
- 选择医生:张医生
- 日期范围:2024-03-04 至 2024-03-10
- 时段:上午、下午
- 星期:周一、周二、周三、周四、周五
- 状态:出诊
- 号源数:20
- 最大接诊数:30
生成结果
- 周一上午、下午:2条
- 周二上午、下午:2条
- 周三上午、下午:2条
- 周四上午、下午:2条
- 周五上午、下午:2条
- 总计:10条排班记录
示例2:批量设置周末休息
场景
为所有医生设置本月所有周末为休息日。
操作步骤
- 选择医生:全选(假设3位医生)
- 日期范围:2024-03-01 至 2024-03-31
- 时段:上午、下午
- 星期:周六、周日
- 状态:休息
生成结果
- 3月份共有4个周末(8天)
- 3位医生 × 8天 × 2时段 = 48条记录
示例3:节假日调整
场景
清明节假期(4月4日-4月6日),所有医生休息。
操作步骤
- 选择医生:全选
- 日期范围:2024-04-04 至 2024-04-06
- 时段:上午、下午
- 星期:全选(因为是连续假期)
- 状态:休息
- 备注:清明节假期
生成结果
- 假设5位医生
- 5位医生 × 3天 × 2时段 = 30条记录
示例4:临时停诊
场景
医院装修,某科室所有医生本周三停诊。
操作步骤
- 选择医生:该科室所有医生(假设4位)
- 日期范围:2024-03-06 至 2024-03-06(单天)
- 时段:上午、下午
- 星期:周三
- 状态:停诊
- 备注:科室装修
生成结果
- 4位医生 × 1天 × 2时段 = 8条记录
示例5:月度排班
场景
为下个月创建完整的排班计划。
第一步:工作日出诊
- 选择医生:全选(10位医生)
- 日期范围:2024-04-01 至 2024-04-30
- 时段:上午、下午
- 星期:周一至周五
- 状态:出诊
- 号源数:20
结果:10 × 22工作日 × 2时段 = 440条记录
第二步:周末休息
- 选择医生:全选(10位医生)
- 日期范围:2024-04-01 至 2024-04-30
- 时段:上午、下午
- 星期:周六、周日
- 状态:休息
结果:10 × 8天 × 2时段 = 160条记录
总计
600条排班记录,覆盖整个月。
示例6:特殊排班
场景
某医生只在周一、周三、周五上午出诊。
操作步骤
- 选择医生:该医生
- 日期范围:2024-03-04 至 2024-03-31
- 时段:上午
- 星期:周一、周三、周五
- 状态:出诊
- 号源数:15
生成结果
- 3月份周一、周三、周五共约12天
- 1位医生 × 12天 × 1时段 = 12条记录
API 调用示例
请求示例
POST /adminapi/doctor.roster/batchSave
{
"rosters": [
{
"doctor_id": 1,
"date": "2024-03-04",
"period": "morning",
"status": 1,
"quota": 20,
"max_patients": 30,
"remark": "工作日排班"
},
{
"doctor_id": 1,
"date": "2024-03-04",
"period": "afternoon",
"status": 1,
"quota": 20,
"max_patients": 30,
"remark": "工作日排班"
},
// ... 更多记录
]
}
响应示例
{
"code": 1,
"msg": "批量保存成功",
"data": {
"success_count": 10,
"failed_count": 0
}
}
注意事项
- 性能优化:一次批量操作建议不超过100条记录
- 数据验证:确保所有必填字段都已填写
- 重复处理:已存在的排班会被更新,不会重复创建
- 事务处理:批量操作使用事务,要么全部成功,要么全部失败
- 权限检查:确保当前用户有批量排班权限
常见错误
错误1:没有生成任何记录
原因:选择的星期与日期范围不匹配 解决:检查日期范围内是否包含选中的星期
错误2:记录数量不符合预期
原因:计算错误或日期范围理解错误 解决:使用公式验证:医生数 × 符合条件的天数 × 时段数
错误3:批量保存失败
原因:数据验证失败或数据库错误 解决:检查日志,确认数据格式正确
最佳实践建议
- 分批操作:大量排班分多次批量操作
- 先测试:先用少量数据测试,确认无误后再大批量操作
- 备份数据:重要操作前备份数据库
- 逐步完善:先创建基础排班,再根据实际情况调整
- 定期检查:定期检查排班数据的准确性