where('slug','like','%'.$mine_code.'%')->where('parent_id',0)->where('deleted_at',null)->first(); if (!$mine) { $result['status'] = false; $result['msg'] = '矿区名称不存在'; return $result; } $mine_list = DB::table('mine_list')->where('degree', 'like', $mine->id . '|' . '%')->where('deleted_at',null)->get(); $mine_array = []; foreach($mine_list as $k=>$v){ $mine_array[] = $v->id; } $query = CameraList::where('is_show', CameraEnum::IS_SHOW_YES)->where('deleted_at',null)->whereIn('mine_id',$mine_array)->where('camera_type',$camera_type)->orderBy('sort', 'desc')->get(); if (!$query) { $result['status'] = false; $result['msg'] = '矿区下没有摄像头'; return $result; } $result = []; foreach($query as $k=>$v){ $result[$k]['id'] = $v->id; $result[$k]['mine_id'] = $v->mine_id; $result[$k]['camera_name'] = $v->camera_name; $result[$k]['cover_picture'] = $v->cover_picture; $result[$k]['camera_status'] = $v->camera_status; $result[$k]['playback'] = $v->playback; } return self::successResponse($result); } //宁煤摄像头统计 public function getTotalNingmei(){ $result['status'] = true; $result['msg'] = ApiEnum::RETURN_SUCCESS; //宁煤集团 $ningmei = DB::table('mine_list')->where('title',config('mine_hls'))->get(); $ydjk = DB::table('mine_list')->where('title','移动监控')->where('deleted_at',null)->get(); $ydjk_list = []; if(count($ydjk) > 0){ for($i=0;$iid); } } $ydjk_son = DB::table('mine_list')->whereIn('parent_id',$ydjk_list)->where('deleted_at',null)->get(); if(count($ydjk_son) > 0){ for($i=0;$iid); } } $mine_all = DB::table('mine_list')->where('deleted_at',null)->whereNotIn('id',$ydjk_list)->get();//所有区域 $mine_ningmei = [];//宁煤集团所有区域 foreach($mine_all as $k=>$v){ if(explode('|',$v->degree)[0] == $ningmei[0]->id){ $mine_ningmei[] = $v->id; } } //宁煤在离线数量 $data[0]['title'] = '宁煤公司'; $data[0]['mine_code'] = $ningmei[0]->slug; $data[0]['total'] = DB::table('camera_list')->whereIn('mine_id',$mine_ningmei)->where('deleted_at',null)->count(); $data[0]['total_online'] = DB::table('camera_list')->whereIn('mine_id',$mine_ningmei)->where('camera_status',1)->where('deleted_at',null)->count(); $data[0]['total_offline'] = $data[0]['total'] - $data[0]['total_online']; $data[0]['rate'] = round($data[0]['total_online'] / $data[0]['total'] * 100,2)."%"; //宁煤下各矿在离线数量 $mine_list = DB::table('mine_list')->where('parent_id',$ningmei[0]->id)->where('deleted_at',null)->get(); foreach($mine_list as $k => $v){ $mine_use = [];//宁煤下每个矿所有区域 foreach($mine_all as $key=>$value){ if(count(explode('|',$value->degree)) > 1){ if(explode('|',$value->degree)[0] == $ningmei[0]->id && explode('|',$value->degree)[1] == $v->id){ $mine_use[] = $value->id; } } } $total = DB::table('camera_list')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('deleted_at',null)->count(); $total_online = DB::table('camera_list')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('camera_status',1)->where('deleted_at',null)->count(); if($total == 0){ $rate = "0%"; }else{ $rate = round($total_online / $total * 100,2)."%"; } if($v->slug == 'NingXiaMeiYeTeShuZuoYeJianKongShiPin'){ $res['title'] = $v->title; $res['mine_code'] = $v->slug."_jituan"; $res['total'] = $total; $res['total_online'] = $total_online; $res['total_offline'] = $total - $total_online; $res['rate'] = $rate; }else{ if($v->slug == 'ShuiDianFenGongSi'){ $v->title = '供电分公司'; } array_push($data,[ 'title'=>$v->title, 'mine_code'=>$v->slug."_jituan", 'total'=>$total, 'total_online'=>$total_online, 'total_offline'=>$total - $total_online, 'rate'=>$rate ]); } } if(isset($res)){ array_push($data,[ 'title'=>$res['title'], 'mine_code'=>$res['mine_code'], 'total'=>$res['total'], 'total_online'=>$res['total_online'], 'total_offline'=>$res['total_offline'], 'rate'=>$res['rate'] ]); } return self::successResponse($data); } //宁煤摄像头统计字符串 public function getTotalString(){ $result['status'] = true; $result['msg'] = ApiEnum::RETURN_SUCCESS; //宁煤集团 $ningmei = DB::table('mine_list')->where('title',config('mine_hls'))->get(); $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域 $mine_ningmei = [];//宁煤集团所有区域 foreach($mine_all as $k=>$v){ if(explode('|',$v->degree)[0] == $ningmei[0]->id){ $mine_ningmei[] = $v->id; } } //宁煤在离线数量 $nm['title'] = '宁煤公司'; $nm['mine_code'] = $ningmei[0]->slug; $nm['total'] = DB::table('camera_list')->whereIn('mine_id',$mine_ningmei)->where('deleted_at',null)->count(); $nm['total_online'] = DB::table('camera_list')->whereIn('mine_id',$mine_ningmei)->where('camera_status',1)->where('deleted_at',null)->count(); $nm['total_offline'] = $nm['total'] - $nm['total_online']; $nm['rate'] = round($nm['total_online'] / $nm['total'] * 100,2); $data = []; //宁煤下各矿在离线数量 $mine_list = DB::table('mine_list')->where('parent_id',$ningmei[0]->id)->where('deleted_at',null)->get(); foreach($mine_list as $k => $v){ $mine_use = [];//宁煤下每个矿所有区域 foreach($mine_all as $key=>$value){ if(count(explode('|',$value->degree)) > 1){ if(explode('|',$value->degree)[0] == $ningmei[0]->id && explode('|',$value->degree)[1] == $v->id){ $mine_use[] = $value->id; } } } $total = DB::table('camera_list')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('deleted_at',null)->count(); $total_online = DB::table('camera_list')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('camera_status',1)->where('deleted_at',null)->count(); if($total == 0){ $rate = "0"; }else{ $rate = round($total_online / $total * 100,2); } if($v->slug == 'NingXiaMeiYeTeShuZuoYeJianKongShiPin'){ $res['title'] = $v->title; $res['mine_code'] = $v->slug."_jituan"; $res['total'] = $total; $res['total_online'] = $total_online; $res['total_offline'] = $total - $total_online; $res['rate'] = $rate; }else{ array_push($data,[ 'title'=>$v->title, 'mine_code'=>$v->slug."_jituan", 'total'=>$total, 'total_online'=>$total_online, 'total_offline'=>$total - $total_online, 'rate'=>$rate ]); } } if(isset($res)){ array_push($data,[ 'title'=>$res['title'], 'mine_code'=>$res['mine_code'], 'total'=>$res['total'], 'total_online'=>$res['total_online'], 'total_offline'=>$res['total_offline'], 'rate'=>$res['rate'] ]); } $timestamp = strtotime(date('Y-m-d H:i:s')); $hour = date('G', $timestamp); $minute = date('i', $timestamp); $month = date('n', $timestamp); $day = date('j', $timestamp); if($minute == '00'){ $minute = ''; } if ($hour < 12) { $time = $month."月".$day."号上午".$hour."时".$minute; } elseif ($hour >= 12 && $hour < 18) { $time = $month."月".$day."号下午".$hour."时".$minute; } else { $time = $month."月".$day."号晚上".$hour."时".$minute; } $unit_max_name = ''; $unit_max_rate = 0; $unit_min_name = ''; $unit_min_rate = 100; $mzy_max_name = ''; $mzy_max_rate = 0; $mzy_min_name = ''; $mzy_min_rate = 100; $other_max_name = ''; $other_max_rate = 0; $other_min_name = ''; $other_min_rate = 100; if(count($data)>0){ for($i=0;$i $unit_max_rate){ $unit_max_rate = $data[$i]['rate']; } if($data[$i]['rate'] < $unit_min_rate){ $unit_min_rate = $data[$i]['rate']; } }elseif(strpos($data[$i]['title'], '煤制油') !== false || strpos($data[$i]['title'], '烯烃') !== false || strpos($data[$i]['title'], '甲醇') !== false || strpos($data[$i]['title'], '精蜡') !== false){ if($data[$i]['rate'] > $mzy_max_rate){ $mzy_max_rate = $data[$i]['rate']; } if($data[$i]['rate'] < $mzy_min_rate){ $mzy_min_rate = $data[$i]['rate']; } }else{ if($data[$i]['rate'] > $other_max_rate){ $other_max_rate = $data[$i]['rate']; } if($data[$i]['rate'] < $other_min_rate){ $other_min_rate = $data[$i]['rate']; } } } for($i=0;$iwhere('title',config('mine_hls'))->get(); $mine_all = DB::table('mine_list')->where('deleted_at',null)->get();//所有区域 $mine_ningmei = [];//宁煤集团所有区域 foreach($mine_all as $k=>$v){ if(explode('|',$v->degree)[0] == $ningmei[0]->id){ $mine_ningmei[] = $v->id; } } if(count(explode('_',$mine_code)) > 1){ $mine_code = explode('_',$mine_code)[0]; } $mine_list = DB::table('mine_list')->where('parent_id',0)->where('slug','like','%'.$mine_code.'%')->where('deleted_at',null)->get(); //如果传参是宁煤显示全部 if(isset($mine_list[0]->title) && $mine_list[0]->title == config('mine_hls')[0]){ //宁煤在离线数量 $offline_list = DB::table('camera_list')->select('id','camera_name','cover_picture','camera_status')->whereIn('mine_id',$mine_ningmei)->where('camera_status','!=',1)->where('deleted_at',null)->get(); return self::successResponse($offline_list); } //宁煤下各矿在离线数量 $mine_list = DB::table('mine_list')->where('parent_id',$ningmei[0]->id)->where('slug','like','%'.$mine_code.'%')->where('deleted_at',null)->get(); $total_offline = []; foreach($mine_list as $k => $v){ $mine_use = [];//宁煤下每个矿所有区域 foreach($mine_all as $key=>$value){ if(count(explode('|',$value->degree)) > 1){ if(explode('|',$value->degree)[0] == $ningmei[0]->id && explode('|',$value->degree)[1] == $v->id){ $mine_use[] = $value->id; } } } $total_offline = DB::table('camera_list')->select('id','camera_name','cover_picture','camera_status')->whereIn('mine_id',$mine_use)->where('is_show',1)->where('camera_status','!=',1)->where('deleted_at',null)->get(); } return self::successResponse($total_offline); } //宁煤高风险摄像头 public function getRiskNingmei(){ $mine_code = Input::get('mine_code', ''); if (!$mine_code) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $result['status'] = true; $result['msg'] = ApiEnum::RETURN_SUCCESS; //宁煤集团 $ningmei = DB::table('mine_list')->where('title',config('mine_hls'))->get(); //宁煤集团下级单位 $mine = DB::table('mine_list') ->where('parent_id',$ningmei[0]->id) ->where('slug','like','%'.$mine_code.'%') ->where('deleted_at',null) ->get(); //子区域树形列表 $child_list = DB::table('mine_list')->where('parent_id',$mine[0]->id)->where('deleted_at',null)->orderBy('sort','desc')->get(); $risk_id = null; if(count($child_list)>0){ $risk_id = $this->mineTree($child_list); } $mine_list = []; if($risk_id != null){ $risk = DB::table('mine_list')->where('parent_id',$risk_id)->where('deleted_at',null)->get(); if(count($risk) > 0){ //有子区域 $mine_list = $this->riskTree($risk,[]); }else{ //没有子区域 $mine_list[] = $risk_id; } } $camera_list = DB::table('camera_list') ->select('camera_list.*','mine_list.title') ->leftJoin('mine_list','camera_list.mine_id','=','mine_list.id') ->where('camera_list.deleted_at',null) ->whereIn('camera_list.mine_id',$mine_list) ->orderBy('sort', 'desc')->get(); $result = []; foreach($camera_list as $k=>$v){ $result[$k]['parent_id'] = $ningmei[0]->id; $result[$k]['camera_id'] = $v->id; $result[$k]['mine_name'] = $v->title; $result[$k]['camera_name'] = $v->camera_name; $result[$k]['cover_picture'] = $v->cover_picture; $result[$k]['camera_status'] = $v->camera_status; $result[$k]['base64'] = $v->base64; } return self::successResponse($result); } public function mineTree($regions) { $arr = null; foreach ($regions as $key => $value) { $risk = explode('高风险作业',$value->title); if (count($risk)>1){ return $value->id; } $mine_child = DB::table('mine_list')->where('parent_id', $value->id)->where('deleted_at',null)->get(); if (count($mine_child) > 0) { $arr = self::mineTree($mine_child, $value->id); if($arr != null){ return $arr; } } } return $arr; } public function riskTree($regions,$risk_list) { foreach ($regions as $key => $value) { $risk_child = DB::table('mine_list')->where('parent_id', $value->id)->where('deleted_at',null)->get(); if (count($risk_child) > 0) { $risk_list = array_merge($risk_list,self::riskTree($risk_child,[])); }else{ $risk_list[] = $value->id; } } return $risk_list; } //高风险区域摄像头 public function getCameraByMinecode(){ $mine_code = Input::get('mine_code', ''); if (!$mine_code) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $result['status'] = true; $result['msg'] = ApiEnum::RETURN_SUCCESS; $mine = DB::table('mine_list')->where('slug','like','%'.$mine_code.'%')->where('parent_id',0)->where('deleted_at',null)->first(); if (!$mine) { $result['status'] = false; $result['msg'] = '矿区名称不存在'; return $result; } $mine_list = DB::table('mine_list')->where('degree', 'like', $mine->id . '|' . '%')->where('title','like','%高风险%')->where('deleted_at',null)->get(); $mine_array = []; foreach($mine_list as $k=>$v){ $mine_child = DB::table('mine_list')->where('degree', 'like','%' . $v->id . '%')->where('deleted_at',null)->get(); if(count($mine_child)>0){ for($i=0;$iid; } } } $query = DB::table('camera_list') ->select('camera_list.*','mine_list.title') ->leftJoin('mine_list','camera_list.mine_id','=','mine_list.id') ->where('camera_list.deleted_at',null) ->whereIn('camera_list.mine_id',$mine_array) ->orderBy('sort', 'desc')->get(); if (!$query) { $result['status'] = false; $result['msg'] = '矿区下没有摄像头'; return $result; } $result = []; foreach($query as $k=>$v){ $result[$k]['parent_id'] = $mine->id; $result[$k]['camera_id'] = $v->id; $result[$k]['mine_name'] = $v->title; $result[$k]['camera_name'] = $v->camera_name; $result[$k]['cover_picture'] = $v->cover_picture; $result[$k]['camera_status'] = $v->camera_status; } return self::successResponse($result); } /** * 作者: qiuzijian * 注释: 获取摄像头列表 * @return \App\Http\Controllers\Api\JsonResponse */ public function getCamerasList() { $parent_id = Input::get('parent_id', ''); $mine_id = Input::get('mine_id', ''); $camera_type = Input::get('camera_type', CameraEnum::CAMERA_TYPE_ALL); $surface_id = Input::get('surface_id', ''); if (!$parent_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } if (!in_array($camera_type, [CameraEnum::CAMERA_TYPE_NORMAL, CameraEnum::CAMERA_TYPE_ALL]) && !$surface_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } //判断是否使用海康视频服务器 // $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak'); // if ($is_hak) { // $result = CameraServices::getHaiKangCamera($parent_id, $mine_id, $camera_type); // } else { $result = CameraServices::getCameraListByMineId($mine_id, $camera_type, $parent_id, $surface_id); // } return self::successResponse($result); } //大华语音对讲 public function dahuaTalk(){ $parent_id = Input::get('parent_id', ''); $camera_id = Input::get('camera_id', ''); if (!$parent_id || !$camera_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $tdwy = new TdwyController(); $result = $tdwy->talkUrl($camera_id,$parent_id); return self::successResponse($result); } //海康语音对讲 public function hikTalk(){ $parent_id = Input::get('parent_id', ''); $camera_id = Input::get('camera_id', ''); if (!$parent_id || !$camera_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $result['status'] = true; $result['msg'] = ApiEnum::RETURN_SUCCESS; $result = CameraServices::getHikTalkUrl($parent_id,$camera_id); return self::successResponse($result); } //大华停止语音对讲 public function dahuaStopTalk(){ $parent_id = Input::get('parent_id', ''); $camera_id = Input::get('camera_id', ''); $device_code = Input::get('device_code', ''); $session = Input::get('session', ''); if (!$parent_id || !$camera_id || !$device_code || !$session) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $tdwy = new TdwyController(); $result = $tdwy->talkStop($camera_id,$parent_id,$device_code,$session); return self::successResponse($result); } /** * 作者: qiuzijian * 注释: 获取摄像头播放地址 * @return \App\Http\Controllers\Api\JsonResponse */ public function getCamerasUrl() { $parent_id = Input::get('parent_id', ''); $camera_id = Input::get('camera_id', ''); if (!$parent_id || !$camera_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } //判断摄像头来源是否为内网服务器 $camera_source = CameraList::where('id', $camera_id)->value('camera_source'); if ($camera_source == CameraEnum::CAMERA_SOURCE_3) { $result = CameraServices::getIntranetCameraUrl($camera_id); return self::successResponse($result); } //判断是否使用海康视频服务器 $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak'); //判断是否生成摄像头请求链接 $camera_url = CameraList::where('id', $camera_id)->value('camera_url'); if ($is_hak && !$camera_url) { //判断是否是mine配置文件的矿区 $mine_res = DB::table('mine_list')->where('id',$parent_id)->get(); //天地伟业 if(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine'))){ $result = CameraServices::getRtspTianDi($camera_id,$parent_id); //宁煤集团 }elseif(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine_hls'))){ $result = CameraServices::getHkHls($camera_id,$parent_id); } //大华摄像头 elseif($is_hak == 2){ //同步大华视频服务器摄像头 $tdwy = new TdwyController(); $result = $tdwy->dahuaRtsp($camera_id,$parent_id); } //信息技术中心测试ws协议 // elseif($mine_res[0]-> slug == 'XinXiJiShuZhongXin'){ // $result = CameraServices::getHkWs($camera_id,$parent_id); // // } elseif($parent_id == '6561'){//洗选执法记录仪hls $result = CameraServices::getCameraWssUrl($parent_id, $camera_id); } elseif($parent_id == '7004'){//鹰骏一矿外网ws $result = CameraServices::getCameraWsUrl($parent_id, $camera_id); } //海康切片逻辑 else{ $result = CameraServices::downloadCameraFiles($parent_id, $camera_id); } } else { //判断硬盘录像机的有没有封面图,有的走easydrawin,没有的走ffmpeg $cover_picture = CameraList::where('id', $camera_id)->value('cover_picture'); // if(!$cover_picture){ //ffmpeg拉流获取首帧图片 // $result = CameraServices::getCameraUrlByFfmpeg($camera_id); // }else{ // $result = CameraServices::getCameraUrlByCameraId($camera_id); // $result = CameraServices::getRtspYingPan($camera_id); //硬盘录像机切片测试 $result = CameraServices::getRtspQiePian($camera_id); // } } return self::successResponse($result); } public function getCamerasLanUrl() { $parent_id = Input::get('parent_id', ''); $camera_id = Input::get('camera_id', ''); if (!$parent_id || !$camera_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } //判断摄像头来源是否为内网服务器 $camera_source = CameraList::where('id', $camera_id)->value('camera_source'); if ($camera_source == CameraEnum::CAMERA_SOURCE_3) { $result = CameraServices::getIntranetCameraUrl($camera_id); return self::successResponse($result); } //判断是否使用海康视频服务器 $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak'); //判断是否生成摄像头请求链接 $camera_url = CameraList::where('id', $camera_id)->value('camera_url'); if ($is_hak && !$camera_url) { //判断是否是mine配置文件的矿区 $mine_res = DB::table('mine_list')->where('id',$parent_id)->get(); //天地伟业 if(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine'))){ $result = CameraServices::getRtspTianDi($camera_id,$parent_id); //宁煤集团 }elseif(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine_hls'))){ $result = CameraServices::getHkHls($camera_id,$parent_id); }else{ $result = CameraServices::getLanCameraUrl($parent_id, $camera_id); } } else { //判断硬盘录像机的有没有封面图,有的走easydrawin,没有的走ffmpeg $cover_picture = CameraList::where('id', $camera_id)->value('cover_picture'); // if(!$cover_picture){ //ffmpeg拉流获取首帧图片 // $result = CameraServices::getCameraUrlByFfmpeg($camera_id); // }else{ $result = CameraServices::getCameraUrlByCameraId($camera_id); // } } return self::successResponse($result); } //获取海康rtsp流 public function getHikRtsp(){ $parent_id = Input::get('parent_id', ''); $camera_id = Input::get('camera_id', ''); if (!$parent_id || !$camera_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } //判断是否使用海康视频服务器 $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak'); //判断是否生成摄像头请求链接 $camera_url = CameraList::where('id', $camera_id)->value('camera_url'); if ($is_hak == 1 && !$camera_url) { $result = CameraServices::getHkRtsp($camera_id,$parent_id); return self::successResponse($result); }else{ return self::errorResponse(ApiEnum::HK_REQUEST_FAIL); } } //获取海康rtmp流 public function getHikRtmp(){ $parent_id = Input::get('parent_id', ''); $camera_id = Input::get('camera_id', ''); if (!$parent_id || !$camera_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } //判断是否使用海康视频服务器 $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak'); //判断是否生成摄像头请求链接 $camera_url = CameraList::where('id', $camera_id)->value('camera_url'); if ($is_hak == 1 && !$camera_url) { $result = CameraServices::getHkRtmp($camera_id,$parent_id); return self::successResponse($result); }else{ return self::errorResponse(ApiEnum::HK_REQUEST_FAIL); } } //海康摄像头easy_drawin方式获取url public function getCamerasRtsp() { $parent_id = Input::get('parent_id', ''); $camera_id = Input::get('camera_id', ''); if (!$parent_id || !$camera_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } //判断摄像头来源是否为内网服务器 $camera_source = CameraList::where('id', $camera_id)->value('camera_source'); if ($camera_source == CameraEnum::CAMERA_SOURCE_3) { $result = CameraServices::getIntranetCameraUrl($camera_id); return self::successResponse($result); } //判断是否使用海康视频服务器 $is_hak = MineListExt::where('mine_id', $parent_id)->value('is_hak'); //判断是否生成摄像头请求链接 $camera_url = CameraList::where('id', $camera_id)->value('camera_url'); if ($is_hak && !$camera_url) { //判断是否是mine配置文件的矿区 $mine_res = DB::table('mine_list')->where('id',$parent_id)->get(); if(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('mine'))){ //天地伟业使用easy_drawin获取rtsp $result = CameraServices::getRtspTianDi($camera_id,$parent_id); }else{ //海康使用easy_drawin获取rtsp $result = CameraServices::getRtspHaiKang($camera_id, $parent_id); } } else { //硬盘录像机使用easy_drawin获取rtsp $result = CameraServices::getRtspYingPan($camera_id); } return self::successResponse($result); } /** * 作者: qiuzijian * 注释: 停止摄像头推流 * @return \App\Http\Controllers\Api\JsonResponse */ public function stopCamerasStream() { $camera_id = Input::get('camera_id', ''); $result = CameraServices::stopCameraStream(); return self::successResponse($result); } //回放列表 public function getPlaybackList(){ $camera_id = Input::get('camera_id', ''); $result['status'] = true; $result['msg'] = ApiEnum::RETURN_SUCCESS; if (!$camera_id) { $result['status'] = false; $result['msg'] = ApiEnum::STATUS_CODE_EMPTY; return $result; } $query = CameraList::where('id', $camera_id)->first(); if (!$query) { $result['status'] = false; $result['msg'] = ApiEnum::NO_CAMERA_URL; return $result; } if($query->playback == 0){ $result['status'] = false; $result['msg'] = ApiEnum::NO_SUPORT_PLAYBACK; return $result; } $playback = DB::table('playback')->where('camera_id',$query->id)->where('deleted_at',null)->get(); if(count($playback)>0){ for($i=0;$ititle; $result['data'][$i]['start_time'] = $playback[$i]->start_time; $result['data'][$i]['end_time'] = $playback[$i]->end_time; $result['data'][$i]['camera_id'] = $playback[$i]->camera_id; } }else{ $result['data'] = null; } return $result; } //回放URL public function getPlaybackUrl(){ $time['start_time'] = explode(' ',Input::get('start_time', ''))[1]; $time['end_time'] = explode(' ',Input::get('end_time', ''))[1]; $camera_id = Input::get('camera_id', ''); $start_time = Input::get('start_time', ''); $end_time = Input::get('end_time', ''); $result['status'] = true; $result['msg'] = ApiEnum::RETURN_SUCCESS; if (!$camera_id || !$start_time || !$end_time) { $result['status'] = false; $result['msg'] = ApiEnum::STATUS_CODE_EMPTY; return $result; } $query = CameraList::where('id', $camera_id)->first(); if (!$query) { $result['status'] = false; $result['msg'] = ApiEnum::NO_CAMERA_URL; return $result; } if($query->playback == 0){ $result['status'] = false; $result['msg'] = ApiEnum::NO_SUPORT_PLAYBACK; return $result; } $degree = MineList::where('id', $query->mine_id)->value('degree'); $degree = explode('|', $degree)[0]; $mine_res = DB::table('mine_list')->where('id',$degree)->get(); //判断摄像头是否是洗选中心的时间+34分钟 if($mine_res[0]->slug == 'XiXuanZhongXin'){ $start_time = date('Y-m-d H:i:s',strtotime($start_time.'+34 minutes')); $end_time = date('Y-m-d H:i:s',strtotime($end_time.'+34 minutes')); } $str = '.000+'; $start_time = date('c', strtotime($start_time));//2022-07-14T08:00:00.000+08:00 $start_time = explode('+',$start_time); $start_time = $start_time[0].$str.$start_time[1]; $end_time = date('c', strtotime($end_time)); $end_time = explode('+',$end_time); $end_time = $end_time[0].$str.$end_time[1]; //判断是否在配置文件里,在的不用走ffmpeg if(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('playback'))){ $result = CameraServices::getPlaybackRtsp($camera_id,$start_time,$end_time); return self::successResponse($result); }else{ $result = CameraServices::getPlaybackRtmp($camera_id,$start_time,$end_time,$time); return self::successResponse($result); } } //easydrawin回放URL public function getPlaybackUrlByEasy(){ $time['start_time'] = explode(' ',Input::get('start_time', ''))[1]; $time['end_time'] = explode(' ',Input::get('end_time', ''))[1]; $camera_id = Input::get('camera_id', ''); $start_time = Input::get('start_time', ''); $end_time = Input::get('end_time', ''); $result['status'] = true; $result['msg'] = ApiEnum::RETURN_SUCCESS; if (!$camera_id || !$start_time || !$end_time) { $result['status'] = false; $result['msg'] = ApiEnum::STATUS_CODE_EMPTY; return $result; } $query = CameraList::where('id', $camera_id)->first(); if (!$query) { $result['status'] = false; $result['msg'] = ApiEnum::NO_CAMERA_URL; return $result; } if($query->playback == 0){ $result['status'] = false; $result['msg'] = ApiEnum::NO_SUPORT_PLAYBACK; return $result; } $degree = MineList::where('id', $query->mine_id)->value('degree'); $degree = explode('|', $degree)[0]; $mine_res = DB::table('mine_list')->where('id',$degree)->get(); //判断摄像头是否是洗选中心的时间+34分钟 if($mine_res[0]->slug == 'XiXuanZhongXin'){ $start_time = date('Y-m-d H:i:s',strtotime($start_time.'+34 minutes')); $end_time = date('Y-m-d H:i:s',strtotime($end_time.'+34 minutes')); } $str = '.000+'; $start_time = date('c', strtotime($start_time));//2022-07-14T08:00:00.000+08:00 $start_time = explode('+',$start_time); $start_time = $start_time[0].$str.$start_time[1]; $end_time = date('c', strtotime($end_time)); $end_time = explode('+',$end_time); $end_time = $end_time[0].$str.$end_time[1]; //判断是否在配置文件里,在的不用走ffmpeg if(isset($mine_res[0]->title) && in_array($mine_res[0]->title,config('playback'))){ $result = CameraServices::getPlaybackRtsp($camera_id,$start_time,$end_time); return self::successResponse($result); }else{ $result = CameraServices::getPlaybackByEasy($camera_id,$start_time,$end_time,$time); return self::successResponse($result); } } /** * 作者: qiuzijian * 注释: 获取编码设备信息 * @return \App\Http\Controllers\Api\JsonResponse */ public function getTranscodeInfo() { $parent_id = Input::get('parent_id', ''); if (!$parent_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $result = CameraServices::getHaiKangTransCode($parent_id); return self::successResponse($result); } /** * 作者: qiuzijian * 注释: 获取大南湖摄像头列表 * @return \App\Http\Controllers\Api\JsonResponse */ public function getSouthLakeCamera() { $result = CameraServices::getLeChangeCamera(); return self::successResponse($result); } public function pictureBase64(){ $base64 = Input::get('base64', ''); $camera_id = Input::get('camera_id', ''); if (!$base64 || !$camera_id) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $data['base64'] = $base64; DB::table('camera_list')->where('id',$camera_id)->update($data); return self::successResponse(); } public function test(){ // header("Access-Control-Allow-Origin: *"); $data = DB::table('goods')->get(); return $data; } public function testadd(){ // header("Access-Control-Allow-Origin: *"); $res['good_name'] = Input::get('good_name', ''); $res['good_url'] = 'images/1.jpg'; $res['good_count'] = Input::get('good_count', ''); $res['good_price'] = Input::get('good_price', ''); $res['good_state'] = Input::get('good_state', ''); DB::table('goods')->insert($res); return true; } public function testdel(){ // header("Access-Control-Allow-Origin: *"); DB::table('goods')->where('id',Input::get('id',''))->delete(); return true; } public function testupdate(){ // header("Access-Control-Allow-Origin: *"); $res['good_name'] = Input::get('good_name', ''); $res['good_url'] = 'images/1.jpg'; $res['good_count'] = Input::get('good_count', ''); $res['good_price'] = Input::get('good_price', ''); $res['good_state'] = Input::get('good_state', ''); DB::table('goods')->where('id',Input::get('id',''))->update($res); return true; } //值班信息 public function dutyInformation(){ $today = date('Y-m-d'); $tomorrow = date("Y-m-d",strtotime("+1 day")); $result['today_zzb'] = DB::connection('etl_zaoquan')->select("select * from news_duty_list where date ='".$today."' and type = 'zzb'"); $result['today_fzzb'] = DB::connection('etl_zaoquan')->select("select * from news_duty_list where date ='".$today."' and type = 'fz'"); $result['tomorrow_zzb'] = DB::connection('etl_zaoquan')->select("select * from news_duty_list where date ='".$tomorrow."' and type = 'zzb'"); $result['tomorrow_fzzb'] = DB::connection('etl_zaoquan')->select("select * from news_duty_list where date ='".$tomorrow."' and type = 'fz'"); return self::successResponse($result); } //分类列表 public function typeList(){ $result = $result = DB::connection('etl_zaoquan')->select("select type from news_column_list group by type"); if(count($result) > 0){ for($i=0;$itype=="mkxw"){ unset($result[$i]); $newObject = ['type' => 'mkxw','name'=>'煤矿新闻']; array_unshift($result, $newObject); } if($result[$i]->type == 'aqsc'){ $result[$i]->name = '安全生产'; } if($result[$i]->type == 'mkxw'){ $result[$i]->name = '煤矿新闻'; } if($result[$i]->type == 'zwbg'){ $result[$i]->name = '政务办公'; } if($result[$i]->type == 'djgz'){ $result[$i]->name = '党建工作'; } if($result[$i]->type == 'qygl'){ $result[$i]->name = '企业管理'; } if($result[$i]->type == 'jdgl'){ $result[$i]->name = '机电管理'; } if($result[$i]->type == 'scjsgl'){ $result[$i]->name = '生产技术管理'; } if($result[$i]->type == 'jjjc'){ $result[$i]->name = '纪检监察'; } if($result[$i]->type == 'zhzl'){ $result[$i]->name = '综合治理'; } if($result[$i]->type == 'jypx'){ $result[$i]->name = '教育培训'; } if($result[$i]->type == 'kwgk'){ $result[$i]->name = '矿务公开'; } } } return self::successResponse($result); } //文章列表 public function articleList(Request $request){ $params = $request->all(); if (!isset($params['page_size'])) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } if (!isset($params['page_num'])) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } if (!isset($params['type'])) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $offset = $params['page_size'] * ($params['page_num'] - 1); $result = DB::connection('etl_zaoquan')->select("select * from news_column_list where type = '".$params['type']."' order by create_time desc limit ".$params['page_size']." offset ".$offset); $pattern = '//i';//图片 $pattern2 = '/href="([^"]+)"/';//文件 if(count($result) > 0){ for($i=0;$ititle_image; $old_title_image_array = explode('/',$old_title_image); $old_img_path = $old_title_image_array[count($old_title_image_array)-1]; $new_img_path_list = DB::connection('etl_zaoquan')->select("select * from news_img_list where img_name ='".$old_img_path."'"); if(count($new_img_path_list) > 0){ $result[$i]->main_img = $new_img_path_list[0]->new_name; } unset($result[$i]->title_image); $result[$i]->created_at = $result[$i]->create_time; unset($result[$i]->create_time); //替换text的图片 preg_match_all($pattern, $result[$i]->text, $matches); foreach ($matches[2] as $index => $oldSrc) { $news_img_list = DB::connection('etl_zaoquan')->select("select * from news_img_list where img_name ='".basename($oldSrc)."'"); if(count($news_img_list) > 0){ $newSrc = $news_img_list[0]->new_name; $result[$i]->text = str_replace($oldSrc, $newSrc, $result[$i]->text); } } //替换text的文件 preg_match_all($pattern2, $result[$i]->text, $matches2); foreach ($matches2[1] as $index => $oldSrc) { $news_file_list = DB::connection('etl_zaoquan')->select("select * from news_img_list where img_name ='".basename($oldSrc)."'"); if(count($news_file_list) > 0){ $newSrc = $news_file_list[0]->new_name; $result[$i]->text = str_replace($oldSrc, $newSrc, $result[$i]->text); } } } } return self::successResponse($result); } //文章图片上传至阿里云 public function ossUrl(Request $request){ $params = $request->all(); if (!isset($params['url'])) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $result = $this->downloadFile($params['url']); return self::successResponse($result); } //下载文件 public function downloadFile($file_path) { $rename = mt_rand(1111111,9999999); if (!$file_path) { return false; } set_time_limit(0); $ch = curl_init($file_path); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); $rawdata = curl_exec ($ch); curl_close ($ch); $houzhui = explode('.',$file_path); $houzhui = '.'.$houzhui[count($houzhui)-1]; // 使用中文文件名需要转码 $fp = fopen(public_path() . '/filedownload/' . $rename.$houzhui, 'w'); fwrite($fp, $rawdata); fclose($fp); $file_name = $rename; //上传文件 $file_oss_path = $this->uploadFile($file_name,$houzhui); return $file_oss_path; } //上传文件 public function uploadFile($file_name,$houzhui) { try{ $oss = new OssClient( Config::get('filesystems.disks.oss_view.access_key'), Config::get('filesystems.disks.oss_view.secret_key'), Config::get('filesystems.disks.oss_view.endpoint') ); $file_path = public_path() . '/filedownload/' . $file_name.$houzhui; $res = $oss->uploadFile(Config::get('filesystems.disks.oss_view.bucket'), $file_name.$houzhui, $file_path); } catch(\OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } if (isset($res['info']['url']) && $res['info']['url']) { unlink($file_path); return urldecode($res['info']['url']); } else { return false; } } //摄像头访问记录入库 public function cameraRecordInsert(Request $request){ $params = $request->all(); // $opcDB = DB::connection('anning'); // $dbResult = $opcDB->select('select * from uf_dwj_spjkymfw where ymid = 6224'); if(isset($params['staff_num']) && isset($params['name']) && isset($params['department']) && isset($params['post']) && isset($params['camera_id']) && isset($params['start_time'])){ $camera = DB::table('camera_list')->where('id',$params['camera_id'])->get(); $mine = DB::table('mine_list')->where('id',$camera[0]->mine_id)->get(); $degree = explode('|',$mine[0]->degree); $unit = DB::table('mine_list')->where('id',$degree[0])->get(); $data['staff_num'] = $params['staff_num']; $data['name'] = $params['name']; $data['department'] = $params['department']; $data['post'] = $params['post']; $data['mine_id'] = $camera[0]->mine_id; $data['camera_id'] = $params['camera_id']; $data['camera_name'] = $camera[0]->camera_name; $data['unit_name'] = $unit[0]->title; if(isset($params['base64']) && $params['base64'] != null && $params['base64'] != ''){ $data['base64'] = $params['base64']; } $data['start_time'] = date('Y-m-d').' '.$params['start_time']; // $data['start_time'] = date('Y-m-d').' '.$params['end_time']; $data['created_at'] = date('Y-m-d H:i:s'); $data['updated_at'] = date('Y-m-d H:i:s'); DB::table('camera_record')->insert($data); } } //摄像头访问记录列表 public function cameraRecordList(Request $request){ $params = $request->all(); if (!isset($params['camera_id'])) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $camera_record = DB::table('camera_record')->where('camera_id',$params['camera_id'])->where('deleted_at',null)->orderBy('created_at','desc')->limit(20)->get(); return self::successResponse($camera_record); } //摄像头下拉列表 public function cameraSelect(Request $request){ $result = ''; return json_encode($result); } //移动摄像头下拉列表 public function moveCameraSelect(Request $request){ $mine_id = 6492; $camera = DB::table('camera_list')->where('mine_id',$mine_id)->where('deleted_at',null)->get(); $result = []; if(count($camera) > 0){ for($i=0;$i $camera[$i]->camera_name, 'value' => $camera[$i]->id.'|'.$mine_id.'|'.$camera[$i]->camera_name.'|'.$camera[$i]->camera_type ]; } } return json_encode($result); } //执法记录仪下拉列表 public function zhifaCameraSelect(Request $request){ $mine_id = 6561; $mine_list = DB::table('mine_list')->where('parent_id',$mine_id)->where('show',1)->where('deleted_at',null)->pluck('id'); $camera_list = DB::table('camera_list')->whereIn('mine_id',$mine_list)->where('is_show',1)->where('camera_status',1)->where('deleted_at',null)->get(); $result = []; if(count($camera_list) > 0){ for($i=0;$i $camera_list[$i]->camera_name, 'value' => $camera_list[$i]->id.'|'.$mine_id.'|'.$camera_list[$i]->camera_name.'|'.$camera_list[$i]->camera_type ]; } } return $result; } //摄像头信息 public function cameraInfo(Request $request){ $params = $request->all(); $camera = DB::table('camera_list')->where('id',$params['camera_id'])->get(); $result['id'] = $camera[0]->id; $result['camera_name'] = $camera[0]->camera_name; $result['camera_url'] = $camera[0]->camera_url; $result['camera_type'] = $camera[0]->camera_type; $result['cover_picture'] = $camera[0]->cover_picture; $result['parent_id'] = $camera[0]->mine_id; return $result; } //使用说明 public function readme(Request $request){ $params = $request->all(); $result['coal_washery'] = DB::connection('task_xixuan')->table('xx_coal_washery')->orderBy('id')->get(); $mine_list = DB::table('mine_list')->where('parent_id',6356)->where('deleted_at',null)->get(); $result['camera_list'] = []; if(count($mine_list) > 0){ for($i=0;$iwhere('mine_id',$mine_list[$i]->id)->where('is_show',1)->where('deleted_at',null)->get(); if(count($camera_list) > 0){ $result['camera_list'][$i]['area'] = $mine_list[$i]->title; for($j=0;$jid.':'.$camera_list[$j]->camera_name; } } } } return $result; } //主屏幕 public function mainHome(Request $request){ $gao = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',0)->count(); $zhong = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',1)->count(); $di = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',2)->count(); $result = [ [ 'number' => $gao, 'unit' => '项', 'title' => '高风险作业', 'color' => '#DA0000' ], [ 'number' => $zhong, 'unit' => '项', 'title' => '中风险作业', 'color' => '#FFBA00' ], [ 'number' => $di, 'unit' => '项', 'title' => '低风险作业', 'color' => '#2BB200' ] ]; return self::successResponse($result); } //风险作业占比 public function riskWorkPercent(Request $request){ $gao = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',0)->count(); $zhong = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',1)->count(); $di = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', today())->where('risk_level',2)->count(); $result = [ [ 'value' => $gao, 'name' => '高风险', ], [ 'value' => $zhong, 'name' => '中风险', ], [ 'value' => $di, 'name' => '低风险', ] ]; return self::successResponse($result); } //片区占比 public function areaPercent(Request $request){ $area = DB::connection('task_xixuan')->table('xx_area')->get(); if(count($area) > 0){ for($i=0;$itable('xx_coal_washery')->where('area_id',$area[$i]->id)->pluck('id'); $result[$i]['value'] = DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', today())->count(); $result[$i]['name'] = $area[$i]->name; } } return self::successResponse($result); } //地图数据 public function mapData(Request $request){ $coal_washery = DB::connection('task_xixuan')->table('xx_coal_washery')->get(); $coal_list = [ '灵新洗煤厂'=>'linxing', '红柳洗煤厂'=>'hongliu', '枣泉洗煤厂'=>'zaoquan', '大武口洗煤厂'=>'dawukou', '金凤洗煤厂'=>'jinfeng', '检修车间'=>'jianxiuchejian', '太西洗煤厂'=>'taixi', '清水营洗煤厂'=>'qingshuiying', '梅花井洗煤厂'=>'meihuajing', '石槽村洗煤厂'=>'shicaocun', '双马洗煤厂'=>'shuangma', '羊场湾洗煤厂'=>'yangchangwan', '羊场湾二分区洗煤厂'=>'yangchangwanerfenqu' ]; if(count($coal_washery) > 0){ for($i=0;$iname, $coal_list)) { $slog = $coal_list[$coal_washery[$i]->name]; $result[$slog]['title'] = $coal_washery[$i]->name; $result[$slog]['id'] = $coal_washery[$i]->id; $result[$slog]['data'] = [ [ 'name' => '高风险作业', 'value'=> DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',0)->whereDate('optdt', today())->count() ], [ 'name' => '中风险作业', 'value'=> DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',1)->whereDate('optdt', today())->count() ], [ 'name' => '低风险作业', 'value'=> DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',2)->whereDate('optdt', today())->count() ] ]; } } } return self::successResponse($result); } //时间段作业数 public function timeWorkCount(Request $request){ $params = $request->all(); if(isset($params['start_date']) && isset($params['end_date'])){ $start_date = $params['start_date']; $end_date = $params['end_date']; }else{ $start_date = date('Y-m-d', strtotime(date('Y-m-d') . ' -6 day')); $end_date = date('Y-m-d'); } $current_date = $start_date; $i = 0; $result = []; $result['xAxis']['type'] = 'category'; $result['xAxis']['data'] = []; $result['series'] = [ [ 'name' => '高风险作业', 'type' => 'bar', 'stack'=> 'bar_1', 'data' => [], 'itemStyle' => [ 'color' => '#DA0000', 'borderRadius' => [10,10,10,10] ] ], [ 'name' => '中风险作业', 'type' => 'bar', 'stack'=> 'bar_2', 'data' => [], 'itemStyle' => [ 'color' => '#FFBA00', 'borderRadius' => [10,10,10,10] ] ], [ 'name' => '低风险作业', 'type' => 'bar', 'stack'=> 'bar_3', 'data' => [], 'itemStyle' => [ 'color' => '#2BB200', 'borderRadius' => [10,10,10,10] ] ] ]; while ($current_date <= $end_date) { array_push($result['xAxis']['data'],$current_date); array_push($result['series'][0]['data'],DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',0)->count()); array_push($result['series'][1]['data'],DB::connection('task_xixuan')->table('xx_risk_assignment')->whereDate('optdt', $current_date)->where('risk_level',1)->count()); array_push($result['series'][2]['data'],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 timeAreaTotal(Request $request){ $params = $request->all(); if (isset($params['area_id'])) { $area_id = $params['area_id']; }else{ $area_id = 1; } if(isset($params['start_date']) && isset($params['end_date'])){ $start_date = $params['start_date']; $end_date = $params['end_date']; }else{ $start_date = date('Y-m-d', strtotime(date('Y-m-d') . ' -6 day')); $end_date = date('Y-m-d'); } $coal_washery_id_list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$area_id)->pluck('id'); $result = []; $current_date = $start_date; $i = 0; //当日片区数 $result['data'] = [ [ 'number' => DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', date('Y-m-d'))->where('risk_level',0)->count(), 'unit' => '项', 'title' => '高风险作业', 'color' => '#DA0000' ], [ 'number' => DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', date('Y-m-d'))->where('risk_level',1)->count(), 'unit' => '项', 'title' => '中风险作业', 'color' => '#FFBA00' ], [ 'number' => DB::connection('task_xixuan')->table('xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('optdt', date('Y-m-d'))->where('risk_level',2)->count(), 'unit' => '项', 'title' => '低风险作业', 'color' => '#2BB200' ] ]; $result['xAxis']['type'] = 'category'; $result['xAxis']['data'] = []; $result['series'] = [ [ 'name' => '高风险作业', 'type' => 'line', 'data' => [], 'itemStyle' => [ 'color' => '#DA0000', 'borderRadius' => [10,10,10,10] ] ], [ 'name' => '中风险作业', 'type' => 'line', 'data' => [], 'itemStyle' => [ 'color' => '#FFBA00', 'borderRadius' => [10,10,10,10] ] ], [ 'name' => '低风险作业', 'type' => 'line', 'data' => [], 'itemStyle' => [ 'color' => '#2BB200', 'borderRadius' => [10,10,10,10] ] ] ]; while ($current_date <= $end_date) { array_push($result['xAxis']['data'],$current_date); array_push($result['series'][0]['data'],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()); array_push($result['series'][1]['data'],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()); array_push($result['series'][2]['data'],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); } //洗煤厂统计 public function coalWasheryTotal(Request $request){ $params = $request->all(); if(isset($params['area_id'])){ $area = [$params['area_id']]; }else{ $area = [1,2]; } $coal_washery = DB::connection('task_xixuan')->table('xx_coal_washery')->whereIn('area_id',$area)->get(); if(count($coal_washery) > 0){ for($i=0;$iname; $result[$i]['coal_washery_id'] = $coal_washery[$i]->id; $result[$i]['data'] = [ [ 'label' => '高', 'value' => DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',0)->whereDate('optdt', today())->count(), 'color' => '#DA0000' ], [ 'label' => '中', 'value' => DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',1)->whereDate('optdt', today())->count(), 'color' => '#FFBA00' ], [ 'label' => '低', 'value' => DB::connection('task_xixuan')->table('xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->id)->where('risk_level',2)->whereDate('optdt', today())->count(), 'color' => '#2BB200' ], ]; } } return self::successResponse($result); } //风险作业列表 public function riskWorkList(Request $request){ $params = $request->all(); if(isset($params['type'])){ $type = [$params['type']]; }else{ $type = [0,1,2]; } $list = []; if(isset($params['area_id'])){ $list = DB::connection('task_xixuan')->table('xx_coal_washery')->where('area_id',$params['area_id'])->pluck('id'); } if(isset($params['coal_washery_id'])){ $list = [$params['coal_washery_id']]; } $coal_washery_list = DB::connection('task_xixuan')->table('xx_coal_washery')->get(); if(count($coal_washery_list) > 0){ for($i=0;$iname; $result['unit_list'][$i]['value'] = $coal_washery_list[$i]->name; } } $risk = DB::connection('task_xixuan')->table('xx_risk_assignment'); $risk = $risk->select('xx_risk_assignment.*','xx_coal_washery.name as coal_washery'); $risk = $risk->leftJoin('xx_coal_washery','xx_coal_washery.id','=','xx_risk_assignment.coal_washery_id'); if(count($list) > 0){ $risk = $risk->whereIn('coal_washery_id',$list); } $risk = $risk->whereDate('xx_risk_assignment.optdt', today()); if(isset($params['id'])){ $risk = $risk->where('xx_coal_washery.id',$params['id']); } $risk = $risk->whereIn('risk_level',$type)->get(); $risk_level = ['高风险','中风险','低风险']; $risk_type = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息']; $result['data'] = []; if(count($risk) > 0){ for($i=0;$iid; $result['data'][$i]['unit_name'] = $risk[$i]->coal_washery; $result['data'][$i]['place'] = $risk[$i]->work_location; $result['data'][$i]['content'] = $risk[$i]->risk_name; $result['data'][$i]['work_people'] = $risk[$i]->work_people; $result['data'][$i]['work_num'] = $risk[$i]->work_num; $result['data'][$i]['risk_level'] = $risk_level[$risk[$i]->risk_level]; if($risk[$i]->risk_type != null){ $result['data'][$i]['risk_type'] = $risk_type[$risk[$i]->risk_type]; }else{ $result['data'][$i]['risk_type'] = '无'; } $result['data'][$i]['coal_washery'] = $risk[$i]->coal_washery; } } return self::successResponse($result); } //风险作业详情 public function riskWorkDetail(Request $request){ $params = $request->all(); if (!isset($params['id'])) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $risk_type = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息']; $risk_level = ['高风险','中风险','低风险']; $type = ''; $camera_name = '无'; $result['camera']['camera_id'] = ''; $result['camera']['parent_id'] = ''; $move_type = ''; $move_camera_name = '无'; $result['move_camera']['camera_id'] = ''; $result['move_camera']['parent_id'] = ''; $zhifa_type = ''; $zhifa_camera_name = '无'; $result['zhifa_camera']['camera_id'] = ''; $result['zhifa_camera']['parent_id'] = ''; $risk = 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') ->where('xx_risk_assignment.id',$params['id'])->get(); if(count($risk) > 0){ $camera_info = explode('|',$risk[0]->camera_id); if(count($camera_info) > 1){ $camera_name = $camera_info[2]; $is_hak = MineListExt::where('mine_id', $camera_info[1])->value('is_hak'); if($is_hak == 2){ $type = 'rtsp'; }else{ $type = 'm3u8'; } } $move_camera_info = explode('|',$risk[0]->move_camera_id); if(count($move_camera_info) > 1){ $move_camera_name = $move_camera_info[2]; $is_hak = MineListExt::where('mine_id', $move_camera_info[1])->value('is_hak'); if($is_hak == 2){ $move_type = 'rtsp'; }else{ $move_type = 'm3u8'; } } $zhifa_camera_info = explode('|',$risk[0]->zhifa_camera_id); if(count($zhifa_camera_info) > 1){ $zhifa_camera_name = $zhifa_camera_info[2]; $is_hak = MineListExt::where('mine_id', $zhifa_camera_info[1])->value('is_hak'); if($is_hak == 2){ $zhifa_type = 'rtsp'; }else{ $zhifa_type = 'm3u8'; } } if($risk[0]->risk_type != '' && $risk[0]->risk_type !=null){ $risk_type_value = $risk_type[$risk[0]->risk_type]; }else{ $risk_type_value = '无'; } $result['detail'] = [ [ 'label' => '所属单位:', 'value' => $risk[0]->unit ], [ 'label' => '区队名称:', 'value' => $risk[0]->coal_washery ], [ 'label' => '班次:', 'value' => $risk[0]->classes ], [ 'label' => '作业人数:', 'value' => $risk[0]->work_num ], [ 'label' => '风险等级:', 'value' => $risk_level[$risk[0]->risk_level] ], [ 'label' => '风险类型:', 'value' => $risk_type_value ], [ 'label' => '作业内容:', 'value' => $risk[0]->risk_name ], [ 'label' => '作业地点:', 'value' => $risk[0]->work_location ], [ 'label' => '现场负责人:', 'value' => $risk[0]->work_people ], [ 'label' => '进展情况:', 'value' => $risk[0]->describe ], [ 'label' => '固定摄像头:', 'value' => $camera_name ], [ 'label' => '移动摄像头:', 'value' => $move_camera_name ], [ 'label' => '执法记录仪:', 'value' => $zhifa_camera_name ], ]; $camera_id = explode('|',$risk[0]->camera_id); if(count($camera_id) > 1){ $result['camera']['camera_id'] = $camera_id[0]; $result['camera']['parent_id'] = $camera_id[1]; } $result['camera']['camera_type'] = $type; $move_camera_id = explode('|',$risk[0]->move_camera_id); if(count($move_camera_id) > 1){ $result['move_camera']['camera_id'] = $move_camera_id[0]; $result['move_camera']['parent_id'] = $move_camera_id[1]; } $result['move_camera']['camera_type'] = $move_type; $zhifa_camera_id = explode('|',$risk[0]->zhifa_camera_id); if(count($zhifa_camera_id) > 1){ $result['zhifa_camera']['camera_id'] = $zhifa_camera_id[0]; $result['zhifa_camera']['parent_id'] = $zhifa_camera_id[1]; } $result['zhifa_camera']['camera_type'] = $zhifa_type; } return self::successResponse($result); } //首頁信息 public function taskHome(Request $request){ $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;$irisk_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); $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;$irisk_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;$irisk_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;$iname; $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;$iname; $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;$iname; $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); } //主屏幕 public function mainHomeV2(Request $request){ $gao = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', today())->where('risk_level',0)->where('is_delete',0)->count(); $zhong = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', today())->where('risk_level',1)->where('is_delete',0)->count(); $di = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', today())->where('risk_level',2)->where('is_delete',0)->count(); $result = [ [ 'number' => $gao, 'unit' => '项', 'title' => '高风险作业', 'color' => '#DA0000' ], [ 'number' => $zhong, 'unit' => '项', 'title' => '中风险作业', 'color' => '#FFBA00' ], [ 'number' => $di, 'unit' => '项', 'title' => '低风险作业', 'color' => '#2BB200' ] ]; return self::successResponse($result); } //风险作业占比 public function riskWorkPercentV2(Request $request){ $gao = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', today())->where('risk_level',0)->where('is_delete',0)->count(); $zhong = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', today())->where('risk_level',1)->where('is_delete',0)->count(); $di = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', today())->where('risk_level',2)->where('is_delete',0)->count(); $result = [ [ 'value' => $gao, 'name' => '高风险', ], [ 'value' => $zhong, 'name' => '中风险', ], [ 'value' => $di, 'name' => '低风险', ] ]; return self::successResponse($result); } //片区占比 public function areaPercentV2(Request $request){ $area = DB::connection('mysql_fwe10')->table('uf_xx_area')->where('is_delete',0)->get(); if(count($area) > 0){ for($i=0;$itable('uf_xx_coal_washery')->where('area_id',$area[$i]->ID)->where('is_delete',0)->pluck('id'); $result[$i]['value'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', today())->where('is_delete',0)->count(); $result[$i]['name'] = $area[$i]->title; } } return self::successResponse($result); } //地图数据 public function mapDataV2(Request $request){ $coal_washery = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery')->where('is_delete',0)->get(); $coal_list = [ '灵新洗煤厂'=>'linxing', '红柳洗煤厂'=>'hongliu', '枣泉洗煤厂'=>'zaoquan', // '大武口洗煤厂'=>'dawukou', '金凤洗煤厂'=>'jinfeng', '金能洗煤厂'=>'jinneng', '检修一车间'=>'jianxiuyichejian', '检修二车间'=>'jianxiuerchejian', // '检修三车间'=>'jianxiusanchejian', // '太西洗煤厂'=>'taixi', '清水营洗煤厂'=>'qingshuiying', '梅花井洗煤厂'=>'meihuajing', '石槽村洗煤厂'=>'shicaocun', '双马洗煤厂'=>'shuangma', '羊场湾洗煤厂'=>'yangchangwan', '羊二洗煤厂'=>'yanger' ]; $result['other_data'] = []; if(count($coal_washery) > 0){ for($i=0;$ititle, $coal_list)) { $slog = $coal_list[$coal_washery[$i]->title]; $result['map_data'][$slog]['title'] = $coal_washery[$i]->title; $result['map_data'][$slog]['id'] = $coal_washery[$i]->ID; $result['map_data'][$slog]['data'] = [ [ 'name' => '高风险作业', 'value'=> DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',0)->whereDate('create_time', today())->where('is_delete',0)->count() ], [ 'name' => '中风险作业', 'value'=> DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',1)->whereDate('create_time', today())->where('is_delete',0)->count() ], [ 'name' => '低风险作业', 'value'=> DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',2)->whereDate('create_time', today())->where('is_delete',0)->count() ] ]; }else{ array_push($result['other_data'],[ 'title'=> $coal_washery[$i]->title, 'id' => $coal_washery[$i]->ID, 'gao' => DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',0)->whereDate('create_time', today())->where('is_delete',0)->count(), 'zhong'=> DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',1)->whereDate('create_time', today())->where('is_delete',0)->count(), 'di' => DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',2)->whereDate('create_time', today())->where('is_delete',0)->count() ]); } } } return self::successResponse($result); } //时间段作业数 public function timeWorkCountV2(Request $request){ $params = $request->all(); if(isset($params['start_date']) && isset($params['end_date'])){ $start_date = $params['start_date']; $end_date = $params['end_date']; }else{ $start_date = date('Y-m-d', strtotime(date('Y-m-d') . ' -6 day')); $end_date = date('Y-m-d'); } $current_date = $start_date; $i = 0; $result = []; $result['xAxis']['type'] = 'category'; $result['xAxis']['data'] = []; $result['series'] = [ [ 'name' => '高风险作业', 'type' => 'bar', 'stack'=> 'bar_1', 'data' => [], 'itemStyle' => [ 'color' => '#DA0000', 'borderRadius' => [10,10,10,10] ] ], [ 'name' => '中风险作业', 'type' => 'bar', 'stack'=> 'bar_2', 'data' => [], 'itemStyle' => [ 'color' => '#FFBA00', 'borderRadius' => [10,10,10,10] ] ], [ 'name' => '低风险作业', 'type' => 'bar', 'stack'=> 'bar_3', 'data' => [], 'itemStyle' => [ 'color' => '#2BB200', 'borderRadius' => [10,10,10,10] ] ] ]; while ($current_date <= $end_date) { array_push($result['xAxis']['data'],$current_date); array_push($result['series'][0]['data'],DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $current_date)->where('risk_level',0)->where('is_delete',0)->count()); array_push($result['series'][1]['data'],DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $current_date)->where('risk_level',1)->where('is_delete',0)->count()); array_push($result['series'][2]['data'],DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $current_date)->where('risk_level',2)->where('is_delete',0)->count()); $current_date = date('Y-m-d', strtotime($current_date . ' +1 day')); $i++; } return self::successResponse($result); } //时间段片区统计 public function timeAreaTotalV2(Request $request){ $params = $request->all(); if (isset($params['area_id'])) { $area_id = $params['area_id']; }else{ $area_id = DB::connection('mysql_fwe10')->table('uf_xx_area')->where('is_delete',0)->first()->ID; } if(isset($params['start_date']) && isset($params['end_date'])){ $start_date = $params['start_date']; $end_date = $params['end_date']; }else{ $start_date = date('Y-m-d', strtotime(date('Y-m-d') . ' -6 day')); $end_date = date('Y-m-d'); } $coal_washery_id_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery')->where('area_id',$area_id)->where('is_delete',0)->pluck('id'); $result = []; $current_date = $start_date; $i = 0; //当日片区数 $result['data'] = [ [ 'number' => DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', date('Y-m-d'))->where('risk_level',0)->where('is_delete',0)->count(), 'unit' => '项', 'title' => '高风险作业', 'color' => '#DA0000' ], [ 'number' => DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', date('Y-m-d'))->where('risk_level',1)->where('is_delete',0)->count(), 'unit' => '项', 'title' => '中风险作业', 'color' => '#FFBA00' ], [ 'number' => DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', date('Y-m-d'))->where('risk_level',2)->where('is_delete',0)->count(), 'unit' => '项', 'title' => '低风险作业', 'color' => '#2BB200' ] ]; $result['xAxis']['type'] = 'category'; $result['xAxis']['data'] = []; $result['series'] = [ [ 'name' => '高风险作业', 'type' => 'line', 'data' => [], 'itemStyle' => [ 'color' => '#DA0000', 'borderRadius' => [10,10,10,10] ] ], [ 'name' => '中风险作业', 'type' => 'line', 'data' => [], 'itemStyle' => [ 'color' => '#FFBA00', 'borderRadius' => [10,10,10,10] ] ], [ 'name' => '低风险作业', 'type' => 'line', 'data' => [], 'itemStyle' => [ 'color' => '#2BB200', 'borderRadius' => [10,10,10,10] ] ] ]; while ($current_date <= $end_date) { array_push($result['xAxis']['data'],$current_date); array_push($result['series'][0]['data'],DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', $current_date)->where('risk_level',0)->where('is_delete',0)->count()); array_push($result['series'][1]['data'],DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', $current_date)->where('risk_level',1)->where('is_delete',0)->count()); array_push($result['series'][2]['data'],DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', $current_date)->where('risk_level',2)->where('is_delete',0)->count()); $current_date = date('Y-m-d', strtotime($current_date . ' +1 day')); $i++; } return self::successResponse($result); } //洗煤厂统计 public function coalWasheryTotalV2(Request $request){ $params = $request->all(); if(isset($params['area_id'])){ $area = [$params['area_id']]; }else{ $area = DB::connection('mysql_fwe10')->table('uf_xx_area')->where('is_delete',0)->pluck('id'); } $coal_washery = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery')->whereIn('area_id',$area)->where('is_delete',0)->get(); if(count($coal_washery) > 0){ for($i=0;$ititle; $result[$i]['coal_washery_id'] = $coal_washery[$i]->ID; $result[$i]['data'] = [ [ 'label' => '高', 'value' => DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',0)->whereDate('create_time', today())->where('is_delete',0)->count(), 'color' => '#DA0000' ], [ 'label' => '中', 'value' => DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',1)->whereDate('create_time', today())->where('is_delete',0)->count(), 'color' => '#FFBA00' ], [ 'label' => '低', 'value' => DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',2)->whereDate('create_time', today())->where('is_delete',0)->count(), 'color' => '#2BB200' ], ]; } } return self::successResponse($result); } //风险作业列表 public function riskWorkListV2(Request $request){ $params = $request->all(); if(isset($params['type'])){ $type = [$params['type']]; }else{ $type = [0,1,2]; } $list = []; if(isset($params['area_id'])){ $list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery')->where('area_id',$params['area_id'])->where('is_delete',0)->pluck('id'); } if(isset($params['coal_washery_id'])){ $list = [$params['coal_washery_id']]; } $coal_washery_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery')->where('is_delete',0)->get(); if(count($coal_washery_list) > 0){ for($i=0;$ititle; $result['unit_list'][$i]['value'] = $coal_washery_list[$i]->title; } } $risk = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment'); $risk = $risk->select('uf_xx_risk_assignment.*','uf_xx_coal_washery.title as coal_washery'); $risk = $risk->leftJoin('uf_xx_coal_washery','uf_xx_coal_washery.id','=','uf_xx_risk_assignment.coal_washery_id'); if(count($list) > 0){ $risk = $risk->whereIn('coal_washery_id',$list); } $risk = $risk->whereDate('uf_xx_risk_assignment.create_time', today())->where('uf_xx_risk_assignment.is_delete',0); if(isset($params['id'])){ $risk = $risk->where('uf_xx_coal_washery.id',$params['id']); } $risk = $risk->whereIn('risk_level',$type)->orderBy('uf_xx_risk_assignment.risk_level')->get(); $risk_level = ['高风险','中风险','低风险']; $risk_type = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息']; $result['data'] = []; if(count($risk) > 0){ for($i=0;$iID; $result['data'][$i]['unit_name'] = $risk[$i]->coal_washery; $result['data'][$i]['place'] = $risk[$i]->risk_location; $result['data'][$i]['content'] = $risk[$i]->risk_name; $result['data'][$i]['work_people'] = $risk[$i]->work_people; $result['data'][$i]['work_num'] = $risk[$i]->work_num; $result['data'][$i]['risk_level'] = $risk_level[$risk[$i]->risk_level]; if($risk[$i]->risk_type != null){ $result['data'][$i]['risk_type'] = $risk_type[$risk[$i]->risk_type]; }else{ $result['data'][$i]['risk_type'] = '无'; } $result['data'][$i]['coal_washery'] = $risk[$i]->coal_washery; } } return self::successResponse($result); } //风险作业详情 public function riskWorkDetailV2(Request $request){ $params = $request->all(); if (!isset($params['id'])) { return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY); } $result['camera'] = []; $result['move_camera'] = []; $result['zhifa_camera'] = []; $risk_type = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息']; $risk_level = ['高风险','中风险','低风险']; $classes = ['早班','中班','夜班']; $risk = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment') ->select('uf_xx_risk_assignment.*','uf_xx_coal_washery.title as coal_washery') ->leftJoin('uf_xx_coal_washery','uf_xx_coal_washery.id','=','uf_xx_risk_assignment.coal_washery_id') ->where('uf_xx_risk_assignment.id',$params['id'])->where('uf_xx_risk_assignment.is_delete',0)->get(); if(count($risk) > 0){ $camera_info = explode(',',$risk[0]->camera); if($camera_info[0] != ''){ for($i=0;$iwhere('id',$matches[2])->pluck('mine_id')[0]; } } } $move_camera_info = explode(',',$risk[0]->move_camera); if($move_camera_info[0] != ''){ for($i=0;$izhifa_camera); if($zhifa_camera_info[0] != ''){ for($i=0;$itable('uf_xx_zhifa')->where('is_delete',0)->get(); if(count($zhifa_people_list) > 0){ for($i=0;$iwork_people, $zhifa_people_list[$i]->xm); if ($pos !== false) { $camera = DB::table('camera_list')->where('camera_name',$zhifa_people_list[$i]->camera_name)->where('deleted_at',null)->get(); if(count($camera) > 0){ if($zhifa_people_list[$i]->color === null){ $zhifa_people_list[$i]->color = 4; } array_push($result['zhifa_camera'],[ 'camera_name'=> $zhifa_people_list[$i]->camera_name, 'camera_id' => $camera[0]->id, 'parent_id' => 6561, 'color' => $zhifa_people_list[$i]->color ]); } } } } //去掉数组重复部分 $unique_cameras = []; foreach ($result['zhifa_camera'] as $camera) { $unique_cameras[$camera['camera_id']] = $camera; } $result['zhifa_camera'] = array_values($unique_cameras); if($risk[0]->risk_type != '' && $risk[0]->risk_type !=null){ $risk_type_value = $risk_type[$risk[0]->risk_type]; }else{ $risk_type_value = '无'; } $result['detail'] = [ [ 'label' => '所属单位:', 'value' => $risk[0]->unit ], [ 'label' => '区队名称:', 'value' => $risk[0]->coal_washery ], [ 'label' => '班次:', 'value' => $classes[$risk[0]->classes] ], [ 'label' => '作业人数:', 'value' => $risk[0]->work_num ], [ 'label' => '风险等级:', 'value' => $risk_level[$risk[0]->risk_level] ], [ 'label' => '风险类型:', 'value' => $risk_type_value ], [ 'label' => '作业内容:', 'value' => $risk[0]->risk_name ], [ 'label' => '作业地点:', 'value' => $risk[0]->risk_location ], [ 'label' => '现场负责人:', 'value' => $risk[0]->work_people ], [ 'label' => '进展情况:', 'value' => $risk[0]->risk_describe ] ]; } return self::successResponse($result); } //首頁信息 public function taskHomeV2(Request $request){ $risk_type = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息']; $risk_level = ['高风险','中风险','低风险']; //高风险作业 $gaofengxian = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment') ->select('uf_xx_risk_assignment.*','uf_xx_coal_washery.name as coal_washery') ->leftJoin('uf_xx_coal_washery','uf_xx_coal_washery.id','=','uf_xx_risk_assignment.coal_washery_id') ->whereDate('uf_xx_risk_assignment.create_time', today()) ->where('risk_level',0)->where('uf_xx_risk_assignment.is_delete',0)->get(); if(count($gaofengxian) > 0){ for($i=0;$irisk_type == ''){ $gaofengxian[$i]->risk_type_name = '无'; }else{ $gaofengxian[$i]->risk_type_name = $risk_type[$gaofengxian[$i]->risk_type]; } $camera_info = explode(',',$gaofengxian[$i]->camera); $gaofengxian[$i]->camera_type = '普通摄像头'; $gaofengxian[$i]->risk_level_name = $risk_level[$gaofengxian[$i]->risk_level]; } } $result['gao_count'] = count($gaofengxian); $result['gao'] = $gaofengxian; //中风险作业 $zhongfengxian = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment') ->select('uf_xx_risk_assignment.*','uf_xx_coal_washery.name as coal_washery') ->leftJoin('uf_xx_coal_washery','uf_xx_coal_washery.id','=','uf_xx_risk_assignment.coal_washery_id') ->whereDate('uf_xx_risk_assignment.create_time', today()) ->where('risk_level',1)->where('uf_xx_risk_assignment.is_delete',0)->get(); if(count($zhongfengxian) > 0){ for($i=0;$irisk_type == ''){ $zhongfengxian[$i]->risk_type_name = '无'; }else{ $zhongfengxian[$i]->risk_type_name = $risk_type[$zhongfengxian[$i]->risk_type]; } $camera_info = explode(',',$zhongfengxian[$i]->camera); $zhongfengxian[$i]->camera_type = '普通摄像头'; $zhongfengxian[$i]->risk_level_name = $risk_level[$zhongfengxian[$i]->risk_level]; } } $result['zhong_count'] = count($zhongfengxian); $result['zhong'] = $zhongfengxian; //低风险作业 $difengxian = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment') ->select('uf_xx_risk_assignment.*','uf_xx_coal_washery.name as coal_washery') ->leftJoin('uf_xx_coal_washery','uf_xx_coal_washery.id','=','uf_xx_risk_assignment.coal_washery_id') ->whereDate('uf_xx_risk_assignment.create_time', today()) ->where('risk_level',2)->where('uf_xx_risk_assignment.is_delete',0)->get(); if(count($difengxian) > 0){ for($i=0;$irisk_type == ''){ $difengxian[$i]->risk_type_name = '无'; }else{ $difengxian[$i]->risk_type_name = $risk_type[$difengxian[$i]->risk_type]; } $camera_info = explode(',',$difengxian[$i]->camera); $difengxian[$i]->camera_type = '普通摄像头'; $difengxian[$i]->risk_level_name = $risk_level[$difengxian[$i]->risk_level]; } } $result['di_count'] = count($difengxian); $result['di'] = $difengxian; //片区作业数 $area = DB::connection('mysql_fwe10')->table('uf_xx_area')->get(); $result['area_count'] = []; if(count($area) > 0){ for($i=0;$ititle; $coal_washery_id_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery')->where('area_id',$area[$i]->ID)->pluck('id'); $result['area_count'][$i]['count'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', today())->where('is_delete',0)->count(); } } //洗煤厂作业 $coal_washery = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery')->where('is_delete',0)->get(); $result['coal_washery_work_count'] = []; if(count($coal_washery) > 0){ for($i=0;$ititle; $result['coal_washery_work_count'][$i]['gao'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',0)->whereDate('create_time', today())->where('is_delete',0)->count(); $result['coal_washery_work_count'][$i]['zhong'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',1)->whereDate('create_time', today())->where('is_delete',0)->count(); $result['coal_washery_work_count'][$i]['di'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('coal_washery_id',$coal_washery[$i]->ID)->where('risk_level',2)->whereDate('create_time', today())->where('is_delete',0)->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('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $day)->where('risk_level',0)->where('is_delete',0)->count(); $result['seven_work_count'][$i]['zhong'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $day)->where('risk_level',1)->where('is_delete',0)->count(); $result['seven_work_count'][$i]['di'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $day)->where('risk_level',2)->where('is_delete',0)->count(); } //7天片区作业数 $result['seven_area_work_count'] = []; if(count($area) > 0){ for($i=0;$ititle; $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('mysql_fwe10')->table('uf_xx_coal_washery')->where('area_id',$area[$i]->ID)->where('is_delete',0)->pluck('id'); $result['seven_area_work_count'][$i]['work'][$j]['gao'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', $day)->where('risk_level',0)->where('is_delete',0)->count(); $result['seven_area_work_count'][$i]['work'][$j]['zhong'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', $day)->where('risk_level',1)->where('is_delete',0)->count(); $result['seven_area_work_count'][$i]['work'][$j]['di'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', $day)->where('risk_level',2)->where('is_delete',0)->count(); } } } return self::successResponse($result); } //首页作业查询 public function workSearchV2(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('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $current_date)->where('risk_level',0)->where('is_delete',0)->count(); $result[$i]['zhong'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $current_date)->where('risk_level',1)->where('is_delete',0)->count(); $result[$i]['di'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $current_date)->where('risk_level',2)->where('is_delete',0)->count(); $current_date = date('Y-m-d', strtotime($current_date . ' +1 day')); $i++; } return self::successResponse($result); } //首页片区作业查询 public function areaWorkSearchV2(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('mysql_fwe10')->table('uf_xx_coal_washery')->where('area_id',$params['area_id'])->where('is_delete',0)->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('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', $current_date)->where('risk_level',0)->where('is_delete',0)->count(); $result[$i]['zhong'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', $current_date)->where('risk_level',1)->where('is_delete',0)->count(); $result[$i]['di'] = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereIn('coal_washery_id',$coal_washery_id_list)->whereDate('create_time', $current_date)->where('risk_level',2)->where('is_delete',0)->count(); $current_date = date('Y-m-d', strtotime($current_date . ' +1 day')); $i++; } return self::successResponse($result); } //导出总表 public function export1(Request $request){ $params = $request->all(); $date = $request->query('date', date('Y-m-d')); $coal_washery_id = $request->query('coal_washery_id'); $area_id = $request->query('area_id'); $classes = ['早班','中班','夜班']; $risk_desc = ['高风险','中风险','低风险']; $risk_describe_dict = [0=>"设备日常护理", 1=>"停产检修", 2=>"大中修", 3=>"计划性检修", 4=>"委外施工"]; // 风险类型 $risk_type = DB::connection('mysql_fwe10')->table('field_option')->where('field_id', '1055270106096394246')->get(); $risk_type_dict = []; foreach ($risk_type as $key=>$value) { $risk_type_key = $value->value_key; $risk_type_name = $value->NAME; $risk_type_dict[$risk_type_key] = $risk_type_name; } // 风险数据 $risk_list = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->whereDate('create_time', $date)->where('is_delete',0)->get(); // 洗煤厂数据 $coal_washery_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery as t')->where('t.is_delete',0); if (!empty($coal_washery_id)) $coal_washery_list->where('t.id', $coal_washery_id); // 筛选洗煤厂 // 筛选片区 if (!empty($area_id)) { $coal_washery_list->leftJoin('uf_xx_area as t1','t1.id','=','t.area_id') ->where('t1.id', $area_id); } $coal_washery_list = $coal_washery_list->select('t.*')->orderBy('t.sort')->get(); $coal_washery_dict = []; $coal_washery_type_dict = []; foreach ($coal_washery_list as $key=>$value) { $coal_washery_dict[$value->ID] = $value; $coal_washery_type_dict[$value->ID] = $value->obj_type; } $res = [ "num" => 0, "gao" => 0, "zhong" => 0, "di" => 0, "ziying" => 0, "waiwei" => 0, "risk_info" => "", "ziying_list" => [], "waiwei_list" => [], "table_list" => [], ]; $risk_zhong_con = []; $risk_gao_con = []; $coal_washery_risk_list = []; $coal_washery_risk_waiwei = []; $coal_washery_risk_ziying = []; foreach ($risk_list as $key=>$value) { // 风险数量统计 $risk_level = $value->risk_level; $risk_type = $risk_type_dict[$value->risk_type] ?? 2; if($risk_level == 0) { $res['gao']++; if (!isset($risk_gao_con[$risk_type])) { $risk_gao_con[$risk_type] = 1; } else { $risk_gao_con[$risk_type] ++; }; } else if($risk_level == 1) { $res['zhong']++; if (!isset($risk_zhong_con[$risk_type])) { $risk_zhong_con[$risk_type] = 1; } else { $risk_zhong_con[$risk_type] ++; }; } else { $res['di']++; } // 洗煤厂类型统计(委外、自营) $col_washery_id = $value->coal_washery_id; $col_washery_type = $coal_washery_dict[$col_washery_id]->obj_type ?? "<请检查洗煤厂是否已被删除!>"; if($col_washery_type == 0) { $res['ziying']++; } else if ($col_washery_type == 1) { $res['waiwei']++; } // 煤矿风险列表 $coal_washery_risk_list[$col_washery_id][] = $value; } $res['num'] = count($risk_list); $coal_list = []; $index = 0; $index_ziying = 0; $index_waiwei = 0; foreach ($coal_washery_dict as $key => $value) { $id = $value->ID; if (isset($coal_washery_risk_list[$id])) { $index++; $people = 0;//计划人数 $gao = 0; $zhong = 0; $di = 0; $content = '';//工作内容 $place = '';//作业地点 $leader = '';//负责人 $reviewer = [];//审核人 $coal_washery_risk_info_arr = $coal_washery_risk_list[$id]; $risk_index = 0; foreach ($coal_washery_risk_info_arr as $k => $v) { $people += $v->work_num; $risk_info = ''; if ($v->risk_level == 0) { $gao++; $risk_info = '('.$risk_desc[$v->risk_level].':'.$risk_type_dict[$v->risk_type].');'; } else if ($v->risk_level == 1) { $zhong++; $risk_info = '('.$risk_desc[$v->risk_level].':'.$risk_type_dict[$v->risk_type].');'; } else { $di++; } $content .= ++$risk_index.".".$v->risk_name.$risk_info.";"; $place .= $risk_index.".".$v->risk_location; $leader .= $risk_index.".".$v->work_people; if (isset($v->shr) && !empty($v->shr)) { $reviewer[] = $v->shr; } $reviewer = array_unique($reviewer); } $level_total = ''; if ($gao > 0) $level_total .= '高风险'.$gao.'项 '; if ($zhong > 0) $level_total .= '中风险'.$zhong.'项 '; if ($di > 0) $level_total .= '低风险'.$di.'项 '; $line = [ 'index' => $index, 'unit' => $v->unit, 'coal_washery' => $value->title, 'classes' => $classes[$v->classes], 'work_num' => $people, 'level' => $level_total, 'content' => $content, 'place' => $place, 'leader' => $leader, 'risk_dexcribe' => $risk_describe_dict[$v->risk_describe], 'reviewer' => implode(',', $reviewer), 'id' => $value->ID, ]; // $coal_list[] = $line; // 自营、外委 if (isset($coal_washery_type_dict[$id])) { $coal_washery_type = $coal_washery_type_dict[$id]; if ($coal_washery_type == 0) { $line['index'] = ++ $index_ziying; $res["ziying_list"][] = $line; } else { $line['index'] = ++ $index_waiwei; $res["waiwei_list"][] = $line; } } } } // $res['table_list'] = $coal_list; if ($res['gao'] > 0) { $risk_gao_info = '(其中:'; foreach ($risk_gao_con as $key => $value) { $risk_gao_info .= $key.$value.'项,'; } $risk_gao_info = substr($risk_gao_info, 0, -3); $risk_gao_info .= ');'; } else { $risk_gao_info = ";"; } if ($res['zhong'] > 0) { $risk_zhong_info = '(其中:'; foreach ($risk_zhong_con as $key => $value) { $risk_zhong_info .= $key.$value.'项,'; } $risk_zhong_info = substr($risk_zhong_info, 0, -3); $risk_zhong_info .= ');'; } else { $risk_zhong_info = ";"; } $res['risk_info'] = "总作业项:".$res['num']."项;高风险:".$res['gao']."项".$risk_gao_info."中风险:".$res['zhong']."项".$risk_zhong_info."低风险:".$res['di']."项。"; return $res; } //导出分类表 public function export2Type(Request $request){ $params = $request->all(); $result['type_list'] = []; $index = 0; $type_list = ['高空坠落','起重伤害','触电','火灾','机械伤害','中毒和窒息']; if(isset($params['date'])){ $date = $params['date']; }else{ $date = date('Y-m-d'); } $coal_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery') ->select('uf_xx_coal_washery.*','uf_xx_area.title as area_title') ->leftJoin('uf_xx_area','uf_xx_area.id','=','uf_xx_coal_washery.area_id') ->where('uf_xx_coal_washery.is_delete',0)->orderBy('uf_xx_area.create_time')->orderBy('uf_xx_coal_washery.sort')->get(); for($i=0;$itable('uf_xx_risk_assignment')->where('risk_level',0)->whereDate('create_time', $date)->where('IS_DELETE', 0)->where('coal_washery_id',$coal_list[$j]->ID)->where('risk_type',$i)->orderBy('create_time')->get(); $risk_zhong_list = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('risk_level',1)->whereDate('create_time', $date)->where('IS_DELETE', 0)->where('coal_washery_id',$coal_list[$j]->ID)->where('risk_type',$i)->orderBy('create_time')->get(); if(count($risk_gao_list) > 0){ $risk_level = '高风险'.count($risk_gao_list).'项,'; } if(count($risk_zhong_list) > 0){ $risk_level = $risk_level . '中风险'.count($risk_zhong_list).'项'; } $risk_level = rtrim($risk_level, ","); if(count($risk_gao_list) > 0){ for($x=0;$x$index, 'risk_type'=>$type_list[$i], 'risk_level'=>$risk_level, 'unit'=>$coal_list[$j]->title, 'content'=>$risk_gao_list[$x]->risk_name, 'people_count'=>$risk_gao_list[$x]->work_num, 'work_location'=>$risk_gao_list[$x]->risk_location, 'leader'=>$risk_gao_list[$x]->work_people ]); } } if(count($risk_zhong_list) > 0){ for($x=0;$x$coal_list[$j]->area_title, 'index'=>$index, 'risk_type'=>$type_list[$i], 'risk_level'=>$risk_level, 'unit'=>$coal_list[$j]->title, 'content'=>$risk_zhong_list[$x]->risk_name, 'people_count'=>$risk_zhong_list[$x]->work_num, 'work_location'=>$risk_zhong_list[$x]->risk_location, 'leader'=>$risk_zhong_list[$x]->work_people ]); } } } } return $result; } //导出摄像头表 public function export2Camera(Request $request){ $params = $request->all(); $result['camera_list'] = []; $index = 0; if(isset($params['date'])){ $date = $params['date']; }else{ $date = date('Y-m-d'); } $coal_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery') ->select('uf_xx_coal_washery.*','uf_xx_area.title as area_title') ->leftJoin('uf_xx_area','uf_xx_area.id','=','uf_xx_coal_washery.area_id') ->where('uf_xx_coal_washery.is_delete',0)->orderBy('uf_xx_area.create_time')->orderBy('uf_xx_coal_washery.sort')->get(); $risk_list = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment')->where('risk_level',2)->whereDate('create_time', $date)->where('IS_DELETE', 0)->where('move_camera','!=',null)->orderBy('create_time')->get(); $risk_dict = []; foreach ($risk_list as $key => $value) { $risk_dict[$value->coal_washery_id][] = $value; } foreach ($coal_list as $key => $value) { try { if(isset($risk_dict[$value->ID]) && !empty($risk_dict[$value->ID])) { $risk = $risk_dict[$value->ID]; foreach ($risk as $k => $v) { $index++; $result['camera_list'][] = [ 'area'=>$value->area_title, 'unit'=>$value->title, 'index'=>$index, 'people_num'=>$v->work_num, 'content'=>$v->risk_name, 'work_location'=>$v->risk_location, 'leader'=>$v->work_people, ]; } } } catch (Exception $e) { echo $e->getMessage(); } } return $result; } //导出完成情况表统计 public function export3Total(Request $request){ $params = $request->all(); $result = ''; if(isset($params['date'])){ $date = $params['date']; }else{ $date = date('Y-m-d'); } $risk_data = DB::connection('mysql_fwe10')->table('uf_xx_risk_assignment') ->select('uf_xx_risk_assignment.*','uf_xx_area.title') ->leftJoin('uf_xx_coal_washery', 'uf_xx_risk_assignment.coal_washery_id', '=', 'uf_xx_coal_washery.id') ->leftJoin('uf_xx_area', 'uf_xx_coal_washery.area_id', '=', 'uf_xx_area.id') ->whereDate('uf_xx_risk_assignment.create_time', $date) ->where('uf_xx_risk_assignment.is_delete',0) ->where('uf_xx_risk_assignment.wcqk',0) ->get(); $level_arr = [ 'gao'=>[ 'title'=>'高', 'con'=>0, 'nd'=>0, 'tx'=>0 ], 'zhong'=>[ 'title'=>'中', 'con'=>0, 'nd'=>0, 'tx'=>0 ], 'di'=>[ 'title'=>'低', 'con'=>0, 'nd'=>0, 'tx'=>0 ] ]; foreach ($risk_data as $key => $value) { $risk_level = $value->risk_level; if ($risk_level == 0) { ++$level_arr['gao']['con']; if ($value->title == '宁东片区') { ++$level_arr['gao']['nd']; } else if ($value->title == '太西片区') { ++$level_arr['gao']['tx']; } } else if ($risk_level == 1) { ++$level_arr['zhong']['con']; if ($value->title == '宁东片区') { ++$level_arr['zhong']['nd']; } else if ($value->title == '太西片区') { ++$level_arr['zhong']['tx']; } } else { ++$level_arr['di']['con']; if ($value->title == '宁东片区') { ++$level_arr['di']['nd']; } else if ($value->title == '太西片区') { ++$level_arr['di']['tx']; } } } foreach ($level_arr as $key => $value) { // 不需要低风险 if ($key == 'di') continue; $con = $value['con']; $con_nd = $value['nd']; $con_tx = $value['tx']; $title = $value['title']; if ($con > 0) { $result .= $title.'风险' . $con . '项'; $str = ''; if($con_nd > 0){ $str = $str.'宁东'.$con_nd.'项,'; } if($con_tx > 0){ $str = $str.'太西'.$con_tx.'项,'; } $str = rtrim($str, ","); $result = $result . '('.$str.')、'; } } $result = rtrim($result, "、"); $data['describe'] = $result; return $data; } //导出完成情况表自营列表 public function export3ListZiying(Request $request){ $params = $request->all(); $result['ziying_list'] = []; if(isset($params['date'])){ $date = $params['date']; }else{ $date = date('Y-m-d'); } $coal_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery')->where('is_delete',0)->where('obj_type',0)->orderBy('sort')->get(); if(count($coal_list) > 0){ for($i=0;$itable('uf_xx_risk_assignment')->whereDate('create_time', $date)->where('IS_DELETE', 0)->where('coal_washery_id',$coal_list[$i]->ID)->where('wcqk',0)->orderBy('create_time')->get(); if(count($risk_list) > 0){ $gao = 0; $zhong = 0; $di = 0; for($j=0;$jrisk_level == 0){ $gao = $gao + 1; } if($risk_list[$j]->risk_level == 1){ $zhong = $zhong + 1; } // if($risk_list[$j]->risk_level == 2){ // $di = $di + 1; // } } if($gao > 0){ for($j=0;$jrisk_level == 0){ array_push($result['ziying_list'],[ 'unit' => $coal_list[$i]->title, 'risk_level' => '高风险'.$gao.'项', 'content' => $risk_list[$j]->risk_name, 'reason' => '按计划施工', 'people' => $risk_list[$j]->work_people ]); } } } if($zhong > 0){ for($j=0;$jrisk_level == 1){ array_push($result['ziying_list'],[ 'unit' => $coal_list[$i]->title, 'risk_level' => '中风险'.$zhong.'项', 'content' => $risk_list[$j]->risk_name, 'reason' => '按计划施工', 'people' => $risk_list[$j]->work_people ]); } } } // if($di > 0){ // for($j=0;$jrisk_level == 2){ // array_push($result['ziying_list'],[ // 'unit' => $coal_list[$i]->title, // 'risk_level' => '低风险'.$di.'项', // 'content' => $risk_list[$j]->risk_name, // 'reason' => '按计划施工', // 'people' => $risk_list[$j]->work_people // ]); // } // } // } } } } return $result; } //导出完成情况表委外列表 public function export3ListWeiwai(Request $request){ $params = $request->all(); $result['weiwai_list'] = []; if(isset($params['date'])){ $date = $params['date']; }else{ $date = date('Y-m-d'); } $coal_list = DB::connection('mysql_fwe10')->table('uf_xx_coal_washery')->where('is_delete',0)->where('obj_type',1)->orderBy('sort')->get(); if(count($coal_list) > 0){ for($i=0;$itable('uf_xx_risk_assignment')->whereDate('create_time', $date)->where('IS_DELETE', 0)->where('coal_washery_id',$coal_list[$i]->ID)->where('wcqk',0)->orderBy('create_time')->get(); if(count($risk_list) > 0){ $gao = 0; $zhong = 0; $di = 0; for($j=0;$jrisk_level == 0){ $gao = $gao + 1; } if($risk_list[$j]->risk_level == 1){ $zhong = $zhong + 1; } // if($risk_list[$j]->risk_level == 2){ // $di = $di + 1; // } } if($gao > 0){ for($j=0;$jrisk_level == 0){ array_push($result['weiwai_list'],[ 'unit' => $coal_list[$i]->title, 'risk_level' => '高风险'.$gao.'项', 'content' => $risk_list[$j]->risk_name, 'reason' => '按计划施工', 'people' => $risk_list[$j]->work_people ]); } } } if($zhong > 0){ for($j=0;$jrisk_level == 1){ array_push($result['weiwai_list'],[ 'unit' => $coal_list[$i]->title, 'risk_level' => '中风险'.$zhong.'项', 'content' => $risk_list[$j]->risk_name, 'reason' => '按计划施工', 'people' => $risk_list[$j]->work_people ]); } } } // if($di > 0){ // for($j=0;$jrisk_level == 2){ // array_push($result['weiwai_list'],[ // 'unit' => $coal_list[$i]->title, // 'risk_level' => '低风险'.$di.'项', // 'content' => $risk_list[$j]->risk_name, // 'reason' => '按计划施工', // 'people' => $risk_list[$j]->work_people // ]); // } // } // } } } } return $result; } //图片上传 public function uploadImg(Request $request){ $file = $request->file('file'); $file_name = CameraServices::uploadFile($file); $file_path = public_path() . '/filedownload/'; $res = CameraServices::uploadOssFile($file_name, $file_path); CameraServices::delUploadFile(); $result['image_path'] = $res; return $this->success($result); } }