| xqd
@@ -305,7 +305,7 @@ class ApiController extends Controller
|
|
|
}
|
|
|
} else {
|
|
|
$docter_id = 0;
|
|
|
- for ($i=0;$i<6;$i++){
|
|
|
+ for ($i=1;$i<=7;$i++){
|
|
|
for($j=0;$j<=2;$j++){
|
|
|
$is_self_have = WeekSchedule::where(['docter_id'=>$docter_id,'schedule_type'=>$type,'organization_id'=>$org_id,'week'=>$i+1])->count();
|
|
|
if($is_self_have){
|
| xqd
@@ -340,18 +340,19 @@ class ApiController extends Controller
|
|
|
$docter_setting = DocterSetting::where(['docter_id'=>$docter_id,'org_id'=>$org_id])->first();
|
|
|
} else {
|
|
|
$docter_setting = OrganizationSettings::where(['org_id'=>$org_id])->first();
|
|
|
+ $docter_id = 0;
|
|
|
}
|
|
|
$serviceNum = $docter_setting->service_num;
|
|
|
|
|
|
-
|
|
|
$times = [];
|
|
|
if(!empty($docter_setting)){
|
|
|
+ echo $docter_id;
|
|
|
$time_period = object_array(json_decode($docter_setting->service_time));
|
|
|
- $times[] = TimePeriod::where(['docter_id'=>$docter_id])->whereBetween('end_time_period',[intval($time_period[1]['amStartTime']),intval($time_period[1]['amEndTime'])])->pluck('id')->toArray();
|
|
|
- $times[] = TimePeriod::where(['docter_id'=>$docter_id])->whereBetween('end_time_period',[intval($time_period[2]['pmStartTime']),intval($time_period[2]['pmEndTime'])])->pluck('id')->toArray();
|
|
|
- $times[] = TimePeriod::where(['docter_id'=>$docter_id])->whereBetween('end_time_period',[intval($time_period[3]['nightStartTime']),intval($time_period[3]['nightEndTime'])])->pluck('id')->toArray();
|
|
|
+ $times[] = TimePeriod::where(['docter_id'=>$docter_id,'org_id'=>$org_id])->whereBetween('end_time_period',[intval($time_period[1]['amStartTime']),intval($time_period[1]['amEndTime'])])->pluck('id')->toArray();
|
|
|
+ $times[] = TimePeriod::where(['docter_id'=>$docter_id,'org_id'=>$org_id])->whereBetween('end_time_period',[intval($time_period[2]['pmStartTime']),intval($time_period[2]['pmEndTime'])])->pluck('id')->toArray();
|
|
|
+ $times[] = TimePeriod::where(['docter_id'=>$docter_id,'org_id'=>$org_id])->whereBetween('end_time_period',[intval($time_period[3]['nightStartTime']),intval($time_period[3]['nightEndTime'])])->pluck('id')->toArray();
|
|
|
}
|
|
|
-
|
|
|
+ echo '時間段'.'<br>';
|
|
|
if(count($times) < 3){
|
|
|
return apiReturn('603','请配置时间段');
|
|
|
}
|
| xqd
@@ -445,20 +446,20 @@ class ApiController extends Controller
|
|
|
if (!$scheduleIsHave) Schedule::insert($scheduleData);
|
|
|
}
|
|
|
|
|
|
+ echo '医生id '.$docterId.' 机构id '.$orgId . 'times ';
|
|
|
$schedule = Schedule::where(['docter_id'=>$docterId,'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,'organization_id'=>$orgId])->where('schedule_date','>=',date('Y-m-d',time()))
|
|
|
->distinct('schedule_date')->pluck('schedule_date','id')->toArray();
|
|
|
}
|
|
|
-
|
|
|
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();
|
|
|
-
|
|
|
if (!empty($real_id)) {
|
|
|
foreach ($timePeriods[$tType-1] as $idt) {
|
|
|
+ dump($timePeriods[$tType-1]);
|
|
|
if($docterId != 0){//门诊
|
|
|
$s_t = [
|
|
|
'docter_id' => $docterId,
|
| xqd
@@ -475,18 +476,18 @@ class ApiController extends Controller
|
|
|
|
|
|
} else {
|
|
|
$s_t = [
|
|
|
- 'docter_id' => 0,
|
|
|
+ 'docter_id' =>0,
|
|
|
'organization_id' => $orgId,
|
|
|
'type' => $tType,
|
|
|
'schedule_date' => $date,
|
|
|
'schedule_id' => $id,
|
|
|
'time_period_id' => $idt
|
|
|
];
|
|
|
-
|
|
|
$scheduleIsHave = SchedulePeriod::where($s_t)->count();
|
|
|
$s_t['order_num'] = $serviceNum;
|
|
|
if (!$scheduleIsHave) SchedulePeriod::insert($s_t);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
| xqd
@@ -518,7 +519,8 @@ class ApiController extends Controller
|
|
|
->whereBetween('schedule_date',[$start_date,$end_date])->pluck('schedule_date','id')->toArray();
|
|
|
$serviceConfig = object_array(json_decode($settingConfig['service_time']));
|
|
|
} else {
|
|
|
- $schedule_data = Schedule::where(['docter_id'=>0,'organization_id'=>$org_id])->
|
|
|
+ $docter_id = 0;
|
|
|
+ $schedule_data = Schedule::where(['docter_id'=>$docter_id,'organization_id'=>$org_id])->
|
|
|
whereBetween('schedule_date',[$start_date,$end_date])->pluck('schedule_date','id')->toArray();
|
|
|
$serviceConfig = object_array(json_decode($settingConfig['service_time']));
|
|
|
}
|
| xqd
@@ -598,9 +600,8 @@ class ApiController extends Controller
|
|
|
'day'=>$scheduleDate
|
|
|
];
|
|
|
} else {
|
|
|
- $today = SchedulePeriod::where(['docter_id'=>$docter_id,'schedule_date'=>$scheduleDate])->where('organization_id','!=',0)->distinct('organization_id')
|
|
|
+ $today = SchedulePeriod::where(['docter_id'=>$docter_id,'schedule_date'=>$scheduleDate])->where('organization_id',$org_id)->distinct('organization_id')
|
|
|
->distinct('type')->get(['organization_id','type'])->GroupBy('type')->toArray();
|
|
|
-
|
|
|
if(empty($today)){
|
|
|
$scheduleList[$i-1] = [
|
|
|
'schedulelingList'=>$baseData,
|
| xqd
@@ -609,16 +610,18 @@ class ApiController extends Controller
|
|
|
'day'=>$scheduleDate
|
|
|
];
|
|
|
} else {
|
|
|
+
|
|
|
foreach ($today as $type => $orginfo){
|
|
|
$orgids = array_column($orginfo,'organization_id');
|
|
|
$idSum = array_sum($orgids);
|
|
|
- if($org_id == $idSum) $newBase[$type]['status'] = true;
|
|
|
- if($org_id != $idSum) $newBase[$type]['status'] = 'other';
|
|
|
+ if($org_id == $idSum) $newBase[$type-1]['status'] = true;
|
|
|
+ if($org_id != $idSum) $newBase[$type-1]['status'] = 'other';
|
|
|
}
|
|
|
}
|
|
|
//覆盖自定义排班
|
|
|
$self = SelfSchedule::where(['docter_id'=>$docter_id,'schedule_date'=>$scheduleDate,'organization_id'=>$org_id])->get(['type'])->GroupBy('type')->toArray();
|
|
|
if(!empty($self)){
|
|
|
+
|
|
|
foreach($self as $k=>$sf){
|
|
|
$newBase[$k-1]['status'] = true;
|
|
|
}
|
| xqd
@@ -832,7 +835,7 @@ class ApiController extends Controller
|
|
|
|
|
|
if($type == 1){
|
|
|
$time_periods = TimePeriod::where(['org_id' => $org_id, 'docter_id' => $docter_id, 'type' => $tType])->pluck('id')->toArray();
|
|
|
- $self_schedule = SelfSchedule::where(['docter_id' => $docter_id, 'schedule_type' => $type, 'organization_id'=>0,'type' =>1])->distinct('type')
|
|
|
+ $self_schedule = SelfSchedule::where(['docter_id' => $docter_id, 'schedule_type' => $type, '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'=>$type])
|
| xqd
@@ -966,6 +969,8 @@ class ApiController extends Controller
|
|
|
$data['name'] = $name;
|
|
|
$data['org_id'] = $org_id;
|
|
|
$data['list'] = $list;
|
|
|
+ $data['docter_type'] = 2;
|
|
|
+
|
|
|
//
|
|
|
// if(!empty($docter)){
|
|
|
// if($docter->type == 1){
|
| xqd
@@ -1113,6 +1118,8 @@ class ApiController extends Controller
|
|
|
public static function makeSelfScheeule($docterId,$orgId,$scheduleType,$timeType,$timesPeriods,$selfSchedule){
|
|
|
|
|
|
$date = date('Y-m-d',time());
|
|
|
+// dump($selfSchedule);
|
|
|
+// dump($timesPeriods);
|
|
|
//删除自己排班数据
|
|
|
SelfSchedule::where(['type'=>$timeType,'docter_id'=>$docterId,'organization_id'=>$orgId,'schedule_type'=>$scheduleType])->where('schedule_date','>',$date)->delete();
|
|
|
foreach ($selfSchedule as $val) {
|