Swdz-WangHaiJun 4 rokov pred
rodič
commit
0258efa5fa

+ 18 - 2
app/Community/Controllers/StatController.php

xqd xqd
@@ -5,10 +5,12 @@ namespace App\Community\Controllers;
 
 
 use App\Http\Controllers\Controller;
+use App\Models\Docter;
 use App\Models\Order;
 use App\Models\Schedule;
 use App\Models\SchedulePeriod;
 use App\Models\Vaccine;
+use Illuminate\Support\Facades\DB;
 
 class StatController extends  Controller
 {
@@ -45,14 +47,28 @@ return $data;
     //儿保概况
     public static function nurse()
     {
-     $nurse_num = Order::where('prdoduct_type',5)->where('created_at','>',strtotime('today'));
+     $nurse_num = Order::where('product_type',5)->where('created_at','>',strtotime('today'))->count();
      return $nurse_num;
     }
 
     //排班统计
     public static function schedule()
     {
-        $data = SchedulePeriod::where('schedule_date',strtotime('today'))->distinct('docter_id')->get()->GroupBy('docter.type');
+        $ids = SchedulePeriod::where('schedule_date',date("Y-m-d"))->distinct('docter_id')->pluck('docter_id');
+        $data = ['clinic_num'=>0,'vaccine_num'=>0,'nurse_num'=>0];
+        if(empty($ids)){
+            return  $data;
+        };
+        $docters = Docter::whereIn('id',$ids->toArray())->get(['id','type'])->GroupBy('type');
+        foreach ($docters as $key => $val){
+            if($key === 1){
+                $data['clinic_num'] = count($val);
+            } else if($key == 2){
+                $data['vaccine_num'] = count($val);
+            } else if($key == 3){
+                $data['nurse_num'] = count($val);
+            }
+        }
         return $data;
     }
 }

+ 51 - 39
app/Http/Controllers/ScheDuleController.php

xqd xqd xqd xqd
@@ -13,6 +13,7 @@ use App\Models\SystemConfig;
 use App\Models\TimePeriod;
 use Encore\Admin\Admin;
 use Illuminate\Support\Facades\DB;
+use phpDocumentor\Reflection\DocBlock\Description;
 
 class ScheDuleController  extends Controller
 {
@@ -27,9 +28,9 @@ class ScheDuleController  extends Controller
         $docter_id = request('docter_id');//医生
 
 
-        $set_time = '2020-11-10至2020-11-16';
-        $org_id = 1;
-        $docter_id = 1;
+        $set_time = '2020-11-30至2020-12-06';
+        $org_id = 2;
+        $docter_id = 47;
 
         if(empty($set_time) || empty($org_id) || empty($docter_id)){
             return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
@@ -42,9 +43,19 @@ class ScheDuleController  extends Controller
         if(count($all_time) <2){
             return json_encode(['status'=>601,'msg'=>'缺少必要参数','data'=>'']);
         }
-        $sche_dule = Schedule::where('organization_id','!=','')
-                               ->where(['docter_id'=>$docter_id,'schedule_date'=>$all_time[0]])
-                               ->pluck('id');
+
+        $start_time  = intval(str_replace('-','',$all_time[0]));
+        $end_time  = intval(str_replace('-','',$all_time[1]));
+//        DB::enableQueryLog();
+//        $sche_dule = Schedule::whereBetween('schedule_day',[$start_time,$end_time])
+//                                ->where(['docter_id'=>$docter_id])
+//                                ->pluck('id')
+//                                ->toArray();
+//        echo '<pre>';
+//        print_r(DB::getQueryLog());
+//        echo '</pre>';
+        //dd($sche_dule);
+
         $sche_dule_arr = [
             [
                 'date'=>"上午",
@@ -78,45 +89,46 @@ class ScheDuleController  extends Controller
             ]
         ];
 
+        //周字段映射
+        $week_arr = ['mondy','tuesday','wednesday','thursday','friday','saturday','sunday'];
+
+        //时段区间id
+        $schedule_config = SystemConfig::get('docter_config');
+        $mo = TimePeriod::where('start_time_period','>=',$schedule_config['morning_start'])->where('end_time_period','<=',$schedule_config['morning_end'])->pluck('id')->toArray();
+        $af = TimePeriod::where('start_time_period','>=',$schedule_config['afternoon_start'])->where('end_time_period','<=',$schedule_config['afternoon_end'])->pluck('id')->toArray();
+        $ev = TimePeriod::where('start_time_period','>=',$schedule_config['evening_start'])->where('end_time_period','<=',$schedule_config['evening_end'])->pluck('id')->toArray();
         if(empty($sche_dule)){
             return ['status'=>200,'msg'=>'ok','data'=>['schedule'=>$sche_dule_arr,'org_id'=>$org_id,'docter_id'=>$docter_id]];
         }
-        foreach ($sche_dule as $val )
-        {
-            $org_schdule = SchedulePeriod::where(['schedule_id'=>$org_id,''])->get()->GroupBy('organization_id');
-        }
-        $schedule_config = SystemConfig::get('docter_config');
-        dd($schedule_config);
-
-
-
-        $community = CommunitySchedule::where('org_id',$org_id)->orderBy('day_type')->pluck('times_id','day_type');
-        $time_array = [[],[],[],[],[],[],[]];
-        foreach ($community as $key => $ids){
-            $time = TimePeriod::whereIn('id',$ids)->get(['id','start_time_period','end_time_period']);
-            $time_info = [];
-            foreach ($time as $val){
-                if(!in_array(intval($val->id),$arrays)){
-                    $time_info[] = ['id'=>$val->id,'time'=>$val->start_time_period.'-'.$val->end_time_period];
-                }
+        for ($i = $start_time; $i<=$end_time; $i++){
+             $j = 0;
+             $strtime = "$i";
+             $str_time = substr($strtime,0,4).'-'.substr($strtime,4,2).'-'.substr($strtime,6,2);
+             //检测上午
+            $is_mo_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$mo)->where('organization_id','!=',$org_id)->count();
+            if($is_mo_have){
+                 $sche_dule_arr[0][$week_arr[$j]] = 'other';
+             }
+             //检测下午
+            $is_af_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$af)->where('organization_id','!=',$org_id)->count();
+            if($is_af_have){
+                $sche_dule_arr[1][$week_arr[$j]] = 'other';
             }
-            $time_array[$key-1] = $time_info;
-        }
-        $data['community'] = $time_array;
-        $firstday = date('Y-m-d', strtotime("this week"));
-        $scd_id = Schedule::where(['schedule_date'=>$firstday,'docter_id'=>$docter_id,'organization_id'=>$org_id])->value('id');
-        $docter_schedule = $time_array;
-        if(!empty($scd_id)){
-            $sche_dule = SchedulePeriod::where('schedule_id',$scd_id)->get(['time_period_id','schedule_date'])->GroupBy('schedule_date')->toArray();
-            foreach ($sche_dule as $val){
-                if($val){
-                    $i = 0;
-                    $new_sche_dule[$i] = array_column($val,'time_period_id');
-                    $i++;
-                }
+
+            //检测晚上
+            $is_ev_have = SchedulePeriod::whereIn('schedule_id',$sche_dule)->where('schedule_date',$str_time)->whereIn('time_period_id',$ev)->where('organization_id','!=',$org_id)->count();
+            if($is_ev_have){
+                $sche_dule_arr[2][$week_arr[$j]] = 'other';
             }
         }
-        $data['docter'] = $docter_schedule;
+        //  "morning_start" => "09:00"
+        //  "morning_end" => "12:00"
+        //  "afternoon_start" => "13:00"
+        //  "afternoon_end" => "18:00"
+        //  "evening_start" => "19:00"
+        //  "evening_end" => "20:00"
+
+        $data['docter'] = $sche_dule_arr;
         $data['role'] = 1;
         return  (json_encode(['code'=>200,'msg'=>'ok','data'=>$data]));
     }

+ 3 - 26
resources/views/cdms/nurse_data.blade.php

xqd xqd
@@ -71,7 +71,7 @@
     <!--		标题和时间-->
     <div class="title_div">
         <div class="title">实时数据</div>
-        <div class="tiem">更新时间:2020年11月30日14:18:50</div>
+        <div class="tiem">更新时间:{{date("Y-m-d H:i:s")}}</div>
     </div>
     <!--		信息-->
     <div class="inf_div">
@@ -84,36 +84,13 @@
             <!--				文字-->
             <div class="inf_text">
                 <!--数字  要大-->
-                <div class="inf_text_num">15</div>
+                <div class="inf_text_num">{{$data}}</div>
                 <!--描述  要小-->
-                <div class="inf_text_ms">今日预约</div>
-            </div>
-            <div class="inf_text">
-                <!--数字  要大-->
-                <div class="inf_text_num">8</div>
-                <!--描述  要小-->
-                <div class="inf_text_ms">今日排班</div>
+                <div class="inf_text_ms">今日预约(人次)</div>
             </div>
 
         </div>
         <div class="inf">
-            <!--				icon-->
-            <div class="inf_icon" style="text-align: center">
-                icon
-            </div>
-            <!--				文字-->
-            <div class="inf_text">
-                <!--数字  要大-->
-                <div class="inf_text_num">15</div>
-                <!--描述  要小-->
-                <div class="inf_text_ms">今日预约</div>
-            </div>
-            <div class="inf_text">
-                <!--数字  要大-->
-                <div class="inf_text_num">8</div>
-                <!--描述  要小-->
-                <div class="inf_text_ms">今日排班</div>
-            </div>
 
         </div>
 

+ 8 - 8
resources/views/cdms/real_data.blade.php

xqd xqd xqd
@@ -71,7 +71,7 @@
     <!--		标题和时间-->
     <div class="title_div">
         <div class="title">实时数据</div>
-        <div class="tiem">更新时间:2020年11月30日14:18:50</div>
+        <div class="tiem">更新时间:{{date("Y-m-d H:i:s")}}</div>
     </div>
     <!--		信息-->
     <div class="inf_div">
@@ -84,15 +84,15 @@
             <!--				文字-->
             <div class="inf_text">
                 <!--数字  要大-->
-                <div class="inf_text_num">15</div>
+                <div class="inf_text_num">{{$data['schedule_paitent']}}</div>
                 <!--描述  要小-->
-                <div class="inf_text_ms">今日预约</div>
+                <div class="inf_text_ms">今日预约(人)</div>
             </div>
             <div class="inf_text">
                 <!--数字  要大-->
-                <div class="inf_text_num">8</div>
+                <div class="inf_text_num">{{$data['schedule_docter']}}</div>
                 <!--描述  要小-->
-                <div class="inf_text_ms">今日排班</div>
+                <div class="inf_text_ms">今日排班(人)</div>
             </div>
 
         </div>
@@ -104,13 +104,13 @@
             <!--				文字-->
             <div class="inf_text">
                 <!--数字  要大-->
-                <div class="inf_text_num">15</div>
+                <div class="inf_text_num">{{$data['paitent_num']}}</div>
                 <!--描述  要小-->
-                <div class="inf_text_ms">今日预约</div>
+                <div class="inf_text_ms">接诊患者(人数)</div>
             </div>
             <div class="inf_text">
                 <!--数字  要大-->
-                <div class="inf_text_num">8</div>
+                <div class="inf_text_num">{{$data['schedule_docter']}}</div>
                 <!--描述  要小-->
                 <div class="inf_text_ms">今日排班</div>
             </div>

+ 6 - 17
resources/views/cdms/schedule_data.blade.php

xqd
@@ -84,35 +84,24 @@
             <!--				文字-->
             <div class="inf_text">
                 <!--数字  要大-->
-                <div class="inf_text_num">15</div>
+                <div class="inf_text_num">{{$data['vaccine_num']}}</div>
                 <!--描述  要小-->
-                <div class="inf_text_ms">今日预约</div>
+                <div class="inf_text_ms">计免医生(人)</div>
             </div>
             <div class="inf_text">
                 <!--数字  要大-->
-                <div class="inf_text_num">8</div>
+                <div class="inf_text_num">{{$data['nurse_num']}}</div>
                 <!--描述  要小-->
-                <div class="inf_text_ms">今日排班</div>
+                <div class="inf_text_ms">儿保医生(人)</div>
             </div>
 
         </div>
         <div class="inf">
-            <!--				icon-->
-            <div class="inf_icon" style="text-align: center">
-                icon
-            </div>
-            <!--				文字-->
-            <div class="inf_text">
-                <!--数字  要大-->
-                <div class="inf_text_num">15</div>
-                <!--描述  要小-->
-                <div class="inf_text_ms">今日预约</div>
-            </div>
             <div class="inf_text">
                 <!--数字  要大-->
-                <div class="inf_text_num">8</div>
+                <div class="inf_text_num">{{$data['clinic_num']}}</div>
                 <!--描述  要小-->
-                <div class="inf_text_ms">今日排班</div>
+                <div class="inf_text_ms">门诊医生(人)</div>
             </div>
 
         </div>