Pārlūkot izejas kodu

统计数据调整

Swdz-WangHaiJun 4 gadi atpakaļ
vecāks
revīzija
328177f46f

+ 14 - 12
app/Community/Controllers/HomeController.php

xqd
@@ -26,35 +26,37 @@ class HomeController extends Controller
             })->row(function (Row $row){
                 $data = StatController::service();
                 $row->column(3,new InfoBox('今日预约(人)', 'users', 'aqua', '/cdms/home', $data['schedule_paitent']));
-                $row->column(3,new InfoBox('今日排班(人)', 'users', 'aqua', '/cdms/home', $data['schedule_docter']));
-                $row->column(3,new InfoBox('接诊患者(人次)', 'users', 'aqua', '/cdms/home', $data['paitent_num']));
+                $row->column(3,new InfoBox('今日排班(人)', 'calendar-check-o', 'aqua', '/cdms/home', $data['schedule_docter']));
+                $row->column(3,new InfoBox('接诊患者(人次)', 'user', 'aqua', '/cdms/home', $data['paitent_num']));
             })
             ->row(function (Row $row){
                 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::vaccine();
-                $row->column(3,new InfoBox('疫苗种类(种)', 'users', 'aqua', '/cdms/home', $data['sum_num']));
-                $row->column(3,new InfoBox('库存剩余(支)', 'users', 'aqua', '/cdms/home', $data['have_num']));
-                $row->column(3,new InfoBox('疫苗缺苗(种)', 'users', 'aqua', '/cdms/home', $data['less_num']));
+                $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']));
             })
             ->row(function (Row $row){
                 $data = StatController::vaccine();
-                $row->column(3,new InfoBox('今日预约(人支)', 'users', 'aqua', '/cdms/home', $data['today_schedule']));
-                $row->column(3,new InfoBox('预计今日消耗(支)', 'users', 'aqua', '/cdms/home', $data['today_vaccine']));
+                $row->column(3,new InfoBox('今日预约(人支)', 'hospital-o', 'aqua', '/cdms/home', $data['today_schedule']));
+                $row->column(3,new InfoBox('预计今日消耗(支)', 'calendar', 'aqua', '/cdms/home', $data['today_vaccine']));
             })
             ->row(function (Row $row){
-                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>');
+                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::nurse();
-                $row->column(3,new InfoBox('疫苗种类(种)', 'users', 'aqua', '/cdms/home', $data));
+                $row->column(3,new InfoBox('门诊订单(个)', 'first-order', 'aqua', '/cdms/home', $data[0]));
+                $row->column(3,new InfoBox('计免订单(个)', 'first-order', 'aqua', '/cdms/home', $data[1]));
+                $row->column(3,new InfoBox('儿保订单(个)', 'first-order', 'aqua', '/cdms/home', $data[2]));
             })
             ->row(function (Row $row){
                 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::schedule();
-                $row->column(3,new InfoBox('计免医生(人)', 'users', 'aqua', '/cdms/home', $data['vaccine_num']));
-                $row->column(3,new InfoBox('儿保医生(人)', 'users', 'aqua', '/cdms/home', $data['nurse_num']));
-                $row->column(3,new InfoBox('门诊医生(人)', 'users', 'aqua', '/cdms/home', $data['clinic_num']));
+                $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']));
+                $row->column(3,new InfoBox('门诊医生(人)', 'hospital-o', 'aqua', '/cdms/home', $data['clinic_num']));
             });
 //            ->row($this->real_data())
 //            ->row($this->vaccine_data())

+ 40 - 13
app/Community/Controllers/StatController.php

xqd xqd
@@ -10,19 +10,30 @@ use App\Models\Order;
 use App\Models\Schedule;
 use App\Models\SchedulePeriod;
 use App\Models\Vaccine;
+use Encore\Admin\Facades\Admin;
 use Illuminate\Support\Facades\DB;
 
 class StatController extends  Controller
 {
 
+    public static $org_id;
+    public function __construct()
+    {
+        self::$org_id = Admin::user()->org_id;;
+    }
+
     //疫苗统计
     public static function vaccine()
     {
-        $data ['sum_num'] = Vaccine::count();
-        $data['have_num'] = Vaccine::sum('stock');
-        $data['less_num'] = Vaccine::where(['stock'=>0])->count();//取苗钟数
-        $data['today_schedule'] = Order::where(['order_status'=>1])->where('product_type',4)->where('created_at','>',date('Y-m-d H:i:s',time()))->count();
-        $data['today_vaccine'] = Order::where(['product_type'=>4])->with('orderPatient','appoint_start_time',strtotime('today'))->count();//接诊患者(人次)
+        $where = [];
+        if(self::$org_id){
+            $where['organization_id']=self::$org_id;
+        }
+        $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();//取苗钟数
+        $data['today_schedule'] = Order::where(['order_status'=>1])->where($where)->where('product_type',4)->where('created_at','>',date('Y-m-d H:i:s',time()))->count();
+        $data['today_vaccine'] = Order::where(['product_type'=>4])->where($where)->with('orderPatient','appoint_start_time',strtotime('today'))->count();//接诊患者(人次)
         return $data;
 
     }
@@ -32,34 +43,50 @@ class StatController extends  Controller
     //实时数据
     public static function  service()
     {
-        $data['schedule_paitent'] = Order::where(['order_status'=>1])->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('schedule_date',date('Y-m-d H:i:s',time()))->count();
+        $where = [];
+        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');
         $data['paitent_num'] = Order::whereHas('orderPatient',function ($query){
             $query->where(['appoint_start_time'=>strtotime('today')]);
-        })->where(['product_type'=>4])->count();//接诊患者(人次)
+        })->where(['product_type'=>4])->where($where)->count();//接诊患者(人次)
 
 return $data;
 
 
     }
 
-    //儿保概况
+    //订单概况
     public static function nurse()
     {
-     $nurse_num = Order::where('product_type',5)->where('created_at','>',strtotime('today'))->count();
-     return $nurse_num;
+        //3.门诊预约 4.疫苗接种预约 5.儿保预约
+         $where = [];
+        if(self::$org_id){
+             $where['organization_id']=self::$org_id;
+         }
+         $nurse_num[] = Order::where('product_type',3)->where($where)->count();
+         $nurse_num[] = Order::where('product_type',4)->where($where)->count();
+         $nurse_num[] = Order::where('product_type',5)->where($where)->count();
+         return $nurse_num;
     }
 
     //排班统计
     public static function schedule()
     {
-        $ids = SchedulePeriod::where('schedule_date',date("Y-m-d"))->distinct('docter_id')->pluck('docter_id');
+        $where = [];
+        if(self::$org_id){
+            $where['organization_id']=self::$org_id;
+        }
+
+        $ids = SchedulePeriod::where('schedule_date',date("Y-m-d"))->where($where)->distinct('docter_id')->pluck('docter_id')->toArray();
         $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');
+        $docters = Docter::whereIn('id',$ids)->get(['id','type'])->GroupBy('type');
         foreach ($docters as $key => $val){
             if($key === 1){
                 $data['clinic_num'] = count($val);