| xqd
@@ -742,6 +742,9 @@ class ApiController extends Controller
|
|
|
if(!$changeSeviceTime && empty($changeTimer)){
|
|
|
return apiReturn(603,'数据为改变');
|
|
|
}
|
|
|
+
|
|
|
+ TimePeriod::where(['org_id'=>$org_id,'type'=>$sType,'docter_id'=>$docter_id])->delete();
|
|
|
+
|
|
|
for ($i=1;$i<=3;$i++){
|
|
|
$tType = $i;
|
|
|
DB::beginTransaction();
|
| xqd
@@ -749,10 +752,10 @@ class ApiController extends Controller
|
|
|
//1.删除旧时间段,并删除排班数据
|
|
|
|
|
|
//todo 暂时未删除周排班
|
|
|
- self::deleteScheduleInfo($docter_id,$tType,$org_id);
|
|
|
+ self::deleteScheduleInfo($docter_id,$sType,$tType,$org_id);
|
|
|
$count = $countArr[$i];
|
|
|
//2.创建新时间段
|
|
|
- self::makeTimePeriod($docter_id,$org_id,$sType,$tType,$c_r[$tType],$count,$serviceTime);
|
|
|
+ self::makeTimePeriod($docter_id,$org_id,$sType,$c_r[$tType],$count,$serviceTime);
|
|
|
|
|
|
//检测时间段
|
|
|
// $timeCount = TimePeriod::where(['org_id' => $org_id, 'docter_id' => $docter_id])->count();
|
| xqd
@@ -894,19 +897,17 @@ class ApiController extends Controller
|
|
|
* $type int 排班类型
|
|
|
* @descript 删除排班数据
|
|
|
*/
|
|
|
- public static function deleteScheduleInfo($docter_id,$timeType,$orgId=0){
|
|
|
+ public static function deleteScheduleInfo($docter_id,$sType,$timeType,$orgId=0){
|
|
|
if($docter_id != 0){
|
|
|
- TimePeriod::where(['docter_id'=>$docter_id,'type'=>$timeType,'org_id'=>$orgId])->delete();
|
|
|
SchedulePeriod::where(['docter_id'=>$docter_id,'type'=>$timeType])->where('organization_id','=',$orgId)->delete();
|
|
|
} else {
|
|
|
- TimePeriod::where(['org_id'=>$orgId,'type'=>$timeType,'docter_id'=>$docter_id])->delete();
|
|
|
SchedulePeriod::where(['organization_id'=>$orgId,'type'=>$timeType])->where('docter_id',0)->delete();
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
//插入时间段
|
|
|
- public static function makeTimePeriod($docterId,$orgId,$sType,$tType,$timeConfig,$timerCount,$serviceTime)
|
|
|
+ public static function makeTimePeriod($docterId,$orgId,$sType,$timeConfig,$timerCount,$serviceTime)
|
|
|
{
|
|
|
for($i=1;$i<=$timerCount;$i++){
|
|
|
$timePreiod = [
|
| xqd
@@ -917,8 +918,13 @@ class ApiController extends Controller
|
|
|
'end_time_period'=> date('H:i',strtotime($timeConfig['start_time']) + $i*$serviceTime*60),
|
|
|
];
|
|
|
$isHave = TimePeriod::where($timePreiod)->count();
|
|
|
- if($isHave == 0) TimePeriod::insert($timePreiod);
|
|
|
+// dump($timePreiod);
|
|
|
+// dump($isHave);
|
|
|
+
|
|
|
+ if($isHave == 0) $allData[] = $timePreiod;
|
|
|
}
|
|
|
+ dump($allData);
|
|
|
+ dump(TimePeriod::insert($allData));
|
|
|
return true;
|
|
|
}
|
|
|
|
| xqd
@@ -1048,40 +1054,48 @@ class ApiController extends Controller
|
|
|
//todo 上线取消默认值
|
|
|
$schdule_data = request('schedule_data');
|
|
|
$docter_id = intval(request('docter_id'));
|
|
|
- $type = intval(request('type'));//排班类型 1门诊 2...
|
|
|
+ $sType = intval(request('type'));//排班类型 1门诊 2...
|
|
|
$org_id = intval(request('org_id'));
|
|
|
$date = request('date');
|
|
|
+ if($sType !=1){
|
|
|
+ $docter_id = 0;
|
|
|
+ }
|
|
|
//判断排班类型
|
|
|
|
|
|
- if(empty($schdule_data) || !isset($org_id) || empty($type)){
|
|
|
+ if(empty($schdule_data) || !isset($org_id) || empty($sType)){
|
|
|
return apiReturn(601,'缺少必要参数');
|
|
|
}
|
|
|
//获取医生排班配置
|
|
|
$schedule = object_array(json_decode($schdule_data));
|
|
|
//默认为门诊排班医生配置
|
|
|
- $setting = self::getSetting($type,$docter_id,$org_id);
|
|
|
+ $setting = self::getSetting($sType,$docter_id,$org_id);
|
|
|
if(empty($setting)){
|
|
|
- self::setDefultSetting($type,$docter_id,$org_id);
|
|
|
- $setting = self::getSetting($type,$docter_id,$org_id);
|
|
|
+ self::setDefultSetting($sType,$docter_id,$org_id);
|
|
|
+ $setting = self::getSetting($sType,$docter_id,$org_id);
|
|
|
}
|
|
|
|
|
|
+ $self_config = object_array(json_decode($setting['service_time']));
|
|
|
+
|
|
|
+ $times = [
|
|
|
+ [$self_config[1]['amStartTime'],$self_config[1]['amEndTime']],
|
|
|
+ [$self_config[2]['pmStartTime'],$self_config[2]['pmEndTime']],
|
|
|
+ [$self_config[3]['nightStartTime'],$self_config[3]['nightEndTime']],
|
|
|
+ ];
|
|
|
|
|
|
// $schdule_data = [
|
|
|
// ['status'=>true,'type'=>1,'start'=>"09:00",'end'=>'11:30','date'=>15,'week'=>1],
|
|
|
// ['status'=>true,'type'=>2,'start'=>'13:30','end'=>'16:30','date'=>15,'week'=>1],
|
|
|
// ['status'=>false,'type'=>3,'start'=>'19:30','end'=>'21:00','date'=>15,'week'=>1],
|
|
|
// ];
|
|
|
-
|
|
|
- if($type != 1){
|
|
|
- $docter_id = 0;
|
|
|
- }
|
|
|
+ $time_t = [];
|
|
|
// echo '社区id '.$org_id.' 医生id '.$docter_id;
|
|
|
DB::beginTransaction();
|
|
|
try {
|
|
|
foreach ($schedule['schedulelingList'] as $t=>$v){
|
|
|
|
|
|
+
|
|
|
$today = $schedule['day'];
|
|
|
- $week =$schedule['week'];
|
|
|
+ $week = intval($schedule['week']);
|
|
|
|
|
|
if($v['status'] == true){
|
|
|
$num_date = intval(date('Ymd',strtotime($today)));
|
| xqd
@@ -1091,10 +1105,8 @@ class ApiController extends Controller
|
|
|
if(!$s_id){
|
|
|
$s_id = Schedule::insertGetId($sche_data);
|
|
|
}
|
|
|
-
|
|
|
//获取时间段
|
|
|
- $timeperiods = TimePeriod::where(['docter_id'=>intval($docter_id),'org_id'=>intval($org_id),'type'=>intval($v['type'])])->pluck('id')->toArray();
|
|
|
-
|
|
|
+ $timeperiods = TimePeriod::where(['docter_id'=>intval($docter_id),'org_id'=>intval($org_id),'type'=>$sType])->whereBetween('end_time_period',$times[$t])->pluck('id')->toArray();
|
|
|
if(empty($timeperiods)){
|
|
|
return apiReturn(603,'没有时间段');
|
|
|
// self::setTimeperiod($type,$docter_id,$org_id);
|
| xqd
@@ -1109,7 +1121,7 @@ class ApiController extends Controller
|
|
|
'week'=>$week,
|
|
|
'type'=>$v['type'],
|
|
|
'schedule_date'=>$today,
|
|
|
- 'schedule_type'=>$type,
|
|
|
+ 'schedule_type'=>$sType,
|
|
|
'docter_id'=>$docter_id,
|
|
|
];
|
|
|
|
| xqd
@@ -1118,9 +1130,10 @@ class ApiController extends Controller
|
|
|
$self_count = SelfSchedule::where($data)->count();
|
|
|
if(!$self_count) SelfSchedule::insert($data);
|
|
|
|
|
|
+ unset($data['week']);
|
|
|
$data['schedule_id']=$s_id;
|
|
|
$is_schedule_period = SchedulePeriod::where($data)->count();
|
|
|
- if(!$is_schedule_period) SelfSchedule::insert($data);
|
|
|
+ if(!$is_schedule_period) SchedulePeriod::insert($data);
|
|
|
|
|
|
}
|
|
|
|
| xqd
@@ -1130,7 +1143,7 @@ class ApiController extends Controller
|
|
|
'week'=>$week,
|
|
|
'type'=>$v['type'],
|
|
|
'docter_id'=>$docter_id,
|
|
|
- 'schedule_type'=>$type,
|
|
|
+ 'schedule_type'=>$sType,
|
|
|
'schedule_date'=>$today
|
|
|
];
|
|
|
// dump($data);
|