Swdz-WangHaiJun %!s(int64=4) %!d(string=hai) anos
pai
achega
d00e567026

+ 2 - 1
app/Community/Controllers/HomeController.php

xqd xqd
@@ -40,7 +40,7 @@ class HomeController extends Controller
             })
             ->row(function (Row $row){
                 $data = StatController::vaccine();
-                $row->column(3,new InfoBox('今日预约数量(人次)', 'users', 'aqua', '/cdms/home', $data['schedule_paitent']));
+                $row->column(3,new InfoBox('今日预约数量(人次)', 'users', 'aqua', '/cdms/home', $data['today_schedule']));
 //                $row->column(3,new InfoBox('疫苗种类(种)', 'eyedropper', 'aqua', '/cdms/home', $data['sum_num']));
                 $row->column(3,new InfoBox('疫苗库存量)', 'home', 'aqua', '/cdms/home', $data['have_num']));
                 $row->column(3,new InfoBox('疫苗库存告急(种)', 'genderless', 'aqua', '/cdms/home', $data['less_num']));
@@ -67,6 +67,7 @@ class HomeController extends Controller
                 return $row->column(12,'<p style="font-family:Arial,Helvetica,sans-serif; font-size:1.2em; margin-top20px;vertical-align:middle; font-weight:normal ">今日排班         </p>');
             })
             ->row(function (Row $row){
+                $data = StatController::clinc();
                 $data = StatController::schedule();
                 $row->column(3,new InfoBox('计免医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['vaccine_num']));
                 $row->column(3,new InfoBox('儿保医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['nurse_num']));

+ 38 - 7
app/Community/Controllers/StatController.php

xqd xqd xqd xqd
@@ -29,6 +29,19 @@ class StatController extends  Controller
         if(self::$org_id){
             $where['organization_id']=self::$org_id;
         }
+        $order = Order::where(['product_type'=>4])->where($where);
+
+        $today = $order->whereHas('orderPatient',function ($query){
+            $query->whereBetween('appoint_start_time',[strtotime('today'),strtotime('+1days')]);
+        })->count();
+
+        $tomorrow = $order->whereHas('orderPatient',function ($query){
+            $query->whereBetween('appoint_start_time',[date('Y-m-d',strtotime('-1days')),date('Y-m-d',time())]);
+        })->whereNotIn('order_status',[1,5,6])->count();
+
+        //昨日接诊人数
+        $today = $order->whereBetween('end_time',[strtotime('-1days'),strtotime('today')])->where('order_status',4)->count();
+
         $data ['sum_num'] = Vaccine::where($where)->count();
         $data['have_num'] = Vaccine::where($where)->sum('stock');
         $data['less_num'] = Vaccine::where($where)->where(['stock'=>0])->count();//取苗钟数
@@ -47,6 +60,7 @@ class StatController extends  Controller
         if(self::$org_id){
             $where['organization_id']=self::$org_id;
         }
+
         $data['schedule_paitent'] = Order::where(['order_status'=>1])->where($where)->whereIn('product_type',[3,4,5])->where('created_at','>',date('Y-m-d H:i:s',time()))->count();
         $data['schedule_docter'] = SchedulePeriod::distinct('docter_id')->where($where)->where('schedule_date',date('Y-m-d H:i:s',time()))->count();
 //        $data['paitent_num'] = Order::where(['order_status'=>1])->distinct()->count()->BgroupBy('patient_id');
@@ -54,7 +68,7 @@ class StatController extends  Controller
             $query->where(['appoint_start_time'=>strtotime('today')]);
         })->where(['product_type'=>4])->where($where)->count();//接诊患者(人次)
 
-return $data;
+        return $data;
 
 
     }
@@ -102,14 +116,31 @@ return $data;
     //门诊统计
     public static function clinc()
     {
+        $where = [];
+        if(self::$org_id){
+            $where['organization_id']=self::$org_id;
+        }
+        $order = Order::where(['product_type'=>3])->where($where);
 
-        $orgId = self::$org_id;
-        $order = Order::where(['product_type'=>3,'organization_id'=>$orgId]);
+        //今日预约数
         $today = $order->where('created_at','>=',date('Y-m-d'))->whereNotIn('order_status',[1,5,6])->count();
-        $docters = Schedule::where(['organization'=>$orgId,'schedule_date'=>date('Y-m-d',time())])->count();
-        $yesterday = $order->whereBetween(date('Y-m-d',[strtotime('-1days'),date('Y-m-d')]))->whereNotIn('order_status',[1,5,6])->count();
-        $yesterday = $order->whereBetween(date('Y-m-d',[strtotime('-1days'),date('Y-m-d')]))->whereNotIn('order_status',[1,5,6])->count();
 
-        return [];
+        //医生排班人数
+        $docters = SchedulePeriod::where(['schedule_date'=>date('Y-m-d',time())])->distinct('docter_id')->count('docter_id');
+
+        //昨日接诊人数
+        $yesterday = $order->whereBetween('end_time',[strtotime('-1days'),strtotime('today')])->where('order_status',4)->count();
+
+        //明日预约数
+        $tomorrow = $order->whereHas('orderPatient',function ($query){
+            $query->whereBetween('appoint_start_time',[strtotime('today'),strtotime('+1days')]);
+        })->whereNotIn('order_status',[1,5,6])->count();
+
+        $data['today'] = $today;
+        $data['yesterday'] = $yesterday;
+        $data['docters'] = $docters;
+        $data['tomorrow'] = $tomorrow;
+
+        return $data;
     }
 }