新增功能
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
# 批量排班示例
|
||||
|
||||
## 示例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. **定期检查**:定期检查排班数据的准确性
|
||||
Reference in New Issue
Block a user