Kaynağa Gözat

排班交互优化

Swdz-WangHaiJun 4 yıl önce
ebeveyn
işleme
8ff69ffede

+ 65 - 27
app/Community/Controllers/ApiController.php

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -551,20 +551,18 @@ class ApiController extends Controller
         $start_date = date('Y-m-d',$start_time);
         $end_date = date('Y-m-d',$end_time);
         $types = [1=>1,2=>2,3=>3];
+        $settingConfig =  self::getSetting($type,$docter_id,$org_id);
 
 
         if($type == 1){
             $schedule_data = Schedule::where(['docter_id'=>$docter_id,'organization_id'=>0])
                 ->whereBetween('schedule_date',[$start_date,$end_date])->pluck('schedule_date','id')->toArray();
-            $settingConfig = DocterSetting::where(['docter_id'=>$docter_id])->first();
             $serviceConfig = object_array(json_decode($settingConfig['service_time']));
         } else {
             $schedule_data = Schedule::where(['docter_id'=>0,'organization_id'=>$org_id])->
             whereBetween('schedule_date',[$start_date,$end_date])->pluck('schedule_date','id')->toArray();
-            $settingConfig = OrganizationSettings::where(['org_id'=>$org_id])->first();
             $serviceConfig = object_array(json_decode($settingConfig['service_time']));
         }
-
         if(!empty($settingConfig)){
             $baseData =  [
                 ['status'=>false,'type'=>1,'start'=>$serviceConfig[1]['amStartTime'],'end'=>$serviceConfig[1]['amEndTime']],
@@ -592,7 +590,7 @@ class ApiController extends Controller
             if(empty($schedule_data)){
                 $scheduleList[] = [
                     'schedulelingList'=>$baseData,
-                    'date'=>$scheduleDate,
+                    'date'=>$i,
                     'week'=>$week,
                     'day'=>$scheduleDate
                 ];
@@ -609,7 +607,7 @@ class ApiController extends Controller
                     if(empty($today)){
                         $scheduleList[] = [
                             'schedulelingList'=>$baseData,
-                            'date'=>$scheduleDate,
+                            'date'=>$i,
                             'week'=>$week,
                             'day'=>$scheduleDate
                         ];
@@ -627,7 +625,7 @@ class ApiController extends Controller
                         }
                         $scheduleList[] = [
                             'schedulelingList'=>$baseData,
-                            'date'=>$scheduleDate,
+                            'date'=>$i,
                             'week'=>$week,
                             'day'=>$scheduleDate
                         ];
@@ -639,7 +637,7 @@ class ApiController extends Controller
                     if(empty($today)){
                         $scheduleList[] = [
                             'schedulelingList'=>$baseData,
-                            'date'=>$scheduleDate,
+                            'date'=>$i,
                             'week'=>$week,
                             'day'=>$scheduleDate
                         ];
@@ -652,7 +650,7 @@ class ApiController extends Controller
                         }
                         $scheduleList[] = [
                             'schedulelingList'=>$baseData,
-                            'date'=>$scheduleDate,
+                            'date'=>$i,
                             'week'=>$week,
                             'day'=>$scheduleDate
                         ];
@@ -1162,11 +1160,10 @@ class ApiController extends Controller
         //todo 上线取消默认值
         $schdule_data = request('schedule_data');
         $docter_id = intval(request('docter_id'));
-        $schedule_type = request('type');
+        $type = intval(request('type'));
         $org_id = intval(request('org_id'));
         $date = request('date');
         //判断排班类型
-        $schedule_type == 1?$type=2:$type=1;
 
         if(empty($schdule_data) || empty($docter_id) || !isset($org_id) || empty($type)){
             return apiReturn(601,'缺少必要参数');
@@ -1174,9 +1171,12 @@ class ApiController extends Controller
         //获取医生排班配置
         $schedule = object_array(json_decode($schdule_data));
         //默认为门诊排班医生配置
-        $setting = DocterSetting::where(['docter_id'=>$docter_id])->first();
-        //获取社区排班设置
-        if($type == 1) $setting = OrganizationSettings::where(['org_id'=>$org_id])->first();
+        $setting = self::getSetting($type,$docter_id,$org_id);
+        if(empty($setting)){
+            self::setDefultSetting($type,$docter_id,$org_id);
+            $setting = self::getSetting($type,$docter_id,$org_id);
+        }
+
 
         $schdule_data = [
             ['status'=>true,'type'=>1,'start'=>"09:00",'end'=>'11:30','date'=>15,'week'=>1],
@@ -1208,7 +1208,9 @@ class ApiController extends Controller
                     }
 
                     if(empty($timeperiods)){
+                        return apiReturn(603,'没有时间段');
                         self::setTimeperiod($type,$docter_id,$org_id);
+                        $timeperiods = self::getTypeTimeperiod($type,$docter_id,$org_id,intval($v['type']));
                     }
                     foreach ($timeperiods as $id){
                         $data = [
@@ -1263,16 +1265,32 @@ class ApiController extends Controller
     public static function setTimeperiod($type,$docterId,$orgId)
     {
         $setting = self::getSetting($type,$docterId,$orgId);
-        if(empty($setting)) {
-            self::setDefultSetting($type,$docterId,$orgId);
-            $setting = self::getSetting($type,$docterId,$orgId);
-        }
-
-
+        $serviceTime = $setting['service_times'];
         $serviceConfig = object_array(json_decode($setting->service_time));
+        $fieldArr = [1=>'am',2=>'pm',3=>'night'];
+        foreach ($serviceConfig as $t =>$service){
+            $p = $fieldArr[$t];
+            for($i=1;$i<=$service[$p.'Person'];$i++){
+                $start_time = strtotime($service[$p.'StartTime']);
+                if($type == 1){
+                    $timePreiod['org_id'] = $orgId;
+                    $timePreiod['docter_id'] = $docterId;
+                }  else {
+                    $timePreiod['docter_id'] = 0;
+                    $timePreiod['org_id'] = $orgId;
+                }
+                $timePreiod = [
+                    'type'=>$t,
+                    'start_time_period'=> date('H:i',$start_time+ ($i-1)*$serviceTime*60),
+                    'end_time_period'=> date('H:i',$start_time + $i*$serviceTime*60),
+                ];
+                $isHave = TimePeriod::where($timePreiod)->count();
+                if($isHave) continue;
+                TimePeriod::insert($timePreiod);
+            }
+        }
+        return true;
 
-        dd($type);
-        dd($serviceConfig);
     }
 
     public static  function setDefultSetting($type,$docterId,$orgId)
@@ -1294,7 +1312,11 @@ class ApiController extends Controller
             'timeSpan'=>30,
         ];
 
-
+        $config = [
+            1=>['amStartTime'=>$configData['amStartTime'],"amEndTime"=>$configData['amEndTime'],'amPerson'=>$configData['amNum']],
+            2=>["pmStartTime"=>$configData['pmStartTime'],"pmEndTime"=>$configData['pmEndTime'],'pmPerson'=>$configData['pmNum']],
+            3=>["nightStartTime"=>$configData['nightStartTime'],"nightEndTime"=>$configData['nightEndTime'],'nightPerson'=>$configData['nightNum']]
+        ];
 
         $setting = [
             'type'=>$type,
@@ -1303,16 +1325,15 @@ class ApiController extends Controller
             'show_days'=>$configData['showDayNumber'],
             'service_num'=>$configData['serviceNum'],
             'service_times'=>$configData['timeSpan'],
-            'service_time'=>json_encode($configData)
+            'service_time'=>json_encode($config)
         ];
 
-
-        if(type == 1){
+        if($type == 1){
             $is_have = DocterSetting::where(['docter_id'=>$docterId,'org_id'=>$orgId])->count();
             if(!$is_have){
+                $setting['docter_id'] = $docterId;
                 DocterSetting::insert($setting);
             } else {
-                $setting['docter_id'] = $docterId;
                 DocterSetting::where(['docter_id'=>$docterId,'org_id'=>$orgId])->update($setting);
             }
             return true;
@@ -1332,7 +1353,24 @@ class ApiController extends Controller
         //默认为门诊排班医生配置
         $setting = DocterSetting::where(['docter_id'=>$docterId,'org_id'=>$orgId])->first();
         //获取社区排班设置
-        if($type == 1) $setting = OrganizationSettings::where(['org_id'=>$orgId])->first();
+        if($type == 2) $setting = OrganizationSettings::where(['org_id'=>$orgId])->first();
+        if(empty($setting)){
+            self::setDefultSetting($type,$docterId,$orgId);
+            self::getSetting($type,$docterId,$orgId);
+        }
         return $setting;
     }
+    public static function getTypeTimeperiod($type,$docterId,$orgId,$scType){
+        //获取时间段
+        $timeperiods = TimePeriod::where(['docter_id'=>$docterId,'org_id'=>$orgId,'type'=>$scType])->pluck('id')->toArray();
+        if($type == 2){
+            $timeperiods = TimePeriod::where(['docter_id'=>0,'org_id'=>$orgId,'type'=>$scType])->pluck('id')->toArray();
+        }
+        if(empty($timeperiods)){
+             self::setTimeperiod($type,$docterId,$orgId);
+             self::getTypeTimeperiod($type,$docterId,$orgId,$scType);
+        }
+        return $timeperiods;
+    }
+
 }

+ 1 - 1
config/tenancy.php

xqd
@@ -86,7 +86,7 @@ return [
     |
     */
 
-    'https' => env('ADMIN_HTTPS', true),
+    'https' => env('ADMIN_HTTPS', false),
 
 
     /*

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
public/cdms/static/js/app.545de3dc.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
public/cdms/static/js/app.545de3dc.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
public/cdms/static/js/app.857d2f8e.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
public/cdms/static/js/app.857d2f8e.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
public/cdms/static/js/app.8edc1b4e.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
public/cdms/static/js/app.8edc1b4e.js.map


+ 1 - 1
resources/views/cdms/schedule.blade.php

xqd
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>scheduling</title><link href="static/css/app.b0dfcc84.css" rel="preload" as="style"><link href="static/css/chunk-vendors.767f701c.css" rel="preload" as="style"><link href="static/js/app.545de3dc.js" rel="preload" as="script"><link href="static/js/chunk-vendors.feab90c7.js" rel="preload" as="script"><link href="static/css/chunk-vendors.767f701c.css" rel="stylesheet"><link href="static/css/app.b0dfcc84.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but scheduling doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.feab90c7.js"></script><script src="static/js/app.545de3dc.js"></script></body></html>
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>scheduling</title><link href="static/css/app.b0dfcc84.css" rel="preload" as="style"><link href="static/css/chunk-vendors.767f701c.css" rel="preload" as="style"><link href="static/js/app.857d2f8e.js" rel="preload" as="script"><link href="static/js/chunk-vendors.feab90c7.js" rel="preload" as="script"><link href="static/css/chunk-vendors.767f701c.css" rel="stylesheet"><link href="static/css/app.b0dfcc84.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but scheduling doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="static/js/chunk-vendors.feab90c7.js"></script><script src="static/js/app.857d2f8e.js"></script></body></html>

+ 0 - 3
routes/web.php

xqd xqd
@@ -17,11 +17,9 @@ Route::get('/', function () {
 
 
 Route::get('/api/getComSchedule', 'ScheDuleController@getWeekSchedule');
-Route::get('/getComSchedule', 'ScheDuleController@getWeekSchedule');
 Route::get('/getChatOrder', 'ScheDuleController@get_chat_order');
 Route::get('/api/setDocChedule', 'ScheDuleController@setDocChedule');
 Route::get('/api/getDocterSetting', 'ScheDuleController@getDocterSetting');
-Route::get('/setDocChedule', 'ScheDuleController@setDocChedule');
 
 
 Route::get('/api/get_month_schedule', 'ScheDuleController@get_month_schedule');
@@ -35,5 +33,4 @@ Route::get('/api/insert_times', 'ScheDuleController@insert_times');
 
 //用户信息
 Route::get('/api/getScheduleInfo', 'ScheDuleController@getScheduleInfo');
-Route::get('/getScheduleInfo', 'ScheDuleController@getScheduleInfo');
 

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor