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