| xqd
@@ -342,10 +342,10 @@ class ApiController extends Controller
|
|
|
}
|
|
|
|
|
|
$docter_setting = DocterSetting::where(['docter_id'=>$docter_id,'org_id'=>$org_id,'type'=>$sType])->first();
|
|
|
- $serviceNum = 0;
|
|
|
+// $serviceNum = 0;
|
|
|
$times = [];
|
|
|
if(!empty($docter_setting)){
|
|
|
- $serviceNum = $docter_setting->service_num;
|
|
|
+// $serviceNum = $docter_setting->service_num;
|
|
|
$time_period = object_array(json_decode($docter_setting->service_time));
|
|
|
$allCount = TimePeriod::where(['docter_id'=>$docter_id,'org_id'=>$org_id])->count();
|
|
|
if($allCount == 0) return apiReturn(603,'请设置时间段');
|
| xqd
@@ -413,23 +413,23 @@ class ApiController extends Controller
|
|
|
DB::rollBack();
|
|
|
return apiReturn(602,$e->getLine().'行'.$e->getMessage());
|
|
|
}
|
|
|
- self::setmonthScheduel($docter_id,$org_id,$sType,$serviceNum,$times);
|
|
|
+ self::setmonthScheduel($docter_id,$org_id,$sType,$times);
|
|
|
|
|
|
return apiReturn(200,'ok',$k);
|
|
|
}
|
|
|
|
|
|
//设置月排班
|
|
|
- public function setmonthScheduel($docterId,$orgId,$sType,$serviceNum,$timePeriods)
|
|
|
+ public function setmonthScheduel($docterId,$orgId,$sType,$timePeriods)
|
|
|
{
|
|
|
|
|
|
$today = intval(date('Ymd',time()));
|
|
|
$start = time();
|
|
|
|
|
|
//删除排班
|
|
|
- $schedule_ids = Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId])->where('schedule_day','>',$today)->pluck('id')->toArray();
|
|
|
- Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId])->where('schedule_day','>',$today)->delete();
|
|
|
+ $schedule_ids = Schedule::where(['docter_id'=>$docterId,'schedule_type'=>$sType])->where('schedule_day','>',$today)->pluck('id')->toArray();
|
|
|
+// Schedule::where(['docter_id'=>$docterId])->where('schedule_day','>',$today)->delete();
|
|
|
//删除具体排班
|
|
|
- SchedulePeriod::whereIn('schedule_id',$schedule_ids)->delete();
|
|
|
+ SchedulePeriod::where('organization_id',$orgId)->whereIn('schedule_id',$schedule_ids)->delete();
|
|
|
$allScheduleData = [];
|
|
|
//插入两个月的数据
|
|
|
for ($i=1;$i<60;$i++){
|
| xqd
@@ -440,24 +440,24 @@ class ApiController extends Controller
|
|
|
$scheduleData['docter_id'] = $docterId;
|
|
|
$scheduleData['schedule_date'] = $date;
|
|
|
$scheduleData['schedule_day'] = $numDate;
|
|
|
- $scheduleData['organization_id'] = $orgId;
|
|
|
+ $scheduleData['schedule_type'] = $sType;
|
|
|
|
|
|
$scheduleIsHave = Schedule::where($scheduleData)->count();
|
|
|
- $scheduleData['per_time_num'] = $serviceNum;
|
|
|
+// $scheduleData['per_time_num'] = $serviceNum;
|
|
|
//循环外批量插入
|
|
|
if (!$scheduleIsHave) $allScheduleData[] = $scheduleData;
|
|
|
}
|
|
|
if($allScheduleData) Schedule::insert($allScheduleData);
|
|
|
|
|
|
// echo '医生id '.$docterId.' 机构id '.$orgId . 'times ';
|
|
|
- $schedule = Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId])->where('schedule_date','>=',date('Y-m-d',time()))
|
|
|
+ $schedule = Schedule::where(['docter_id'=>$docterId,'schedule_type'=>$sType])->where('schedule_date','>=',date('Y-m-d',time()))
|
|
|
->distinct('schedule_date')->pluck('schedule_date','id')->toArray();
|
|
|
|
|
|
$allData = [];
|
|
|
for($tType = 1; $tType<=3 ; $tType++){
|
|
|
foreach ($schedule as $id => $date) {
|
|
|
$week = intval(date('N', strtotime($date)));
|
|
|
- $real_id = WeekSchedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId,'week'=>$week,'type'=>$tType])->first();
|
|
|
+ $real_id = WeekSchedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId,'schedule_type'=>$sType,'week'=>$week,'type'=>$tType])->first();
|
|
|
if (!empty($real_id)) {
|
|
|
foreach ($timePeriods[$tType-1] as $idt) {
|
|
|
$s_t= [
|
| xqd
@@ -471,7 +471,7 @@ class ApiController extends Controller
|
|
|
];
|
|
|
|
|
|
$scheduleIsHave = SchedulePeriod::where($s_t)->count();
|
|
|
- $s_t['order_num'] = $serviceNum;
|
|
|
+ $s_t['order_num'] = 0;
|
|
|
if (!$scheduleIsHave) $allData[] = $s_t;
|
|
|
|
|
|
}
|
| xqd
@@ -484,8 +484,8 @@ class ApiController extends Controller
|
|
|
|
|
|
//删除 Schedule里面SchedulePeriod 没有的日期
|
|
|
foreach ($schedule as $date) {
|
|
|
- $c = SchedulePeriod::where(['docter_id'=>$docterId,'organization_id'=>$orgId,'schedule_type'=> $sType])->where('schedule_date',$date)->count();
|
|
|
- if($c==0) Schedule::where('schedule_date',$date)->delete();
|
|
|
+ $c = SchedulePeriod::where(['docter_id'=>$docterId,'schedule_date'=>$date,'schedule_type'=> $sType])->count();
|
|
|
+ if($c==0) Schedule::where(['docter_id'=>$docterId,'schedule_date'=>$date,'schedule_type' => $sType])->delete();
|
|
|
}
|
|
|
return apiReturn('200','ok');
|
|
|
|
| xqd
@@ -694,7 +694,7 @@ class ApiController extends Controller
|
|
|
$Today = date('Y-m-d',time());
|
|
|
|
|
|
//同时服务人数
|
|
|
- $serviceNum = intval($configData['serviceNum']);
|
|
|
+// $serviceNum = intval($configData['serviceNum']);
|
|
|
|
|
|
//服务时长
|
|
|
$serviceTime = intval($configData['timeSpan']);
|
| xqd
@@ -764,11 +764,12 @@ class ApiController extends Controller
|
|
|
// $timeCount = TimePeriod::where(['org_id' => $org_id, 'docter_id' => $docter_id])->count();
|
|
|
// if($timeCount == 0) return apiReturn(603,'请设置时间段');
|
|
|
|
|
|
+ $time_periods = TimePeriod::where(['org_id' => $org_id, 'docter_id' => $docter_id, 'type' => $sType])->whereBetween('end_time_period',$times[$tType])->pluck('id')->toArray();
|
|
|
+ $schedule = Schedule::where(['docter_id' => $docter_id,'schedule_type' => $sType])->pluck('schedule_date', 'id')->toArray();
|
|
|
+ $self_schedule = SelfSchedule::where(['docter_id' => 0, 'schedule_type' => $sType,'organization_id'=>$org_id,'type' =>$tType])->distinct('type')
|
|
|
+ ->orderBy('schedule_date')->where('schedule_date','>',$Today)->get(['schedule_date', 'type', 'week'])->toArray();
|
|
|
+
|
|
|
if($sType == 1){
|
|
|
- $time_periods = TimePeriod::where(['org_id' => $org_id, 'docter_id' => $docter_id, 'type' => $sType])->whereBetween('end_time_period',$times[$tType])->pluck('id')->toArray();
|
|
|
- $self_schedule = SelfSchedule::where(['docter_id' => $docter_id, 'schedule_type' => $sType, 'organization_id'=>$org_id,'type' =>$tType])->distinct('type')
|
|
|
- ->orderBy('schedule_date')->get(['schedule_date', 'type', 'week'])->toArray();
|
|
|
- $schedule = Schedule::where(['docter_id' => $docter_id, 'organization_id'=>0])->pluck('schedule_date', 'id')->toArray();
|
|
|
$week_schedule = WeekSchedule::where(['docter_id' => $docter_id, 'type' => $tType,'schedule_type'=>$sType])
|
|
|
->distinct('type')
|
|
|
->orderBy('week')
|
| xqd
@@ -776,10 +777,7 @@ class ApiController extends Controller
|
|
|
->GroupBy('week')
|
|
|
->toArray();
|
|
|
} else {
|
|
|
- $time_periods = TimePeriod::where(['org_id' => $org_id, 'docter_id' => 0, 'type' =>$sType])->whereBetween('end_time_period',$times[$tType])->pluck('id')->toArray();
|
|
|
- $schedule = Schedule::where(['docter_id' => 0, 'organization_id'=>$org_id])->pluck('schedule_date', 'id')->toArray();
|
|
|
- $self_schedule = SelfSchedule::where(['docter_id' => 0, 'schedule_type' => $sType,'organization_id'=>$org_id,'type' =>$tType])->distinct('type')
|
|
|
- ->orderBy('schedule_date')->where('schedule_date','>',$Today)->get(['schedule_date', 'type', 'week'])->toArray();
|
|
|
+
|
|
|
$week_schedule = WeekSchedule::where(['organization_id' =>$org_id, 'type' => $tType,'schedule_type'=>$sType])
|
|
|
->distinct('type')
|
|
|
->orderBy('week')
|
| xqd
@@ -794,7 +792,7 @@ class ApiController extends Controller
|
|
|
// SelfSchedule::where(['docter_id' => $docter_id])->delete();
|
|
|
} else {
|
|
|
//3.以周模板添加2个月的数据
|
|
|
- self::makeSchedule($sType,$docter_id,$org_id,$tType,$schedule,$time_periods,$serviceNum);
|
|
|
+ self::makeSchedule($sType,$docter_id,$org_id,$tType,$schedule,$time_periods);
|
|
|
|
|
|
//4.恢复自己设置的排班
|
|
|
self::makeSelfScheeule($docter_id,$org_id,$sType,$tType,$time_periods,$self_schedule);
|
| xqd
@@ -932,7 +930,7 @@ class ApiController extends Controller
|
|
|
}
|
|
|
|
|
|
//以周模板进行排班
|
|
|
- public static function makeSchedule ($sType,$docterId,$orgId,$tType,$schedule,$timePeriods,$serviceNum){
|
|
|
+ public static function makeSchedule ($sType,$docterId,$orgId,$tType,$schedule,$timePeriods){
|
|
|
|
|
|
if(empty($schedule) || count($schedule) < 58){
|
|
|
$start = strtotime(date('Y-m-1',time()));
|
| xqd
@@ -949,10 +947,10 @@ class ApiController extends Controller
|
|
|
$scheduleData['docter_id'] = $docterId;
|
|
|
$scheduleData['schedule_date'] = $date;
|
|
|
$scheduleData['schedule_day'] = $numDate;
|
|
|
- $scheduleData['organization_id'] = $orgId;
|
|
|
+ $scheduleData['schedule_type'] = $sType;
|
|
|
|
|
|
$scheduleIsHave = Schedule::where($scheduleData)->count();
|
|
|
- $scheduleData['per_time_num'] = $serviceNum;
|
|
|
+// $scheduleData['per_time_num'] = $serviceNum;
|
|
|
if (!$scheduleIsHave) Schedule::insert($scheduleData);
|
|
|
|
|
|
}
|
| xqd
@@ -969,19 +967,19 @@ class ApiController extends Controller
|
|
|
$scheduleData['docter_id'] = $docterId;
|
|
|
$scheduleData['schedule_date'] = $date;
|
|
|
$scheduleData['schedule_day'] = $numDate;
|
|
|
- $scheduleData['organization_id'] = $orgId;
|
|
|
+ $scheduleData['schedule_type'] = $sType;
|
|
|
$scheduleIsHave = Schedule::where($scheduleData)->count();
|
|
|
- $scheduleData['per_time_num'] = $serviceNum;
|
|
|
+// $scheduleData['per_time_num'] = $serviceNum;
|
|
|
if (!$scheduleIsHave) Schedule::insert($scheduleData);
|
|
|
}
|
|
|
|
|
|
//todo 插入第三个月后的当日号
|
|
|
- $schedule = Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId])->where('schedule_date','>=',date('Y-m-d',time()))
|
|
|
+ $schedule = Schedule::where(['docter_id'=>$docterId,'schedule_type'=>$sType])->where('schedule_date','>=',date('Y-m-d',time()))
|
|
|
->distinct('schedule_date')->pluck('schedule_date','id')->toArray();
|
|
|
- if($docterId == 0){
|
|
|
- $schedule = Schedule::where(['docter_id'=>0,'organization_id'=>$orgId])->where('schedule_date','>=',date('Y-m-d',time()))
|
|
|
- ->distinct('schedule_date')->pluck('schedule_date','id')->toArray();
|
|
|
- }
|
|
|
+// if($docterId == 0){
|
|
|
+// $schedule = Schedule::where(['docter_id'=>0,'schedule_type'=>$sType])->where('schedule_date','>=',date('Y-m-d',time()))
|
|
|
+// ->distinct('schedule_date')->pluck('schedule_date','id')->toArray();
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
//
|
| xqd
@@ -1003,7 +1001,7 @@ class ApiController extends Controller
|
|
|
'time_period_id' => $idt
|
|
|
];
|
|
|
$scheduleIsHave = SchedulePeriod::where($s_t)->count();
|
|
|
- $s_t['order_num'] = $serviceNum;
|
|
|
+ $s_t['order_num'] = 0;
|
|
|
if ($scheduleIsHave) continue;
|
|
|
$allData [] = $s_t;
|
|
|
}
|
| xqd
@@ -1027,7 +1025,7 @@ class ApiController extends Controller
|
|
|
$self_data['organization_id'] = $orgId;
|
|
|
$self_data['docter_id'] = $docterId;
|
|
|
$self_data['schedule_type'] = $sType;
|
|
|
- $s_id = Schedule::where(['docter_id'=>$docterId,'organization_id'=>$orgId,'schedule_date'=>$val['schedule_date']])->value('id');
|
|
|
+ $s_id = Schedule::where(['docter_id'=>$docterId,'schedule_type'=>$sType,'schedule_date'=>$val['schedule_date']])->value('id');
|
|
|
$numDay = intval(str_replace('-','',$val['schedule_date']));
|
|
|
// if(empty($s_id)) {
|
|
|
// Schedule::insert(['docter_id'=>$docterId,'organization_id'=>$orgId,'schedule_date'=>$val['schedule_date'],'schedule_day'=>$numDay]);
|
| xqd
@@ -1102,7 +1100,7 @@ class ApiController extends Controller
|
|
|
|
|
|
if($v['status'] == true){
|
|
|
$num_date = intval(date('Ymd',strtotime($today)));
|
|
|
- $sche_data = ['docter_id'=>intval($docter_id),'organization_id'=>$org_id,'schedule_date'=>$today,'schedule_day'=>$num_date];
|
|
|
+ $sche_data = ['docter_id'=>intval($docter_id),'schedule_type'=>$sType,'schedule_date'=>$today,'schedule_day'=>$num_date];
|
|
|
//判断是否有排班信息
|
|
|
$s_id = Schedule::where($sche_data)->count();
|
|
|
if(!$s_id){
|
| xqd
@@ -1166,7 +1164,7 @@ class ApiController extends Controller
|
|
|
// if(!$week_schedule) continue;
|
|
|
//
|
|
|
// //删除排班日期
|
|
|
- $s_id = Schedule::where(['schedule_date'=>$today,'docter_id'=>$docter_id,'organization_id'=>$org_id])->value('id');
|
|
|
+ $s_id = Schedule::where(['schedule_date'=>$today,'schedule_type'=>$sType,'docter_id'=>$docter_id])->value('id');
|
|
|
unset($data['type']);
|
|
|
$scount = SelfSchedule::where($data)->count();
|
|
|
$pcount = SchedulePeriod::where($data)->count();
|