Files
zyt/admin/BATCH_ROSTER_EXAMPLE.md
T
2026-03-04 15:32:30 +08:00

4.5 KiB

批量排班示例

示例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 调用示例

请求示例

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
  }
}

注意事项

  1. 性能优化:一次批量操作建议不超过100条记录
  2. 数据验证:确保所有必填字段都已填写
  3. 重复处理:已存在的排班会被更新,不会重复创建
  4. 事务处理:批量操作使用事务,要么全部成功,要么全部失败
  5. 权限检查:确保当前用户有批量排班权限

常见错误

错误1:没有生成任何记录

原因:选择的星期与日期范围不匹配 解决:检查日期范围内是否包含选中的星期

错误2:记录数量不符合预期

原因:计算错误或日期范围理解错误 解决:使用公式验证:医生数 × 符合条件的天数 × 时段数

错误3:批量保存失败

原因:数据验证失败或数据库错误 解决:检查日志,确认数据格式正确

最佳实践建议

  1. 分批操作:大量排班分多次批量操作
  2. 先测试:先用少量数据测试,确认无误后再大批量操作
  3. 备份数据:重要操作前备份数据库
  4. 逐步完善:先创建基础排班,再根据实际情况调整
  5. 定期检查:定期检查排班数据的准确性