| xqd
@@ -610,15 +610,15 @@ class ScheDuleController extends Controller
|
|
|
public function updateDocterSetting()
|
|
|
{
|
|
|
$docter_id = intval(request('docter_id',1));
|
|
|
- $configData = request('configData',1);
|
|
|
+ $configData = request('configData');
|
|
|
$type = request('type',1);//医生类型 1 机构 2 医生
|
|
|
$schedule_type = request('schedule_type',1); //排班类型 1门诊 2计免 3儿保
|
|
|
$org_id = intval(request('org_id',0));
|
|
|
+
|
|
|
+ $configData = object_array(json_decode($configData));
|
|
|
if(empty($docter_id) || empty($configData)){
|
|
|
return apiReturn(604,'参数错误');
|
|
|
}
|
|
|
-
|
|
|
- $configData = object_array(json_decode($configData));
|
|
|
// $configData = [
|
|
|
// 'amEndTime'=>"11:30",
|
|
|
// 'amNum'=>5,
|
| xqd
@@ -654,31 +654,32 @@ class ScheDuleController extends Controller
|
|
|
// ['amStartTime'],
|
|
|
// ];
|
|
|
$setting = DocterSetting::where(['docter_id'=>$docter_id])->first()->toArray();
|
|
|
-
|
|
|
- $configData = object_array(json_decode($setting['service_time']));
|
|
|
-
|
|
|
+ $self_config = [];
|
|
|
$is_new = [];
|
|
|
$is_change = false;
|
|
|
+ if(intval($configData['timeSpan']) != $setting['service_num']){
|
|
|
+ $is_new = [1,2,3];
|
|
|
+ }
|
|
|
+ if(empty($setting) || (intval($configData['timeSpan']) != intval($setting['service_num'])) ){
|
|
|
+ $is_change = true;
|
|
|
+ $self_config = object_array(json_decode($setting['service_time']));
|
|
|
+ $is_new = [1,2,3];
|
|
|
+ } else {
|
|
|
+
|
|
|
+ if($configData['amStartTime'] != $self_config[1]['amStartTime'] || $configData['amEndTime'] != $self_config[1]['amEndTime']){
|
|
|
+ $is_new[] = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($configData['pmStartTime'] != $self_config[2]['pmStartTime'] || $configData['pmEndTime'] != $self_config[2]['pmEndTime']){
|
|
|
+ $is_new[] = 2;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($configData['nightStartTime'] != $self_config[3]['nightStartTime'] || $configData['nightEndTime'] != $self_config[3]['nightEndTime']){
|
|
|
+ $is_new[] = 3;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
-// if(intval($configData['timeSpan']) != $setting['service_num']){
|
|
|
-// $is_change = true;
|
|
|
-// }
|
|
|
-//
|
|
|
-// if($configData['amStartTime'] != $self_config[1]['amStartTime'] || $configData['amEndTime'] != $self_config[1]['amEndTime']){
|
|
|
-// $is_new[] = 1;
|
|
|
-// }
|
|
|
-//
|
|
|
-// if($configData['pmStartTime'] != $self_config[2]['pmStartTime'] || $configData['pmEndTime'] != $self_config[2]['pmEndTime']){
|
|
|
-// $is_new[] = 2;
|
|
|
-// }
|
|
|
-//
|
|
|
-// if($configData['nightStartTime'] != $self_config[3]['nightStartTime'] || $configData['nightEndTime'] != $self_config[3]['nightEndTime']){
|
|
|
-// $is_new[] = 3;
|
|
|
-// }
|
|
|
-
|
|
|
-// if(intval($configData['timeSpan']) != $setting['service_num']){
|
|
|
-// $is_new = [1,2,3];
|
|
|
-// }
|
|
|
// configData: {
|
|
|
// amEndTime: "11:30", //上午结束时间 string
|
|
|
// amNum: 20, //上午号源 Num
|
| xqd
@@ -719,13 +720,16 @@ class ScheDuleController extends Controller
|
|
|
$self_schedule = SelfSchedule::where(['docter_id' => $docter_id, 'schedule_type' => $schedule_type, 'type' => 1])->distinct('type')
|
|
|
->orderBy('schedule_date')->get(['schedule_date', 'type', 'week'])->toArray();
|
|
|
SchedulePeriod::where(['docter_id' => $docter_id])->where('schedule_date', '>', date('Y-m-d', time()))->delete();
|
|
|
+
|
|
|
if (empty($week_schedule)) {
|
|
|
Schedule::where(['docter_id' => $docter_id])->delete();
|
|
|
SelfSchedule::where(['docter_id' => $docter_id])->delete();
|
|
|
} else {
|
|
|
- $schedule = Schedule::where(['docter_id'=>$docter_id,'organization_id'=>$org_id])
|
|
|
- ->where('schedule_date','>',date('Y-m-d',time()))->pluck('schedule_date','id')->toArray();
|
|
|
-// $schedule = Schedule::where(['docter_id' => $docter_id, 'organization_id' => $org_id])->pluck('schedule_date', 'id')->toArray();
|
|
|
+ $schedule = Schedule::where(['docter_id'=>$docter_id,'organization_id'=>$org_id])->where('schedule_date','>',date('Y-m-d',time()))->pluck('schedule_date','id')->toArray();
|
|
|
+// self::changeTimePeriods($docter_id,$type,$startTime,$endTime,$timeNum);
|
|
|
+ //插入以前的数据
|
|
|
+// self::selfSchedule($time_periods,$schedule,$org_id,$docter_id,$type,$week_schedule);
|
|
|
+ $schedule = Schedule::where(['docter_id' => $docter_id, 'organization_id' => $org_id])->pluck('schedule_date', 'id')->toArray();
|
|
|
foreach ($schedule as $id => $date) {
|
|
|
$week = intval(date('N', strtotime($date)));
|
|
|
foreach ($week_schedule as $w) {
|
| xqd
@@ -804,7 +808,6 @@ class ScheDuleController extends Controller
|
|
|
if ($schedule_is_have) continue;
|
|
|
$s_t['created_at'] = Carbon::now();
|
|
|
$s_t['updated_at'] = Carbon::now();
|
|
|
- if ($self_schedule == 1) $s_t['me_sure'] = 1;
|
|
|
SchedulePeriod::insert($s_t);
|
|
|
}
|
|
|
}
|
| xqd
@@ -1002,16 +1005,28 @@ class ScheDuleController extends Controller
|
|
|
//获取用户信息
|
|
|
public function getScheduleInfo()
|
|
|
{
|
|
|
- $docter_id = request('id');
|
|
|
- $org_id = request('org_id');
|
|
|
- $is_docter = CdmsUsers::where('docter_id',$docter_id)->first();
|
|
|
- if(empty($org_id) && empty($docter_id)){
|
|
|
+ $id = request('id');
|
|
|
+ $isDocter = CdmsUsers::where('docter_id',$id)->first();
|
|
|
+ $isOrg = CdmsUsers::where('org_id',$id)->first();
|
|
|
+ $org_id = null;
|
|
|
+ $role = 1;
|
|
|
+
|
|
|
+ if(empty($id)){
|
|
|
return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
|
|
|
}
|
|
|
- $role = 1;
|
|
|
- if($is_docter){
|
|
|
+
|
|
|
+ if($isDocter){
|
|
|
+ $org_id = $isDocter->org_id;
|
|
|
+ $docter = Docter::where(['id'=>$id])->first();
|
|
|
$role = 2;
|
|
|
+ } else {
|
|
|
+ if(!empty($isOrg->org_id)){
|
|
|
+ $org_id = $isOrg->org_id;
|
|
|
+ } else {
|
|
|
+ $role = 0;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
$lists =[];
|
|
|
if($role == 1){
|
|
|
$ids = DocterOrganization::where(['organization_id'=>$org_id])->pluck('docter_id')->toArray();
|
| xqd
@@ -1020,20 +1035,34 @@ class ScheDuleController extends Controller
|
|
|
$lists[] = ['value'=>$val->id,'label'=>$val->name];
|
|
|
}
|
|
|
$name = Organization::where('id',$org_id)->value('name');
|
|
|
- $user_id = $org_id;
|
|
|
- } else {
|
|
|
- $ids = DocterOrganization::where(['docter_id'=>intval($docter_id)])->distinct('organization_id')->pluck('organization_id')->toArray();
|
|
|
+ $user_id = $id;
|
|
|
+ } else if($role == 2){
|
|
|
+ $ids = DocterOrganization::where(['docter_id'=>intval($id)])->distinct('organization_id')->pluck('organization_id')->toArray();
|
|
|
$list = Organization::whereIn('id',$ids)->get(['id','name']);
|
|
|
foreach ($list as $val){
|
|
|
$lists[] = ['value'=>$val->id,'label'=>$val->name];
|
|
|
}
|
|
|
- $name = Docter::where('id',$docter_id)->value('name');
|
|
|
- $user_id = $docter_id;
|
|
|
+ $name = Docter::where('id',$id)->value('name');
|
|
|
+ $user_id = $id;
|
|
|
+ } else {
|
|
|
+ $name = '';
|
|
|
}
|
|
|
- $data['user_id'] = $user_id;
|
|
|
+
|
|
|
+
|
|
|
+ $type = 1;
|
|
|
+ $data['user_id'] = $id;
|
|
|
$data['name'] = $name;
|
|
|
+ $data['org_id'] = $org_id;
|
|
|
+ $data['docter_type'] = 0;
|
|
|
+ $data['list'] = [];
|
|
|
+
|
|
|
+ if(!empty($docter)){
|
|
|
+ $data['docter_type'] = $docter->type;
|
|
|
+ if($docter->type == 1){
|
|
|
+ $data['list'] = $lists;
|
|
|
+ }
|
|
|
+ }
|
|
|
$data['role'] = $role;
|
|
|
- $data['list'] = $lists;
|
|
|
return (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
|
|
|
}
|
|
|
|
| xqd
@@ -1490,5 +1519,41 @@ class ScheDuleController extends Controller
|
|
|
return 'ok';
|
|
|
}
|
|
|
|
|
|
+ public static function selfSchedule($time_periods,$schedule,$org_id,$docter_id,$type,$week_schedule)
|
|
|
+ {
|
|
|
|
|
|
+ if(!is_array($schedule) || count($schedule) <1){
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ foreach ($schedule as $id => $date) {
|
|
|
+ $week = intval(date('N', strtotime($date)));
|
|
|
+ foreach ($week_schedule as $w) {
|
|
|
+ if ($week == $w) {
|
|
|
+ foreach ($time_periods as $idt) {
|
|
|
+ $s_t = [
|
|
|
+ 'organization_id' => $org_id,
|
|
|
+ 'docter_id' => $docter_id,
|
|
|
+ 'type' => $type,
|
|
|
+ 'schedule_date' => $date,
|
|
|
+ 'schedule_id' => $id,
|
|
|
+ 'time_period_id' => $idt
|
|
|
+ ];
|
|
|
+ $schedule_is_have = SchedulePeriod::where($s_t)->count();
|
|
|
+ if ($schedule_is_have) continue;
|
|
|
+ $s_t['created_at'] = Carbon::now();
|
|
|
+ $s_t['updated_at'] = Carbon::now();
|
|
|
+ SchedulePeriod::insert($s_t);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public static function setNewSchedule($time_periods,$schedule,$org_id,$docter_id,$type,$week_schedule)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ public static function changeTimePeriods($docter_id,$type,$startTime,$endTime,$timeNum)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
}
|