任敬轩 1 rok pred
rodič
commit
40595002cb

+ 172 - 2
Modules/Camera/Http/Controllers/Api/CameraApiController.php

@@ -1351,15 +1351,185 @@ class CameraApiController extends BaseController
 
     //首頁信息
     public function taskHome(Request $request){
-//        $result = DB::connection('task_xixuan')->table('xx_area')->get();
+        $risk_type = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息'];
+        $risk_level = ['高风险','中风险','低风险'];
+
         //高风险作业
         $gaofengxian = DB::connection('task_xixuan')->table('xx_risk_assignment')
             ->select('xx_risk_assignment.*','xx_coal_washery.name as coal_washery')
             ->leftJoin('xx_coal_washery','xx_coal_washery.id','=','xx_risk_assignment.coal_washery_id')
+            ->whereDate('xx_risk_assignment.optdt', today())
             ->where('risk_level',0)->get();
+        if(count($gaofengxian) > 0){
+            for($i=0;$i<count($gaofengxian);$i++){
+                if($gaofengxian[$i]->risk_type == ''){
+                    $gaofengxian[$i]->risk_type_name = '无';
+                }else{
+                    $gaofengxian[$i]->risk_type_name = $risk_type[$gaofengxian[$i]->risk_type];
+                }
+                $camera_info = explode('|',$gaofengxian[$i]->camera_id);
+                $gaofengxian[$i]->camera_type = CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_info[3]];
+                $gaofengxian[$i]->risk_level_name = $risk_level[$gaofengxian[$i]->risk_level];
+            }
+        }
         $result['gao_count'] = count($gaofengxian);
-        dd($gaofengxian);
+        $result['gao'] = $gaofengxian;
+
+        //中风险作业
+        $zhongfengxian = DB::connection('task_xixuan')->table('xx_risk_assignment')
+            ->select('xx_risk_assignment.*','xx_coal_washery.name as coal_washery')
+            ->leftJoin('xx_coal_washery','xx_coal_washery.id','=','xx_risk_assignment.coal_washery_id')
+            ->whereDate('xx_risk_assignment.optdt', today())
+            ->where('risk_level',1)->get();
+        if(count($zhongfengxian) > 0){
+            for($i=0;$i<count($zhongfengxian);$i++){
+                if($zhongfengxian[$i]->risk_type == ''){
+                    $zhongfengxian[$i]->risk_type_name = '无';
+                }else{
+                    $zhongfengxian[$i]->risk_type_name = $risk_type[$zhongfengxian[$i]->risk_type];
+                }
+                $camera_info = explode('|',$zhongfengxian[$i]->camera_id);
+                $zhongfengxian[$i]->camera_type = CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_info[3]];
+                $zhongfengxian[$i]->risk_level_name = $risk_level[$zhongfengxian[$i]->risk_level];
+            }
+        }
+        $result['zhong_count'] = count($zhongfengxian);
+        $result['zhong'] = $zhongfengxian;
+
+        //低风险作业
+        $difengxian = DB::connection('task_xixuan')->table('xx_risk_assignment')
+            ->select('xx_risk_assignment.*','xx_coal_washery.name as coal_washery')
+            ->leftJoin('xx_coal_washery','xx_coal_washery.id','=','xx_risk_assignment.coal_washery_id')
+            ->whereDate('xx_risk_assignment.optdt', today())
+            ->where('risk_level',2)->get();
+        if(count($difengxian) > 0){
+            for($i=0;$i<count($difengxian);$i++){
+                if($difengxian[$i]->risk_type == ''){
+                    $difengxian[$i]->risk_type_name = '无';
+                }else{
+                    $difengxian[$i]->risk_type_name = $risk_type[$difengxian[$i]->risk_type];
+                }
+                $camera_info = explode('|',$difengxian[$i]->camera_id);
+                $difengxian[$i]->camera_type = CameraEnum::CAMERA_TYPE_EXCHANGE[$camera_info[3]];
+                $difengxian[$i]->risk_level_name = $risk_level[$difengxian[$i]->risk_level];
+            }
+        }
+        $result['di_count'] = count($difengxian);
+        $result['di'] = $difengxian;
+
+        //片区作业数
+        $area = DB::connection('task_xixuan')->table('xx_area')->get();
+        $result['area_count'] = [];
+        if(count($area) > 0){
+            for($i=0;$i<count($area);$i++){
+                $result['area_count'][$i]['name'] = $area[$i]->name;
+                $coal_washery_id_list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$area[$i]->id)->pluck('id');
+                $result['area_count'][$i]['count'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', today())->count();
+            }
+        }
+
+        //洗煤厂作业
+        $coal_washery = DB::connection('task_xixuan')->table('xx_coal_washery')->get();
+        $result['coal_washery_work_count'] = [];
+        if(count($coal_washery) > 0){
+            for($i=0;$i<count($coal_washery);$i++){
+                $result['coal_washery_work_count'][$i]['name'] = $coal_washery[$i]->name;
+                $result['coal_washery_work_count'][$i]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',0)->whereDate('optdt', today())->count();
+                $result['coal_washery_work_count'][$i]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',1)->whereDate('optdt', today())->count();
+                $result['coal_washery_work_count'][$i]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',2)->whereDate('optdt', today())->count();
+            }
+        }
+
+        //7天作业数
+        $result['seven_work_count'] = [];
+        for($i=0;$i<7;$i++){
+            $day = date('Y-m-d', strtotime('-'.$i.' day'));
+            $result['seven_work_count'][$i]['date'] = $day;
+            $result['seven_work_count'][$i]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $day)->where('risk_level',0)->count();
+            $result['seven_work_count'][$i]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $day)->where('risk_level',1)->count();
+            $result['seven_work_count'][$i]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $day)->where('risk_level',2)->count();
+        }
+
+        //7天片区作业数
+        $result['seven_area_work_count'] = [];
+        if(count($area) > 0){
+            for($i=0;$i<count($area);$i++){
+                $result['seven_area_work_count'][$i]['name'] = $area[$i]->name;
+                $result['seven_area_work_count'][$i]['area_id'] = $area[$i]->id;
+                for($j=0;$j<7;$j++){
+                    $day = date('Y-m-d', strtotime('-'.$j.' day'));
+                    $result['seven_area_work_count'][$i]['work'][$j]['date'] = $day;
+                    $coal_washery_id_list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$area[$i]->id)->pluck('id');
+                    $result['seven_area_work_count'][$i]['work'][$j]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $day)->where('risk_level',0)->count();
+                    $result['seven_area_work_count'][$i]['work'][$j]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $day)->where('risk_level',1)->count();
+                    $result['seven_area_work_count'][$i]['work'][$j]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $day)->where('risk_level',2)->count();
+                }
+            }
+        }
+
+        return self::successResponse($result);
+    }
+
+    //首页作业查询
+    public function workSearch(Request $request){
+        $params = $request->all();
 
+        if (!isset($params['start_date'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        if (!isset($params['end_date'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        $result = [];
+        $start_date = $params['start_date'];
+        $end_date = $params['end_date'];
+        $current_date = $start_date;
+        $i = 0;
+        while ($current_date <= $end_date) {
+            $result[$i]['date'] = $current_date;
+            $result[$i]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',0)->count();
+            $result[$i]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',1)->count();
+            $result[$i]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',2)->count();
+            $current_date = date('Y-m-d', strtotime($current_date . ' +1 day'));
+            $i++;
+        }
+
+        return self::successResponse($result);
+    }
+
+    //首页片区作业查询
+    public function areaWorkSearch(Request $request){
+        $params = $request->all();
+
+        if (!isset($params['start_date'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        if (!isset($params['end_date'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        if (!isset($params['area_id'])) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        $coal_washery_id_list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$params['area_id'])->pluck('id');
+        $result = [];
+        $start_date = $params['start_date'];
+        $end_date = $params['end_date'];
+        $current_date = $start_date;
+        $i = 0;
+
+        while ($current_date <= $end_date) {
+            $result[$i]['date'] = $current_date;
+            $result[$i]['gao'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $current_date)->where('risk_level',0)->count();
+            $result[$i]['zhong'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $current_date)->where('risk_level',1)->count();
+            $result[$i]['di'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', $current_date)->where('risk_level',2)->count();
+            $current_date = date('Y-m-d', strtotime($current_date . ' +1 day'));
+            $i++;
+        }
 
         return self::successResponse($result);
     }

+ 2 - 0
Modules/Camera/Routes/api.php

@@ -59,4 +59,6 @@ Route::namespace('Api')->group(function () {
     Route::post('camera/camera_select', 'CameraApiController@cameraSelect');//摄像头下拉列表
     Route::post('camera/camera_info', 'CameraApiController@cameraInfo');//摄像头信息
     Route::post('task_xixuan/home', 'CameraApiController@taskHome');//首頁接口
+    Route::post('task_xixuan/work_search', 'CameraApiController@workSearch');//首頁作业查询
+    Route::post('task_xixuan/area_work_search', 'CameraApiController@areaWorkSearch');//首頁片区作业查询
 });