Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

qr 3 mēneši atpakaļ
vecāks
revīzija
11469909b2

+ 11 - 0
.idea/phpunit.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="PHPUnit">
+    <option name="directories">
+      <list>
+        <option value="$PROJECT_DIR$/tests/Unit" />
+        <option value="$PROJECT_DIR$/tests/Feature" />
+      </list>
+    </option>
+  </component>
+</project>

+ 11 - 2
.idea/video_system.iml

@@ -1,11 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module type="WEB_MODULE" version="4">
-  <component name="NewModuleRootManager">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
       <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
       <sourceFolder url="file://$MODULE_DIR$/Modules" isTestSource="false" packagePrefix="Modules\" />
-      <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/Modules/Admin/" isTestSource="false" packagePrefix="Modules\Admin\" />
+      <sourceFolder url="file://$MODULE_DIR$/Modules/Camera/" isTestSource="false" packagePrefix="Modules\Camera\" />
+      <sourceFolder url="file://$MODULE_DIR$/Modules/Email/" isTestSource="false" packagePrefix="Modules\Email\" />
+      <sourceFolder url="file://$MODULE_DIR$/Modules/Log/" isTestSource="false" packagePrefix="Modules\Log\" />
+      <sourceFolder url="file://$MODULE_DIR$/Modules/Mine/" isTestSource="false" packagePrefix="Modules\Mine\" />
+      <sourceFolder url="file://$MODULE_DIR$/Modules/OpcData/" isTestSource="false" packagePrefix="Modules\OpcData\" />
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="AlibabaCloud\SDK\Sample\" />
+      <sourceFolder url="file://$MODULE_DIR$/tests/Feature" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/tests/Unit" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/aliyuncs/oss-sdk-php" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/box/spout" />
       <excludeFolder url="file://$MODULE_DIR$/vendor/defuse/php-encryption" />

+ 295 - 0
Modules/Admin/Http/Controllers/Api/ApiController.php

@@ -12,6 +12,7 @@ use App\Enum\ApiEnum;
 use App\Http\Controllers\Api\BaseController;
 use App\Http\Controllers\Controller;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Input;
 use Modules\Admin\Entities\User;
 use Modules\Admin\Http\Requests\TokenRequest;
@@ -21,6 +22,28 @@ use Symfony\Component\HttpFoundation\Response;
 
 class ApiController extends BaseController
 {
+    //整改人列表
+    public function zgrList(Request $request){
+        $params = $request->all();
+        if(!$params['xjdw']){
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $list = DB::connection('mysql_fwe10')->table('uf_zhxx_qlczgry')->where('dwmc',$params['xjdw'])->get();
+
+        if(count($list) > 0){
+            for($i=0;$i<count($list);$i++){
+                $result['data'][$i] = $list[$i]->zgrxm.'|'.$list[$i]->zgrgh;
+            }
+        }
+
+        return $result;
+    }
+
     //网格化录入
     public function addConition(Request $request)
     {
@@ -32,6 +55,16 @@ class ApiController extends BaseController
         return self::successResponse($result);
     }
 
+    //网格化整改
+    public function editConition(Request $request){
+        $params = Input::get();
+        if (!$params) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+        $result = ApiService::editConition($params);
+        return self::successResponse($result);
+    }
+
     //网格化人员轨迹查询条件
     public function getQueryConition(Request $request)
     {
@@ -122,4 +155,266 @@ class ApiController extends BaseController
         $result = ApiService::getFinalList($start_date, $end_date, $depart, $person);
         return self::successResponse($result);
     }
+
+    //设备管理添加设备单位列表
+    public function sbglUnitList(){
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data'] = [];
+
+        $unit_list = DB::connection('mysql_fwe10')->table('uf_zhxx_sbgl_qygl')->where('is_delete',0)->get();
+
+        foreach($unit_list as $k => $v){
+            $result['data'][] = [
+                'id'   => $v->ID,
+                'qymc' => $v->qymc
+            ];
+        }
+
+        return self::successResponse($result);
+    }
+
+    //设备管理添加设备负责人列表
+    public function sbglPeopleList(){
+        $unit_id = Input::get('unit_id', '');
+        $type = Input::get('type', '');
+
+        if (!$unit_id) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        if($type == ''){
+            $type = 0;
+        }
+
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data'] = [];
+
+        if($type == 0){//新设备负责人
+            $name = 'xsbfzr';
+        }elseif($type == 2){//待修负责人
+            $name = 'dxfzr';
+        }elseif($type == 3){//检修负责人
+            $name = 'jxfzr';
+        }elseif($type == 4){//待报废负责人
+            $name = 'dbffzr';
+        }elseif($type == 5){//报废负责人
+            $name = 'bffzr';
+        }
+
+        $people_list = DB::connection('mysql_fwe10')->table('uf_zhxx_sbgl_rygl')->where('ssdw',$unit_id)->where($name,0)->where('is_delete',0)->get();
+
+        foreach($people_list as $k => $v){
+            $result['data'][] = [
+                'id'   => $v->ID,
+                'xm' => $v->xm
+            ];
+        }
+
+        return self::successResponse($result);
+    }
+
+    //设备管理添加新设备
+    public function sbglAdd(Request $request){
+        $params = Input::get();
+        if (!$params) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $id = mt_rand(pow(10, 18), pow(10, 18) + 999999999);
+        $insert = [
+            'ID' => $id,
+            'FORM_DATA_ID' => $id,
+            'DATA_INDEX' => 0.0,
+            'CREATE_TIME' => date('Y-m-d H:i:s'),
+            'TENANT_KEY' => 't1zz9w8165',
+            'IS_DELETE' => 0,
+            'DELETE_TYPE' => 0,
+            'FT_STATUS' => 0,
+
+            'ssdw' => $params['qymc'],
+            'xsbdhfzr' => $params['xsbdhfzr'],
+            'sbmc' => $params['sbmc'],
+            'sbzp' => $params['sbzp'],
+            'rhzq' => $params['rhzq'],
+            'sbbh' => $params['sbbh'],
+            'ggxh' => $params['ggxh'],
+            'jscs' => $params['jscs'],
+            'sccj' => $params['sccj'],
+            'ccrq' => $params['ccrq'],
+            'dhrq' => $params['dhrq'],
+            'azrq' => $params['azrq'],
+            'syrq' => $params['syrq'],
+            'zyfssb' => $params['zyfssb'],
+            'ptjsj' => $params['ptjsj'],
+            'ylohq' => $params['ylohq'],
+            'ptqt' => $params['ptqt'],
+            'zypj' => $params['zypj'],
+            'bz' => $params['bz'],
+            'sbzt' => 0,
+            'sylx' => 4
+        ];
+
+        DB::connection('mysql_fwe10')->table('uf_uf_zhxx_sbgl')->insert($insert);
+
+        return self::successResponse($result);
+    }
+
+    //设备管理设备详情
+    public function sbglDetail(){
+        $params = Input::get();
+        if (!$params) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $data = DB::connection('mysql_fwe10')->table('uf_uf_zhxx_sbgl as sbgl')
+            ->select('sbgl.*','qygl.qymc')
+            ->leftJoin('uf_zhxx_sbgl_qygl as qygl','qygl.id','=','sbgl.ssdw')
+            ->where('sbgl.ID',$params['id'])->get();
+
+        // $sbzt = ['新设备到货验收中','完好','待修','检修中','待报废','已报废'];
+        // $sylx = ['在用','备用','拆除','检修','闲置'];
+        // $bflx = ['委外设备废品废件','废品','固定资产报废设备','代物资公司保管报废设备'];
+
+        foreach($data as $k=>$v){
+            $v->xsbfzr_list = [];
+            $v->dxfzr_list = [];
+            $v->jxfzr_list = [];
+            $v->dbffzr_list = [];
+            $v->bffzr_list = [];
+
+            if($v->sbzt == 0){//新设备负责人
+                $people_list = DB::connection('mysql_fwe10')->table('uf_zhxx_sbgl_rygl')->where('ssdw',$v->ssdw)->where('xsbfzr',0)->where('is_delete',0)->get();
+                foreach($people_list as $key => $val){
+                    $v->xsbfzr_list[] = [
+                        'id'   => $val->ID,
+                        'xm' => $val->xm
+                    ];
+                }
+            }elseif($v->sbzt == 2){//待修负责人
+                $people_list = DB::connection('mysql_fwe10')->table('uf_zhxx_sbgl_rygl')->where('ssdw',$v->ssdw)->where('dxfzr',0)->where('is_delete',0)->get();
+                foreach($people_list as $key => $val){
+                    $v->dxfzr_list[] = [
+                        'id'   => $val->ID,
+                        'xm' => $val->xm
+                    ];
+                }
+            }elseif($v->sbzt == 3){//检修负责人
+                $people_list = DB::connection('mysql_fwe10')->table('uf_zhxx_sbgl_rygl')->where('ssdw',$v->ssdw)->where('jxfzr',0)->where('is_delete',0)->get();
+                foreach($people_list as $key => $val){
+                    $v->jxfzr_list[] = [
+                        'id'   => $val->ID,
+                        'xm' => $val->xm
+                    ];
+                }
+            }elseif($v->sbzt == 4){//待报废负责人
+                $people_list = DB::connection('mysql_fwe10')->table('uf_zhxx_sbgl_rygl')->where('ssdw',$v->ssdw)->where('dbffzr',0)->where('is_delete',0)->get();
+                foreach($people_list as $key => $val){
+                    $v->dbffzr_list[] = [
+                        'id'   => $val->ID,
+                        'xm' => $val->xm
+                    ];
+                }
+            }elseif($v->sbzt == 5){//报废负责人
+                $people_list = DB::connection('mysql_fwe10')->table('uf_zhxx_sbgl_rygl')->where('ssdw',$v->ssdw)->where('bffzr',0)->where('is_delete',0)->get();
+                foreach($people_list as $key => $val){
+                    $v->bffzr_list[] = [
+                        'id'   => $val->ID,
+                        'xm' => $val->xm
+                    ];
+                }
+            }
+
+            if($v->rhzq != null){
+                $v->rhzq = $v->rhzq.'个月';
+            }
+        }
+
+        $result['data'] = $data;
+
+        return self::successResponse($result);
+    }
+
+    //设备管理润滑管理
+    public function sbglRhList(){
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data'] = [];
+
+        $current = time();// 获取当前时间戳
+
+        $list = DB::connection('mysql_fwe10')->table('uf_uf_zhxx_sbgl as sbgl')
+            ->select('sbgl.ID','sbgl.create_time','sbgl.sbmc','sbgl.scrhsj','sbgl.rhzq','qygl.qymc')
+            ->leftJoin('uf_zhxx_sbgl_qygl as qygl','qygl.id','=','sbgl.ssdw')
+            ->where('sbgl.rhzq','!=','')->get()->toArray();
+
+        foreach($list as $k => $v){
+            if($v->scrhsj != null){
+                $scrhsj = strtotime($v->scrhsj);
+                $sjc = floor(($current - $scrhsj) / (60 * 60 * 24));
+                $sjc = intval(round($sjc));
+                $v->sjc = ($v->rhzq*30 - $sjc);
+            }else{
+                $create_time = strtotime($v->create_time);
+                $sjc = floor(($current - $create_time) / (60 * 60 * 24));
+                $sjc = intval(round($sjc));
+                $v->sjc = ($v->rhzq*30 - $sjc);
+            }
+        }
+
+        usort($list, function ($a, $b) {
+            return $a->sjc <=> $b->sjc;
+        });
+
+        $result['data'] = $list;
+
+        return self::successResponse($result);
+    }
+
+    //设备管理设备调拨
+    public function sbglSbdb(){
+        $params = Input::get();
+        if (!$params) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $update = [
+            'ssdw' => $params['unit_id'],
+            'sbzt' => $params['sbzt'],
+            'sylx' => $params['sylx'],
+            'sbbh' => $params['sbbh'],
+            'bz' => $params['bz'],
+        ];
+
+        if($params['sbzt'] == 0){
+            $update['xsbdhfzr'] = $params['fzr_id'];
+        }
+        if($params['sbzt'] == 2){
+            $update['dxfzr'] = $params['fzr_id'];
+        }
+        if($params['sbzt'] == 3){
+            $update['jxfzr'] = $params['fzr_id'];
+        }
+        if($params['sbzt'] == 4){
+            $update['dbffzr'] = $params['fzr_id'];
+        }
+        if($params['sbzt'] == 5){
+            $update['bffzr'] = $params['fzr_id'];
+        }
+
+        DB::connection('mysql_fwe10')->table('uf_uf_zhxx_sbgl')->where('ID',$params['id'])->update($update);
+
+        return self::successResponse($result);
+    }
 }

+ 25 - 8
Modules/Admin/Routes/api.php

@@ -22,24 +22,41 @@ Route::namespace('Api')->group(function () {
     Route::post('oauth/token', 'TokenController@token');
     Route::post('check_token', 'TokenController@checkToken');
 
+    //整改人列表
+    Route::post('fanwei/zgr_list', 'ApiController@zgrList');//0
     //网格化录入
-    Route::post('fanwei/add_conition', 'ApiController@addConition');
+    Route::post('fanwei/add_conition', 'ApiController@addConition');//1
+    //网格化整改
+    Route::post('fanwei/edit_conition', 'ApiController@editConition');//1
     //网格化人员轨迹查询条件
-    Route::post('fanwei/get_query_conition', 'ApiController@getQueryConition');
+    Route::post('fanwei/get_query_conition', 'ApiController@getQueryConition');//5
     //网格化人员轨迹
-    Route::post('fanwei/get_person_travel', 'ApiController@getPersonTravel');
+    Route::post('fanwei/get_person_travel', 'ApiController@getPersonTravel');//4
     //网格化巡检记录查询条件
-    Route::post('fanwei/get_result_conition', 'ApiController@getResultConition');
+    Route::post('fanwei/get_result_conition', 'ApiController@getResultConition');//7
     //网格化巡检记录查询
-    Route::post('fanwei/get_result_record', 'ApiController@getResultRecord');
+    Route::post('fanwei/get_result_record', 'ApiController@getResultRecord');//9
     //网格化巡检记录列表
     Route::post('fanwei/get_result_list', 'ApiController@getResultList');
     //网格化巡检记录列表明细
-    Route::post('fanwei/get_result_dlist', 'ApiController@getResultDlist');
+    Route::post('fanwei/get_result_dlist', 'ApiController@getResultDlist');//2
     //网格化巡检记录明细
-    Route::post('fanwei/get_result_detail', 'ApiController@getResultDetail');
+    Route::post('fanwei/get_result_detail', 'ApiController@getResultDetail');//3
     //网格化巡检记录
-    Route::post('fanwei/get_final_list', 'ApiController@getFinalList');
+    Route::post('fanwei/get_final_list', 'ApiController@getFinalList');//8
+
+    //设备管理添加设备单位列表
+    Route::post('fanwei/sbgl_unit_list', 'ApiController@sbglUnitList');
+    //设备管理添加设备新设备负责人列表
+    Route::post('fanwei/sbgl_people_list', 'ApiController@sbglPeopleList');
+    //设备管理添加设备新设备
+    Route::post('fanwei/sbgl_add', 'ApiController@sbglAdd');
+    //设备管理添加设备新设备
+    Route::post('fanwei/sbgl_detail', 'ApiController@sbglDetail');
+    //设备管理润滑管理
+    Route::post('fanwei/sbgl_rh_list', 'ApiController@sbglRhList');
+    //设备管理设备调拨
+    Route::post('fanwei/sbgl_sbdb', 'ApiController@sbglSbdb');
 
     //短信发送
     Route::post('sms/send_meeting_sms', 'SmsController@sendMeetingSms');

+ 273 - 194
Modules/Admin/Services/ApiService.php

@@ -21,6 +21,25 @@ class ApiService{
 
     }
 
+    //网格化整改
+    public static function editConition($params)
+    {
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $update = [
+            'zgzp' => $params['zgpz'],
+            'jcwt' => '无'
+        ];
+
+        DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where('id',$params['id'])->update($update);
+
+        DB::connection('mysql_fwe10')->table('uf_zhxx_qlctzgg')->where('gglx_obj',$params['id'])->update(['IS_DELETE'=>1]);
+
+        return $result;
+    }
+
     //网格化录入
     public static function addConition($params)
     {
@@ -28,19 +47,96 @@ class ApiService{
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
         $result['data']   = [];
 
+        //区域字典录入
+        $area = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->where('szxmc',$params['xjdw'])->orderBy('areaid','desc')->get();
+
+        $is_insert = true;
+
+        if(count($area) > 0){
+            for($i=0;$i<count($area);$i++){
+                if($params['jcqy'] == $area[$i]->qymc){
+                    $is_insert = false;
+                }
+            }
+        }
+
+        if($is_insert){
+            $data['ID'] = mt_rand(pow(10, 18), pow(10, 18) + 999999999);
+            $data['FORM_DATA_ID'] = $data['ID'];
+            $data['DATA_INDEX'] = 0.0;
+            $data['CREATE_TIME'] = date('Y-m-d H:i:s');
+            $data['TENANT_KEY'] = 't1zz9w8165';
+            $data['IS_DELETE'] = 0;
+            $data['DELETE_TYPE'] = 0;
+            $data['FT_STATUS'] = 0;
+
+            if(count($area) > 0){
+                preg_match_all('/[0-9]+/', $area[0]->areaid, $matches);
+                $data['areaid'] = $params['xjdw'].($matches[0] + 1);
+            }else{
+                $data['areaid'] = $params['xjdw'].'1';
+            }
+            $data['qymc'] = $params['jcqy'];
+
+            $data['szxmc'] = $params['xjdw'];
+
+            DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->insert($data);
+        }
+
+        //巡检记录录入
+        $id = mt_rand(pow(10, 18), pow(10, 18) + 999999999);
         $insert = [
-            'lrr'  => $params['lrr'],
-            'dwmc' => $params['dwmc'],
-            'xjdw' => $params['xjdw'],
-            'jcqy' => $params['jcqy'],
+            'ID' => $id,
+            'FORM_DATA_ID' => $id,
+            'DATA_INDEX' => 0.0,
+            'CREATE_TIME' => date('Y-m-d H:i:s'),
+            'TENANT_KEY' => 't1zz9w8165',
+            'IS_DELETE' => 0,
+            'DELETE_TYPE' => 0,
+            'FT_STATUS' => 0,
+
+            'xjqy' => $params['jcqy'],
+            'dkpz' => $params['dkpz'],
+            'lrr'  => $params['lrmc'].'|'.$params['lrr'],
             'jclx' => $params['jclx'],
             'lrsj' => $params['lrsj'],
+            'dwmc' => $params['dwmc'],
             'jcwt' => $params['jcwt'],
+            'xjdw' => $params['xjdw'],
             'wtms' => $params['wtms'],
-            'dkpz' => $params['dkpz'],
+            'sjr' => $params['sjr']
         ];
 
-        $res = DB::connection('mysql_fwview')->table('uf_wghgl_new')->insert($insert);
+        if($params['jcwt'] == '有'){
+            $insert['zgr'] = $params['zgr'];
+        }
+
+        DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->insert($insert);
+
+        //发通知
+        if($params['jcwt'] == '有'){
+            $tzgg_first = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->orderBy('CREATE_TIME','desc')->limit(1)->get();
+            $id = mt_rand(pow(10, 18), pow(10, 18) + 999999999);
+            $zgr_name = explode('|',$params['zgr'])[0];
+            $tzgg = [
+                'ID' => $id,
+                'FORM_DATA_ID' => $id,
+                'DATA_INDEX' => 0.0,
+                'CREATE_TIME' => date('Y-m-d H:i:s'),
+                'TENANT_KEY' => 't1zz9w8165',
+                'IS_DELETE' => 0,
+                'DELETE_TYPE' => 0,
+                'FT_STATUS' => 0,
+
+                'gglx' => 3,
+                'gglx_obj' => $tzgg_first[0]->ID,
+                'ggrq' => date('Y-m-d H:i:s'),
+                'ggnr' => $zgr_name.',你有一条巡检记录需要整改,请及时'
+
+            ];
+
+            DB::connection('mysql_fwe10')->table('uf_zhxx_qlctzgg')->insert($tzgg);
+        }
 
         return $result;
     }
@@ -56,28 +152,37 @@ class ApiService{
             $date = date('Y-m-d', time());
         }
 
-        $depart = DB::connection('mysql_fwview')->table('hrmdepartment')
-                   ->where('subcompanyid1', 49)
-                   ->where('departmentname', 'like', '%' . '洗煤厂')
-                   ->where('id', '!=', 1602)->get();
+        $depart = DB::connection('mysql_fwe10_eteams')->table('department')
+            ->where('parent', '100001980000000049')
+            ->where('name', 'like', '%' . '洗煤厂')
+            ->where('id','!=','100001590000001602')
+            ->get();
 
         $depart_arr = [];
         foreach ($depart as $key => $val) {
-            $depart_name = str_replace('洗选中心', '', $val->DEPARTMENTNAME);
+            $depart_name = str_replace('洗选中心', '', $val->fullname);
             $depart_arr[$key] = [
                 'name' => $depart_name,
 
             ];
-            $query = DB::connection('mysql_fwview')->table('uf_wghgl_new')
-                       ->join('hrmresource', 'uf_wghgl_new.lrr', '=', 'hrmresource.id')
-                       ->where('xjdw', $depart_name)
-                       ->where('lrsj', 'like', '%' . $date . '%')
-                       ->groupBy('lrr')->select(
-                            [
-                                'hrmresource.lastname as person_name',
-                                'uf_wghgl_new.lrr as person_id'
-                            ]
-                        )->get();
+
+            $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')
+                ->where('xjdw', $depart_name)
+                ->where('lrsj', 'like', '%' . $date . '%')
+                ->groupBy('lrr')->select(
+                    [
+                        'lrr'
+                    ]
+                )->get();
+
+            if(count($query) > 0){
+                for($i=0;$i<count($query);$i++){
+                    $lrr = explode('|',$query[$i]->lrr);
+                    $query[$i]->person_name = $lrr[0];
+                    $query[$i]->person_id = $lrr[1];
+                }
+            }
+
             $query = json_decode($query);
             $depart_arr[$key]['person_list'] = $query;
         }
@@ -101,25 +206,28 @@ class ApiService{
         $res = [];
         $area_arr = [];
 
-        $query = DB::connection('mysql_fwview')->table('uf_wghgl_new')
-                   ->where('lrr', $person_id)
-                   ->where('lrsj', 'like', '%' . $date . '%')
-                   ->where('xjdw', $depart)
-                   ->orderBy('lrsj', 'asc')->get();
+        $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')
+            ->where('lrr', $person_id)
+            ->where('lrsj', 'like', '%' . $date . '%')
+            ->where('xjdw', $depart)
+            ->orderBy('lrsj', 'asc')->get();
         $query = json_decode($query);
+
         if ($query) {
             foreach ($query as $key => $val) {
-                $area_arr[] = $val->jcqy;
+                // dd($val);
+                $area_arr[] = $val->xjqy;
                 $res[] = [
-                    'area'    => $val->jcqy,
+                    'area'    => $val->xjqy,
                     'date'    => $val->lrsj,
-                    'data_id' => $val->id,
-                    'url'     => '/mobilemode/formbasebrowserview.jsp?billid=' . $val->id . '&modeId=580&formId=-976',
+                    'data_id' => $val->ID,
+                    'url'     => 'http://anstatic.nxmy.com:8011/assets/html/xixuan/pages/detail.html?id='.$val->ID,
                 ];
             }
-            $area_list = DB::connection('mysql_fwview')->table('formtable_main_974')
-                           ->whereNotIn('qymc', $area_arr)
-                           ->where('szxmc', $depart)->orderBy('areaid', 'asc')->get();
+
+            $area_list = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')
+                ->whereNotIn('qymc', $area_arr)
+                ->where('szxmc', $depart)->orderBy('areaid', 'asc')->get();
             foreach ($area_list as $area) {
                 $res[] = [
                     'area'    => $area->qymc,
@@ -142,14 +250,15 @@ class ApiService{
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
         $result['data']   = [];
 
-        $depart = DB::connection('mysql_fwview')->table('hrmdepartment')
-                    ->where('subcompanyid1', 49)
-                    ->where('departmentname', 'like', '%' . '洗煤厂')
-                    ->where('id', '!=', 1602)->get();
+        $depart = DB::connection('mysql_fwe10_eteams')->table('department')
+            ->where('parent', '100001980000000049')
+            ->where('name', 'like', '%' . '洗煤厂')
+            ->where('id','!=','100001590000001602')
+            ->get();
 
         $depart_arr = [];
         foreach ($depart as $key => $val) {
-            $depart_name = str_replace('洗选中心', '', $val->DEPARTMENTNAME);
+            $depart_name = str_replace('洗选中心', '', $val->fullname);
             $depart_arr[$key] = $depart_name;
         }
 
@@ -165,12 +274,10 @@ class ApiService{
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
         $result['data']   = [];
 
-        $query = DB::connection('mysql_fwview')->table('uf_wghgl_new');
-
+        $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl');
         if ($depart != 'all') {
             $query = $query->where('xjdw', $depart);
         }
-
         if ($date_type == 'month') {
             $query = $query->where(DB::raw('MONTH(lrsj)'), DB::raw('MONTH(CURDATE())'));
         } else if ($date_type == 'quarter') {
@@ -178,59 +285,41 @@ class ApiService{
         } else {
             $query = $query->where(DB::raw('WEEK(lrsj)'), DB::raw('WEEK(CURDATE())'));
         }
-
-        $query = $query->groupBy('lrdate', 'xjdw', 'lrr', 'dwmc')
-                   ->select(
-                       [
-                           DB::raw('DATE(lrsj) as lrdate'),
-                           'xjdw',
-                           'lrr',
-                           'dwmc'
-                       ]
-                   )
-                   ->get();
-
-        $data = [];
-        $pie  = [];
-        foreach ($query as $key => $val) {
-            $lastname = DB::connection('mysql_fwview')->table('hrmresource')
-                          ->where('id', $val->lrr)->value('lastname');
-            $allcount = DB::connection('mysql_fwview')->table('formtable_main_974')
-                          ->where('szxmc', $val->xjdw)->count();
-
-            $detail = DB::connection('mysql_fwview')->table('uf_wghgl_new')
-                        ->where('xjdw', $val->xjdw)
-                        ->where(DB::raw('DATE(lrsj)'), $val->lrdate)
-                        ->where('lrr', $val->lrr)->count();
-
-            if ($allcount <= 0) {
-                continue;
+        $query = $query->get();
+
+        $people_list = [];
+        if(count($query) > 0){
+            for($i=0;$i<count($query);$i++){
+                if(!in_array($query[$i]->lrr,$people_list)){
+                    $people_list[] = $query[$i]->lrr;
+                }
             }
+        }
 
-            if ($detail >= $allcount) {
-                $data[$val->lrr] = [
-                    'department' => $val->dwmc,
-                    'lastname'   => $lastname,
-                    'person_id'  => $val->lrr,
-                    'count'      => isset($data[$val->lrr]['count']) ? $data[$val->lrr]['count'] + 1 : 1,
-                ];
-                $pie[$val->lrr] = [
-                    'name'  => $lastname,
-                    'value' => isset($data[$val->lrr]['value']) ? $data[$val->lrr]['value'] + 1 : 1,
-                ];
-            } else {
-                continue;
+        $list = [];
+        $pie = [];
+
+        if(count($people_list) > 0){
+            for($i=0;$i<count($people_list);$i++){
+                $count = 0;
+                for($j=0;$j<count($query);$j++){
+                    if($people_list[$i] == $query[$j]->lrr){
+                        $list[$i]['department'] = $query[$j]->dwmc;
+                        $count++;
+                    }
+                }
+                $lrr = explode('|',$people_list[$i]);
+                $list[$i]['lastname'] = $lrr[0];
+                $list[$i]['person_id'] = $lrr[1];
+                $list[$i]['count'] = $count;
+
+                $pie[$i]['name'] = $lrr[0];
+                $pie[$i]['value'] = $count;
             }
         }
 
-        $data_arr = array_column($data, 'count');
-        array_multisort($data_arr, SORT_DESC, $data);
-
-        $pie_arr = array_column($pie, 'value');
-        array_multisort($pie_arr, SORT_DESC, $pie);
-
-        $result['data']['list'] = $data;
-        $result['data']['pie']  = $pie;
+        $result['data']['list'] = $list;
+        $result['data']['pie'] = $pie;
 
         return $result;
     }
@@ -242,7 +331,7 @@ class ApiService{
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
         $result['data']   = [];
 
-        $query = DB::connection('mysql_fwview')->table('uf_wghgl_new')->where('lrr', $person_id);
+        $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where('lrr', 'like' ,'%'.$person_id.'%');
 
         if ($depart != 'all') {
             $query = $query->where('xjdw', $depart);
@@ -256,42 +345,26 @@ class ApiService{
             $query = $query->where(DB::raw('WEEK(lrsj)'), DB::raw('WEEK(CURDATE())'));
         }
 
-        $query = $query->groupBy('lrdate', 'xjdw')
-                       ->select(
-                           [
-                               'xjdw',
-                               DB::raw('DATE(lrsj) as lrdate'),
-                           ]
-                       )
-                       ->get();
+        $query = $query->select(
+            [
+                'xjqy',
+                DB::raw('DATE(lrsj) as lrdate'),
+                'lrr',
+                'xjdw'
+            ]
+        )->get();
 
         $data = [];
         foreach ($query as $key => $val) {
-            $lastname = DB::connection('mysql_fwview')->table('hrmresource')
-                          ->where('id', $person_id)->value('lastname');
-
-            $allcount = DB::connection('mysql_fwview')->table('formtable_main_974')
-                          ->where('szxmc', $val->xjdw)->count();
-
-            $detail = DB::connection('mysql_fwview')->table('uf_wghgl_new')
-                        ->where('xjdw', $val->xjdw)
-                        ->where(DB::raw('DATE(lrsj)'), $val->lrdate)
-                        ->where('lrr', $person_id)->count();
-
-            if ($allcount <= 0) {
-                continue;
-            }
-
-            if ($detail >= $allcount) {
-                $data[] = [
-                    'lastname'   => $lastname,
-                    'person_id'  => $person_id,
-                    'depart'     => $val->xjdw,
-                    'date'       => $val->lrdate
-                ];
-            } else {
-                continue;
-            }
+            $lrr = explode('|',$val->lrr);
+
+            $data[] = [
+                'lastname'   => $lrr[0],
+                'person_id'  => $val->lrr,
+                'depart'     => $val->xjdw,
+                'date'       => $val->lrdate,
+                'xjqy'       => $val->xjqy
+            ];
         }
 
         $data_arr = array_column($data, 'date');
@@ -310,20 +383,24 @@ class ApiService{
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
         $result['data']   = [];
 
-        $query = DB::connection('mysql_fwview')->table('uf_wghgl_new')
-                   ->join('hrmresource', 'uf_wghgl_new.lrr', '=', 'hrmresource.id')
-                   ->where('lrr', $person_id)
-                   ->where('xjdw', $depart)
-                   ->where('lrsj', 'like', $date . '%')
-                   ->orderBy('lrsj', 'desc')
-                   ->select(
-                       [
-                           'uf_wghgl_new.id',
-                           'lastname',
-                           'jcqy',
-                           'lrsj',
-                       ]
-                   )->get();
+        $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')
+            ->where('lrr', $person_id)
+            ->where('xjdw', $depart)
+            ->where('lrsj', 'like', $date . '%')
+            ->orderBy('lrsj', 'desc')
+            ->select([
+                'ID',
+                'lrr',
+                'xjqy',
+                'lrsj',
+            ])->get();
+
+        if(count($query) > 0){
+            for($i=0;$i<count($query);$i++){
+                $lrr = explode('|',$query[$i]->lrr);
+                $query[$i]->lrr_name = $lrr[0];
+            }
+        }
 
         $query = json_decode($query);
 
@@ -339,22 +416,30 @@ class ApiService{
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
         $result['data']   = [];
 
-        $query = DB::connection('mysql_fwview')->table('uf_wghgl_new')
-                   ->join('hrmresource', 'uf_wghgl_new.lrr', '=', 'hrmresource.id')
-                   ->where('uf_wghgl_new.id', $id)
-                   ->select(
-                       [
-                           'lastname',
-                           'dwmc',
-                           'xjdw',
-                           'jcqy',
-                           'jclx',
-                           'lrsj',
-                           'jcwt',
-                           'wtms',
-                           'dkpz'
-                       ]
-                   )->get();
+        $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')
+            ->where('id', $id)
+            ->select(
+                [
+                    'lrr',
+                    'dwmc',
+                    'xjdw',
+                    'xjqy',
+                    'jclx',
+                    'lrsj',
+                    'jcwt',
+                    'wtms',
+                    'dkpz',
+                    'zgzp',
+                    'zgr'
+                ]
+            )->get();
+
+        if(count($query) > 0){
+            for($i=0;$i<count($query);$i++){
+                $lrr = explode('|',$query[$i]->lrr);
+                $query[$i]->lrr_name = $lrr[0];
+            }
+        }
 
         $query = json_decode($query);
 
@@ -370,7 +455,7 @@ class ApiService{
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
         $result['data']   = [];
 
-        $query = DB::connection('mysql_fwview')->table('uf_wghgl_new');
+        $query = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl');
 
         if ($start_date == $end_date) {
             $query = $query->where('lrsj', 'like', $start_date . '%');
@@ -383,54 +468,48 @@ class ApiService{
         }
 
         if ($person) {
-            $person_id = DB::connection('mysql_fwview')->table('hrmresource')
-                           ->where('lastname', 'like', '%' . $person . '%')->pluck('id')->all();
-            $query = $query->whereIn('lrr', $person_id);
+            // $person_id = DB::connection('mysql_fwview')->table('hrmresource')
+            //   ->where('lastname', 'like', '%' . $person . '%')->pluck('id')->all();1
+            $query = $query->whereIn('lrr', 'like','%'.$person_id.'%');
         }
 
-        $query = $query->orderBy('lrdate', 'desc')->groupBy('lrdate', 'xjdw', 'lrr')
-                       ->select(
-                           [
-                               DB::raw('DATE(lrsj) as lrdate'),
-                               'xjdw',
-                               'lrr'
-                           ]
-                       )
-                       ->get();
+        $query = $query->orderBy('lrdate', 'desc')->groupBy('lrsj', 'xjdw', 'lrr','jcwt','id','zgr')
+            ->select(
+                [
+                    DB::raw('DATE(lrsj) as lrdate'),
+                    'xjdw',
+                    'lrr',
+                    'jcwt',
+                    'id',
+                    'zgr'
+                ]
+            )
+            ->get();
 
         $data = [];
         foreach ($query as $key => $val) {
-            $lastname = DB::connection('mysql_fwview')->table('hrmresource')
-                          ->where('id', $val->lrr)->value('lastname');
-            $allcount = DB::connection('mysql_fwview')->table('formtable_main_974')
-                          ->where('szxmc', $val->xjdw)->count();
-
-            $detail = DB::connection('mysql_fwview')->table('uf_wghgl_new')
-                        ->where('xjdw', $val->xjdw)
-                        ->where(DB::raw('DATE(lrsj)'), $val->lrdate)
-                        ->where('lrr', $val->lrr)->count();
-
-            if ($allcount <= 0) {
-                continue;
+            $lastname = explode('|',$val->lrr)[0];
+            if($val->jcwt == '有'){
+                $is_complete = 0;
+            }else{
+                $is_complete = 1;
             }
 
-            if ($detail >= $allcount) {
-                $data[] = [
-                    'depart'      => $val->xjdw,
-                    'lastname'    => $lastname,
-                    'person_id'   => $val->lrr,
-                    'date'        => $val->lrdate,
-                    'is_complete' => 1
-                ];
-            } else {
-                $data[] = [
-                    'depart'      => $val->xjdw,
-                    'lastname'    => $lastname,
-                    'person_id'   => $val->lrr,
-                    'date'        => $val->lrdate,
-                    'is_complete' => 0
-                ];
+            $zgr = explode('|',$val->zgr);
+            $zgr_id = '';
+            if(count($zgr) > 1){
+                $zgr_id = $zgr[1];
             }
+            $data[] = [
+                'depart'      => $val->xjdw,
+                'lastname'    => $lastname,
+                'person_id'   => $val->lrr,
+                'date'        => $val->lrdate,
+                'is_complete' => $is_complete,
+                'id'          => $val->id,
+                'zgr_id'      => $zgr_id
+            ];
+
         }
 
         $result['data'] = $data;

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 834 - 183
Modules/Camera/Http/Controllers/Api/CameraApiController.php


+ 39 - 0
Modules/Camera/Http/Controllers/Api/HaiKangController.php

@@ -55,6 +55,24 @@ class HaiKangController extends BaseController
         $this->time = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
     }
 
+    //视频质量诊断
+    public function videoQuality(){
+        $indexCode = Input::get('indexCode');
+
+        $url = $this->artemis . '/api/nms/v1/vqd/list';
+        //请求参数
+        $params = [];
+        $params['pageNo']   = 1;
+        $params['pageSize'] = 20;
+        $params['indexCodes'] = [$indexCode];
+        $this->sign         = $this->get_sign($url);
+
+        $result = $this->curlPost($this->pre_url . $url, json_encode($params));
+        $result = json_decode($result, true);
+
+        return $result;
+    }
+
     /**
      * 获取区域列表
      * @return bool|mixed|string
@@ -770,6 +788,27 @@ class HaiKangController extends BaseController
         return $result;
     }
 
+    //获取摄像头质量
+    public function checkCameraQuality(){
+        if (!Input::has('indexCode')) {
+            return $this->error(1, '缺少必要参数');
+        }
+
+        $url = $this->artemis . '/api/nms/v1/vqd/list';
+        //请求参数
+        $params                    = [];
+        $params['indexCodes'] = [Input::get('indexCode')];
+        $params['pageNo']   = 1;
+        $params['pageSize'] = 20;
+        $this->sign         = $this->get_sign($url);
+
+        $result = $this->curlPost($this->pre_url . $url, json_encode($params));
+
+        $result = json_decode($result, true);
+
+        return $result;
+    }
+
     //海康获取rtmp
     public function getHikHls(){
         $result['status'] = true;

+ 3 - 1
Modules/Camera/Routes/api.php

@@ -48,6 +48,7 @@ Route::namespace('Api')->group(function () {
     Route::post('camera/picture_base64', 'CameraApiController@pictureBase64');//宁煤存base64图片
     Route::post('camera/get_risk_ningmei', 'CameraApiController@getRiskNingmei');//宁煤高风险摄像头
     Route::post('camera/get_total_ningmei', 'CameraApiController@getTotalNingmei');//宁煤摄像头统计
+    Route::post('camera/get_total_ningmei_week', 'CameraApiController@getTotalNingmeiWeek');//宁煤摄像头周统计
     Route::post('camera/offline_list', 'CameraApiController@offlineList');//宁煤不在线摄像头列表
     Route::get('camera/get_total_string', 'CameraApiController@getTotalString');//宁煤摄像头统计字符串
     Route::get('test', 'CameraApiController@test');
@@ -96,7 +97,8 @@ Route::namespace('Api')->group(function () {
     Route::post('task_xixuan/export3_total', 'CameraApiController@export3Total');//导出完成情况表统计
     Route::post('task_xixuan/export3_list_ziying', 'CameraApiController@export3ListZiying');//导出完成情况表自营列表
     Route::post('task_xixuan/export3_list_weiwai', 'CameraApiController@export3ListWeiwai');//导出完成情况表委外列表
-
+    Route::post('task_xixuan/export4', 'CameraApiController@export4');//导出盯控次数统计
+    Route::post('task_xixuan/export5', 'CameraApiController@export5');//导出人均盯控次数统计
 
     //大华视频接口
     Route::post('task_xixuan/dahua_camera','TdwyController@dahuaCamera');//大华手动同步

+ 25 - 0
Modules/Camera/Services/CameraServices.php

@@ -1597,6 +1597,31 @@ class CameraServices
         return $result;
     }
 
+    //获取摄像头质量
+    public static function checkCameraQuality($parent_id, $mine_id)
+    {
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $query = MineListExt::where('mine_id', $parent_id)->first();
+
+        $list = [];
+
+        Input::replace(
+            [
+                'url'       => trim($query->ip, '/') . ':' . $query->port,
+                'key'       => $query->key,
+                'secret'    => $query->secret,
+                'indexCode' => $mine_id
+            ]
+        );
+        $haikang   = new HaiKangController();
+        $result_hk = $haikang->checkCameraQuality();
+
+        return $result_hk;
+    }
+
     //查询海康摄像头编码设备列表
     public static function getHaiKangTransList($parent_id)
     {

+ 23 - 0
Modules/Mine/Services/MineServices.php

@@ -344,4 +344,27 @@ class MineServices{
 
         return $result;
     }
+
+    //视频质量诊断
+    public static function videoQuality($mine_id,$indexCode){
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $query = MineListExt::where('mine_id', $mine_id)->first();
+
+        Input::replace(
+            [
+                'url'     => trim($query->ip, '/') . ':' . $query->port,
+                'key'     => $query->key,
+                'secret'  => $query->secret,
+                'indexCode'    => $indexCode,
+                'mine_id' => $mine_id,
+            ]
+        );
+        $haikang   = new HaiKangController();
+        $result_hk = $haikang->videoQuality();
+
+        return $result_hk;
+    }
 }

+ 13 - 11
app/Console/Commands/CameraStatusHistory.php

@@ -48,26 +48,28 @@ class CameraStatusHistory extends Command
         $result['status'] = true;
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
 
+        DB::table('camera_status_history')->where('date', '<=', date('Y-m-d H:i:s', strtotime('-30 days')))->delete();
+
         //宁煤集团
         $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;$i<count($ydjk);$i++){
-                array_push($ydjk_list,$ydjk[$i]->id);
+        $mine_all = DB::table('mine_list')->where('deleted_at',null);
 
+        $xczyd = DB::table('mine_list')->where('deleted_at',null)->where('title','现场作业点')->pluck('degree');
+        $ydjk = DB::table('mine_list')->where('deleted_at',null)->where('title','移动监控')->pluck('degree');
+        if(count($xczyd) > 0){
+            for($i=0;$i<count($xczyd);$i++){
+                $mine_all->where('degree','not like',$xczyd[$i].'%');
             }
         }
-        $ydjk_son = DB::table('mine_list')->whereIn('parent_id',$ydjk_list)->where('deleted_at',null)->get();
-        if(count($ydjk_son) > 0){
-            for($i=0;$i<count($ydjk_son);$i++){
-                array_push($ydjk_list,$ydjk_son[$i]->id);
-
+        if(count($ydjk) > 0){
+            for($i=0;$i<count($ydjk);$i++){
+                $mine_all->where('degree','not like',$ydjk[$i].'%');
             }
         }
 
-        $mine_all = DB::table('mine_list')->where('deleted_at',null)->whereNotIn('id',$ydjk_list)->get();//所有区域
+        $mine_all = $mine_all->get();
+
         $mine_ningmei = [];//宁煤集团所有区域
         foreach($mine_all as $k=>$v){
             if(explode('|',$v->degree)[0] == $ningmei[0]->id){

+ 428 - 0
app/Console/Commands/UpdateHgrydw.php

@@ -0,0 +1,428 @@
+<?php
+
+namespace App\Console\Commands;
+
+use Illuminate\Support\Facades\Config;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Input;
+use Illuminate\Support\Facades\Log;
+use Illuminate\Support\Facades\Redis;
+use Modules\Camera\Entities\CameraList;
+use Modules\Camera\Enum\CameraEnum;
+use Modules\Camera\Http\Controllers\Api\HaiKangController;
+use Modules\Camera\Http\Controllers\Api\TdwyController;
+use Modules\Camera\Jobs\CameraDownload;
+use Modules\Camera\Services\CameraServices;
+use Modules\Mine\Entities\MineList;
+use Modules\Mine\Entities\MineListExt;
+use Modules\Mine\Services\MineServices;
+use Modules\Mine\Enum\MineEnum;
+use Illuminate\Console\Command;
+
+use GuzzleHttp\Client;
+
+class UpdateHgrydw extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+    protected $signature = 'hgrydw:update';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = '同步化工人员定位接口数据';
+
+    /**
+     * Create a new command instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Execute the console command.
+     *
+     * @return mixed
+     */
+    public function handle()
+    {
+        $start_time = time();
+        echo '开始时间:'.date('Y-m-d H:i:s');
+        $this->mzyQyxxInsert();
+        $this->jlQyxxInsert();
+        echo '时长:'.number_format(((time()-$start_time)/60),2).'分钟';
+    }
+
+    //化工人员定位煤制油区域信息录入
+    public function mzyQyxxInsert(){
+        //获取token
+        $url = 'http://10.186.64.30:8091/chem/api/getToken?username=super&password=meizhiyou';
+
+        $result = $this->httpRequest($url,'post');
+
+        if($result['data']){
+            //获取部门列表
+            $url = 'http://10.186.64.30:8091/chem/api/getAreaInfo?token='.$result['data'];
+
+            $result2 = $this->httpRequest($url);
+            // dd($result2);
+            if($result2['data'] && count($result2['data']) > 0){
+                DB::connection('mysql_fwe10')->table('uf_mzy_total')->delete();
+                DB::connection('mysql_fwe10')->table('uf_mzy_parent_counts')->delete();
+                DB::connection('mysql_fwe10')->table('uf_mzy_counts')->delete();
+                DB::connection('mysql_fwe10')->table('uf_mzy_type')->delete();
+                //uf_mzy_total
+                $total['total'] = $result2['data']['total'];
+                $total['staffNumb'] = $result2['data']['staffNumb'];
+                $total['callerNumb'] = $result2['data']['callerNumb'];
+                $total['carNumb'] = $result2['data']['carNumb'];
+                $total['contractorNumb'] = $result2['data']['contractorNumb'];
+                $total['toolcarNumb'] = $result2['data']['toolcarNumb'];
+                DB::connection('mysql_fwe10')->table('uf_mzy_total')->insert($total);
+
+                $counts_list = $result2['data']['counts'];
+                if(count($counts_list) > 0){
+                    for($i=0;$i<count($counts_list);$i++){
+                        //uf_mzy_parent_counts
+                        $pcounts['organName'] = $counts_list[$i]['organName'];
+                        $pcounts['staffNumb'] = $counts_list[$i]['staffNumb'];
+                        $pcounts['contractorNumb'] = $counts_list[$i]['contractorNumb'];
+                        $pcounts['callerNumb'] = $counts_list[$i]['callerNumb'];
+                        $pcounts['carNumb'] = $counts_list[$i]['carNumb'];
+                        $id = DB::connection('mysql_fwe10')->table('uf_mzy_parent_counts')->insertGetId($pcounts);
+                        if(count($counts_list[$i]['counts']) > 0){
+                            for($j=0;$j<count($counts_list[$i]['counts']);$j++){
+                                //uf_mzy_counts
+                                $counts['parent_id'] = $id;
+                                $counts['fid'] = $counts_list[$i]['counts'][$j]['fid'];
+                                $counts['areaName'] = $counts_list[$i]['counts'][$j]['areaName'];
+                                $counts['staffNumb'] = $counts_list[$i]['counts'][$j]['staffNumb'];
+                                $counts['contractorNumb'] = $counts_list[$i]['counts'][$j]['contractorNumb'];
+                                $counts['callerNumb'] = $counts_list[$i]['counts'][$j]['callerNumb'];
+                                $counts['carNumb'] = $counts_list[$i]['counts'][$j]['carNumb'];
+                                $counts['isSafe'] = $counts_list[$i]['counts'][$j]['isSafe'];
+                                DB::connection('mysql_fwe10')->table('uf_mzy_counts')->insert($counts);
+                                $persons = $counts_list[$i]['counts'][$j]['persons'];
+                                $personContractor = $counts_list[$i]['counts'][$j]['personContractor'];
+                                $personCaller = $counts_list[$i]['counts'][$j]['personCaller'];
+                                $car = $counts_list[$i]['counts'][$j]['car'];
+                                if(count($persons) > 0){
+                                    for($x=0;$x<count($persons);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $persons[$x]['deviceId'];
+                                        $type['timestamp'] = $persons[$x]['timestamp'];
+                                        $type['lon'] = $persons[$x]['lon'];
+                                        $type['lat'] = $persons[$x]['lat'];
+                                        $type['fid'] = $persons[$x]['fid'];
+                                        $type['name'] = $persons[$x]['name'];
+                                        $type['weekSel'] = $persons[$x]['weekSel'];
+                                        $type['stime1'] = $persons[$x]['stime1'];
+                                        $type['etime1'] = $persons[$x]['etime1'];
+                                        $type['stime2'] = $persons[$x]['stime2'];
+                                        $type['etime2'] = $persons[$x]['etime2'];
+                                        $type['stime3'] = $persons[$x]['stime3'];
+                                        $type['etime3'] = $persons[$x]['etime3'];
+                                        $type['organId'] = $persons[$x]['organId'];
+                                        $type['work'] = $persons[$x]['work'];
+                                        $type['minMaxCount'] = $persons[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $persons[$x]['personOrganId'];
+                                        $type['inRegion'] = $persons[$x]['inRegion'];
+                                        $type['mode'] = $persons[$x]['mode'];
+                                        $type['type'] = 'persons';
+                                        DB::connection('mysql_fwe10')->table('uf_mzy_type')->insert($type);
+                                    }
+                                }
+                                if(count($personContractor) > 0){
+                                    for($x=0;$x<count($personContractor);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $personContractor[$x]['deviceId'];
+                                        $type['timestamp'] = $personContractor[$x]['timestamp'];
+                                        $type['lon'] = $personContractor[$x]['lon'];
+                                        $type['lat'] = $personContractor[$x]['lat'];
+                                        $type['fid'] = $personContractor[$x]['fid'];
+                                        $type['name'] = $personContractor[$x]['name'];
+                                        $type['weekSel'] = $personContractor[$x]['weekSel'];
+                                        $type['stime1'] = $personContractor[$x]['stime1'];
+                                        $type['etime1'] = $personContractor[$x]['etime1'];
+                                        $type['stime2'] = $personContractor[$x]['stime2'];
+                                        $type['etime2'] = $personContractor[$x]['etime2'];
+                                        $type['stime3'] = $personContractor[$x]['stime3'];
+                                        $type['etime3'] = $personContractor[$x]['etime3'];
+                                        $type['organId'] = $personContractor[$x]['organId'];
+                                        $type['work'] = $personContractor[$x]['work'];
+                                        $type['minMaxCount'] = $personContractor[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $personContractor[$x]['personOrganId'];
+                                        $type['inRegion'] = $personContractor[$x]['inRegion'];
+                                        $type['mode'] = $personContractor[$x]['mode'];
+                                        $type['type'] = 'personContractor';
+                                        DB::connection('mysql_fwe10')->table('uf_mzy_type')->insert($type);
+                                    }
+                                }
+                                if(count($personCaller) > 0){
+                                    for($x=0;$x<count($personCaller);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $personCaller[$x]['deviceId'];
+                                        $type['timestamp'] = $personCaller[$x]['timestamp'];
+                                        $type['lon'] = $personCaller[$x]['lon'];
+                                        $type['lat'] = $personCaller[$x]['lat'];
+                                        $type['fid'] = $personCaller[$x]['fid'];
+                                        $type['name'] = $personCaller[$x]['name'];
+                                        $type['weekSel'] = $personCaller[$x]['weekSel'];
+                                        $type['stime1'] = $personCaller[$x]['stime1'];
+                                        $type['etime1'] = $personCaller[$x]['etime1'];
+                                        $type['stime2'] = $personCaller[$x]['stime2'];
+                                        $type['etime2'] = $personCaller[$x]['etime2'];
+                                        $type['stime3'] = $personCaller[$x]['stime3'];
+                                        $type['etime3'] = $personCaller[$x]['etime3'];
+                                        $type['organId'] = $personCaller[$x]['organId'];
+                                        $type['work'] = $personCaller[$x]['work'];
+                                        $type['minMaxCount'] = $personCaller[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $personCaller[$x]['personOrganId'];
+                                        $type['inRegion'] = $personCaller[$x]['inRegion'];
+                                        $type['mode'] = $personCaller[$x]['mode'];
+                                        $type['type'] = 'personCaller';
+                                        DB::connection('mysql_fwe10')->table('uf_mzy_type')->insert($type);
+                                    }
+                                }
+                                if(count($car) > 0){
+                                    for($x=0;$x<count($car);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $car[$x]['deviceId'];
+                                        $type['timestamp'] = $car[$x]['timestamp'];
+                                        $type['lon'] = $car[$x]['lon'];
+                                        $type['lat'] = $car[$x]['lat'];
+                                        $type['fid'] = $car[$x]['fid'];
+                                        $type['name'] = $car[$x]['name'];
+                                        $type['weekSel'] = $car[$x]['weekSel'];
+                                        $type['stime1'] = $car[$x]['stime1'];
+                                        $type['etime1'] = $car[$x]['etime1'];
+                                        $type['stime2'] = $car[$x]['stime2'];
+                                        $type['etime2'] = $car[$x]['etime2'];
+                                        $type['stime3'] = $car[$x]['stime3'];
+                                        $type['etime3'] = $car[$x]['etime3'];
+                                        $type['organId'] = $car[$x]['organId'];
+                                        $type['work'] = $car[$x]['work'];
+                                        $type['minMaxCount'] = $car[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $car[$x]['personOrganId'];
+                                        $type['inRegion'] = $car[$x]['inRegion'];
+                                        $type['mode'] = $car[$x]['mode'];
+                                        $type['type'] = 'persons';
+                                        DB::connection('mysql_fwe10')->table('uf_mzy_type')->insert($type);
+                                    }
+                                }
+                            }
+                        }
+                        // dd($id);
+                    }
+                }
+
+                // dd(123);
+            }
+        }
+    }
+
+    //化工人员定位精蜡区域信息录入
+    public function jlQyxxInsert(){
+        //获取token
+        $url = 'http://10.186.64.31:8091/chem/api/getToken?username=test&password=123456';
+
+        $result = $this->httpRequest($url,'post');
+
+        if($result['data']){
+            //获取部门列表
+            $url = 'http://10.186.64.31:8091/chem/api/getAreaInfo?token='.$result['data'];
+
+            $result2 = $this->httpRequest($url);
+            // dd($result2);
+            if($result2['data'] && count($result2['data']) > 0){
+                DB::connection('mysql_fwe10')->table('uf_jl_total')->delete();
+                DB::connection('mysql_fwe10')->table('uf_jl_parent_counts')->delete();
+                DB::connection('mysql_fwe10')->table('uf_jl_counts')->delete();
+                DB::connection('mysql_fwe10')->table('uf_jl_type')->delete();
+                //uf_mzy_total
+                $total['total'] = $result2['data']['total'];
+                $total['staffNumb'] = $result2['data']['staffNumb'];
+                $total['callerNumb'] = $result2['data']['callerNumb'];
+                $total['carNumb'] = $result2['data']['carNumb'];
+                $total['contractorNumb'] = $result2['data']['contractorNumb'];
+                $total['toolcarNumb'] = $result2['data']['toolcarNumb'];
+                DB::connection('mysql_fwe10')->table('uf_jl_total')->insert($total);
+
+                $counts_list = $result2['data']['counts'];
+                if(count($counts_list) > 0){
+                    for($i=0;$i<count($counts_list);$i++){
+                        //uf_mzy_parent_counts
+                        $pcounts['organName'] = $counts_list[$i]['organName'];
+                        $pcounts['staffNumb'] = $counts_list[$i]['staffNumb'];
+                        $pcounts['contractorNumb'] = $counts_list[$i]['contractorNumb'];
+                        $pcounts['callerNumb'] = $counts_list[$i]['callerNumb'];
+                        $pcounts['carNumb'] = $counts_list[$i]['carNumb'];
+                        $id = DB::connection('mysql_fwe10')->table('uf_jl_parent_counts')->insertGetId($pcounts);
+                        if(count($counts_list[$i]['counts']) > 0){
+                            for($j=0;$j<count($counts_list[$i]['counts']);$j++){
+                                //uf_mzy_counts
+                                $counts['parent_id'] = $id;
+                                $counts['fid'] = $counts_list[$i]['counts'][$j]['fid'];
+                                $counts['areaName'] = $counts_list[$i]['counts'][$j]['areaName'];
+                                $counts['staffNumb'] = $counts_list[$i]['counts'][$j]['staffNumb'];
+                                $counts['contractorNumb'] = $counts_list[$i]['counts'][$j]['contractorNumb'];
+                                $counts['callerNumb'] = $counts_list[$i]['counts'][$j]['callerNumb'];
+                                $counts['carNumb'] = $counts_list[$i]['counts'][$j]['carNumb'];
+                                $counts['isSafe'] = $counts_list[$i]['counts'][$j]['isSafe'];
+                                DB::connection('mysql_fwe10')->table('uf_jl_counts')->insert($counts);
+                                $persons = $counts_list[$i]['counts'][$j]['persons'];
+                                $personContractor = $counts_list[$i]['counts'][$j]['personContractor'];
+                                $personCaller = $counts_list[$i]['counts'][$j]['personCaller'];
+                                $car = $counts_list[$i]['counts'][$j]['car'];
+                                if(count($persons) > 0){
+                                    for($x=0;$x<count($persons);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $persons[$x]['deviceId'];
+                                        $type['timestamp'] = $persons[$x]['timestamp'];
+                                        $type['lon'] = $persons[$x]['lon'];
+                                        $type['lat'] = $persons[$x]['lat'];
+                                        $type['fid'] = $persons[$x]['fid'];
+                                        $type['name'] = $persons[$x]['name'];
+                                        $type['weekSel'] = $persons[$x]['weekSel'];
+                                        $type['stime1'] = $persons[$x]['stime1'];
+                                        $type['etime1'] = $persons[$x]['etime1'];
+                                        $type['stime2'] = $persons[$x]['stime2'];
+                                        $type['etime2'] = $persons[$x]['etime2'];
+                                        $type['stime3'] = $persons[$x]['stime3'];
+                                        $type['etime3'] = $persons[$x]['etime3'];
+                                        $type['organId'] = $persons[$x]['organId'];
+                                        $type['work'] = $persons[$x]['work'];
+                                        $type['minMaxCount'] = $persons[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $persons[$x]['personOrganId'];
+                                        $type['inRegion'] = $persons[$x]['inRegion'];
+                                        $type['mode'] = $persons[$x]['mode'];
+                                        $type['type'] = 'persons';
+                                        DB::connection('mysql_fwe10')->table('uf_jl_type')->insert($type);
+                                    }
+                                }
+                                if(count($personContractor) > 0){
+                                    for($x=0;$x<count($personContractor);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $personContractor[$x]['deviceId'];
+                                        $type['timestamp'] = $personContractor[$x]['timestamp'];
+                                        $type['lon'] = $personContractor[$x]['lon'];
+                                        $type['lat'] = $personContractor[$x]['lat'];
+                                        $type['fid'] = $personContractor[$x]['fid'];
+                                        $type['name'] = $personContractor[$x]['name'];
+                                        $type['weekSel'] = $personContractor[$x]['weekSel'];
+                                        $type['stime1'] = $personContractor[$x]['stime1'];
+                                        $type['etime1'] = $personContractor[$x]['etime1'];
+                                        $type['stime2'] = $personContractor[$x]['stime2'];
+                                        $type['etime2'] = $personContractor[$x]['etime2'];
+                                        $type['stime3'] = $personContractor[$x]['stime3'];
+                                        $type['etime3'] = $personContractor[$x]['etime3'];
+                                        $type['organId'] = $personContractor[$x]['organId'];
+                                        $type['work'] = $personContractor[$x]['work'];
+                                        $type['minMaxCount'] = $personContractor[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $personContractor[$x]['personOrganId'];
+                                        $type['inRegion'] = $personContractor[$x]['inRegion'];
+                                        $type['mode'] = $personContractor[$x]['mode'];
+                                        $type['type'] = 'personContractor';
+                                        DB::connection('mysql_fwe10')->table('uf_jl_type')->insert($type);
+                                    }
+                                }
+                                if(count($personCaller) > 0){
+                                    for($x=0;$x<count($personCaller);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $personCaller[$x]['deviceId'];
+                                        $type['timestamp'] = $personCaller[$x]['timestamp'];
+                                        $type['lon'] = $personCaller[$x]['lon'];
+                                        $type['lat'] = $personCaller[$x]['lat'];
+                                        $type['fid'] = $personCaller[$x]['fid'];
+                                        $type['name'] = $personCaller[$x]['name'];
+                                        $type['weekSel'] = $personCaller[$x]['weekSel'];
+                                        $type['stime1'] = $personCaller[$x]['stime1'];
+                                        $type['etime1'] = $personCaller[$x]['etime1'];
+                                        $type['stime2'] = $personCaller[$x]['stime2'];
+                                        $type['etime2'] = $personCaller[$x]['etime2'];
+                                        $type['stime3'] = $personCaller[$x]['stime3'];
+                                        $type['etime3'] = $personCaller[$x]['etime3'];
+                                        $type['organId'] = $personCaller[$x]['organId'];
+                                        $type['work'] = $personCaller[$x]['work'];
+                                        $type['minMaxCount'] = $personCaller[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $personCaller[$x]['personOrganId'];
+                                        $type['inRegion'] = $personCaller[$x]['inRegion'];
+                                        $type['mode'] = $personCaller[$x]['mode'];
+                                        $type['type'] = 'personCaller';
+                                        DB::connection('mysql_fwe10')->table('uf_jl_type')->insert($type);
+                                    }
+                                }
+                                if(count($car) > 0){
+                                    for($x=0;$x<count($car);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $car[$x]['deviceId'];
+                                        $type['timestamp'] = $car[$x]['timestamp'];
+                                        $type['lon'] = $car[$x]['lon'];
+                                        $type['lat'] = $car[$x]['lat'];
+                                        $type['fid'] = $car[$x]['fid'];
+                                        $type['name'] = $car[$x]['name'];
+                                        $type['weekSel'] = $car[$x]['weekSel'];
+                                        $type['stime1'] = $car[$x]['stime1'];
+                                        $type['etime1'] = $car[$x]['etime1'];
+                                        $type['stime2'] = $car[$x]['stime2'];
+                                        $type['etime2'] = $car[$x]['etime2'];
+                                        $type['stime3'] = $car[$x]['stime3'];
+                                        $type['etime3'] = $car[$x]['etime3'];
+                                        $type['organId'] = $car[$x]['organId'];
+                                        $type['work'] = $car[$x]['work'];
+                                        $type['minMaxCount'] = $car[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $car[$x]['personOrganId'];
+                                        $type['inRegion'] = $car[$x]['inRegion'];
+                                        $type['mode'] = $car[$x]['mode'];
+                                        $type['type'] = 'persons';
+                                        DB::connection('mysql_fwe10')->table('uf_jl_type')->insert($type);
+                                    }
+                                }
+                            }
+                        }
+                        // dd($id);
+                    }
+                }
+
+                // dd(123);
+            }
+        }
+    }
+
+    //接口第三方调用
+    public function httpRequest($url, $format = 'get', $data = null, $token = null){
+        //设置头信息
+        $headerArray =array("Content-type:application/json;","Accept:application/json");
+
+        if ($token) {
+            $headerArray[] = "Authorization:bearer " . $token;
+        }
+
+        $curl=curl_init();
+        curl_setopt($curl, CURLOPT_URL, $url);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
+        if ($format == 'post') {
+            //post传值设置post传参
+            curl_setopt($curl, CURLOPT_POST, 1);
+            if ($data) {
+                $data = json_encode($data);
+                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
+            }
+        }
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
+        curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
+        $data=json_decode(curl_exec($curl), true);
+        curl_close($curl);
+        //返回接口返回数据
+        return $data;
+    }
+}

+ 100 - 0
app/Console/Commands/VideoQuality.php

@@ -0,0 +1,100 @@
+<?php
+
+namespace App\Console\Commands;
+
+use Illuminate\Console\Command;
+use Illuminate\Support\Facades\Input;
+use Modules\Camera\Entities\CameraList;
+use Modules\Camera\Enum\CameraEnum;
+use Modules\Camera\Services\CameraServices;
+use Modules\Camera\Http\Controllers\Api\TdwyController;
+use Modules\Mine\Entities\MineList;
+use Modules\Mine\Entities\MineListExt;
+use Modules\Mine\Enum\MineEnum;
+use Modules\Mine\Services\MineServices;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Log;
+
+class VideoQuality extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+    protected $signature = 'quality:video';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = '同步海康摄像头质量';
+
+    /**
+     * Create a new command instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Execute the console command.
+     *
+     * @return mixed
+     */
+    public function handle()
+    {
+        $start_time = time();
+        echo '开始时间:'.date('Y-m-d H:i:s');
+        $this->updateCameraList();
+        echo '时长:'.number_format(((time()-$start_time)/60),2).'分钟';
+    }
+
+    public function updateCameraList()
+    {
+        $mine_id = '7138';//麦垛山煤矿
+
+        DB::table('video_quality')->where('mine_id',$mine_id)->delete();
+
+        $mine_list = DB::table('mine_list')->where('degree','like',$mine_id.'%')->pluck('id');
+
+        $camera_list = DB::table('camera_list')->whereIn('mine_id',$mine_list)->get();
+
+        if(count($camera_list) > 0){
+            for($i=0;$i<count($camera_list);$i++){
+                $indexCode = $camera_list[$i]->index_code;
+
+                $result = MineServices::videoQuality($mine_id,$indexCode);
+
+                if($result['data']['list'] && count($result['data']['list']) > 0){
+                    $info = $result['data']['list'];
+                    $data['mine_id'] = $mine_id;
+                    $data['camera_id'] = $camera_list[$i]->id;
+                    $data['scChromaResult'] = $info[0]['scChromaResult'];
+                    $data['scSnowResult'] = $info[0]['scSnowResult'];
+                    $data['scDarkResult'] = $info[0]['scDarkResult'];
+                    $data['inspectDate'] = $info[0]['inspectDate'];
+                    $data['scLumaResult'] = $info[0]['scLumaResult'];
+                    $data['scShakeResult'] = $info[0]['scShakeResult'];
+                    $data['resolution'] = $info[0]['resolution'];
+                    $data['scContrastResult'] = $info[0]['scContrastResult'];
+                    $data['scStreakResult'] = $info[0]['scStreakResult'];
+                    $data['scFrameResult'] = $info[0]['scFrameResult'];
+                    $data['scCoverResult'] = $info[0]['scCoverResult'];
+                    $data['scSignalResult'] = $info[0]['scSignalResult'];
+                    $data['scMonoResult'] = $info[0]['scMonoResult'];
+                    $data['inspectResult'] = $info[0]['inspectResult'];
+                    $data['scBlurResult'] = $info[0]['scBlurResult'];
+                    $data['scSceneResult'] = $info[0]['scSceneResult'];
+                    $data['scFlashResult'] = $info[0]['scFlashResult'];
+
+                    DB::table('video_quality')->insert($data);
+                }
+            }
+        }
+    }
+}

+ 439 - 0
app/Http/Controllers/TestsController.php

@@ -53,6 +53,18 @@ class TestsController {
 
         //区域下(包含子区域)摄像头接口测试
         // $this->camera_all_list();
+
+        //检查摄像头质量
+//        $this->checkCameraQuality();
+
+        //化工人员定位煤制油部门信息录入
+//        $this->mzyBmxxInsert();
+
+        //化工人员定位煤制油区域信息录入
+//        $this->mzyQyxxInsert();
+
+        //化工人员定位精蜡区域信息录入
+//        $this->jlQyxxInsert();
     }
 
     //区域列表接口测试
@@ -98,6 +110,28 @@ class TestsController {
         dd('success');
     }
 
+    //检查摄像头质量
+    public function checkCameraQuality(){
+        $mine_list = DB::table('mine_list')->where('degree','like','968|2308%')->where('deleted_at',null)->pluck('id');
+
+        $camera_list = DB::table('camera_list')->whereIn('mine_id',$mine_list)->where('deleted_at',null)->get();
+
+        $res = [];
+
+        if(count($camera_list) > 0){
+            for($i=0;$i<count($camera_list);$i++){
+
+                $result       = CameraServices::checkCameraQuality(968, $camera_list[$i]->index_code);
+
+                $res[] = $result;
+
+            }
+        }
+
+        dd($res);
+        dd('success');
+    }
+
     //区域下摄像头接口测试
     public function camera_all_list(){
         $parent_id = 7004;
@@ -334,6 +368,382 @@ class TestsController {
         $repeat_arr = array_diff_assoc ( $aa, $unique_arr );
         return $repeat_arr;
     }
+
+    //化工人员定位煤制油部门信息录入
+    public function mzyBmxxInsert(){
+        //获取token
+        $url = 'http://10.186.64.30:8091/chem/api/getToken?username=super&password=meizhiyou';
+
+        $result = $this->httpRequest($url,'post');
+
+        if($result['data']){
+            //获取部门列表
+            $url = 'http://10.186.64.30:8091/chem/api/getOrgans?token='.$result['data'];
+
+            $result2 = $this->httpRequest($url);
+
+            if($result2['data'] && count($result2['data']) > 0){
+                $list = $result2['data'];
+
+                DB::connection('mysql_fwe10')->table('uf_mzy_bmxx')->where('id','!=',null)->delete();
+                // dd($list);
+                for($i=0;$i<count($list);$i++){
+                    $data['id'] = $list[$i]['id'];
+                    $data['token'] = $list[$i]['token'];
+                    $data['organName'] = $list[$i]['organName'];
+                    $data['parentId'] = $list[$i]['parentId'];
+                    $data['manager'] = $list[$i]['manager'];
+                    $data['phone'] = $list[$i]['phone'];
+                    $data['address'] = $list[$i]['address'];
+
+                    DB::connection('mysql_fwe10')->table('uf_mzy_bmxx')->insert($data);
+
+                }
+            }
+        }
+
+        dd('success');
+    }
+
+    //化工人员定位煤制油区域信息录入
+    public function mzyQyxxInsert(){
+        //获取token
+        $url = 'http://10.186.64.30:8091/chem/api/getToken?username=super&password=meizhiyou';
+
+        $result = $this->httpRequest($url,'post');
+
+        if($result['data']){
+            //获取部门列表
+            $url = 'http://10.186.64.30:8091/chem/api/getAreaInfo?token='.$result['data'];
+
+            $result2 = $this->httpRequest($url);
+            // dd($result2);
+            if($result2['data'] && count($result2['data']) > 0){
+                DB::connection('mysql_fwe10')->table('uf_mzy_total')->delete();
+                DB::connection('mysql_fwe10')->table('uf_mzy_parent_counts')->delete();
+                DB::connection('mysql_fwe10')->table('uf_mzy_counts')->delete();
+                DB::connection('mysql_fwe10')->table('uf_mzy_type')->delete();
+                //uf_mzy_total
+                $total['total'] = $result2['data']['total'];
+                $total['staffNumb'] = $result2['data']['staffNumb'];
+                $total['callerNumb'] = $result2['data']['callerNumb'];
+                $total['carNumb'] = $result2['data']['carNumb'];
+                $total['contractorNumb'] = $result2['data']['contractorNumb'];
+                $total['toolcarNumb'] = $result2['data']['toolcarNumb'];
+                DB::connection('mysql_fwe10')->table('uf_mzy_total')->insert($total);
+
+                $counts_list = $result2['data']['counts'];
+                if(count($counts_list) > 0){
+                    for($i=0;$i<count($counts_list);$i++){
+                        //uf_mzy_parent_counts
+                        $pcounts['organName'] = $counts_list[$i]['organName'];
+                        $pcounts['staffNumb'] = $counts_list[$i]['staffNumb'];
+                        $pcounts['contractorNumb'] = $counts_list[$i]['contractorNumb'];
+                        $pcounts['callerNumb'] = $counts_list[$i]['callerNumb'];
+                        $pcounts['carNumb'] = $counts_list[$i]['carNumb'];
+                        $id = DB::connection('mysql_fwe10')->table('uf_mzy_parent_counts')->insertGetId($pcounts);
+                        if(count($counts_list[$i]['counts']) > 0){
+                            for($j=0;$j<count($counts_list[$i]['counts']);$j++){
+                                //uf_mzy_counts
+                                $counts['parent_id'] = $id;
+                                $counts['fid'] = $counts_list[$i]['counts'][$j]['fid'];
+                                $counts['areaName'] = $counts_list[$i]['counts'][$j]['areaName'];
+                                $counts['staffNumb'] = $counts_list[$i]['counts'][$j]['staffNumb'];
+                                $counts['contractorNumb'] = $counts_list[$i]['counts'][$j]['contractorNumb'];
+                                $counts['callerNumb'] = $counts_list[$i]['counts'][$j]['callerNumb'];
+                                $counts['carNumb'] = $counts_list[$i]['counts'][$j]['carNumb'];
+                                $counts['isSafe'] = $counts_list[$i]['counts'][$j]['isSafe'];
+                                DB::connection('mysql_fwe10')->table('uf_mzy_counts')->insert($counts);
+                                $persons = $counts_list[$i]['counts'][$j]['persons'];
+                                $personContractor = $counts_list[$i]['counts'][$j]['personContractor'];
+                                $personCaller = $counts_list[$i]['counts'][$j]['personCaller'];
+                                $car = $counts_list[$i]['counts'][$j]['car'];
+                                if(count($persons) > 0){
+                                    for($x=0;$x<count($persons);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $persons[$x]['deviceId'];
+                                        $type['timestamp'] = $persons[$x]['timestamp'];
+                                        $type['lon'] = $persons[$x]['lon'];
+                                        $type['lat'] = $persons[$x]['lat'];
+                                        $type['fid'] = $persons[$x]['fid'];
+                                        $type['name'] = $persons[$x]['name'];
+                                        $type['weekSel'] = $persons[$x]['weekSel'];
+                                        $type['stime1'] = $persons[$x]['stime1'];
+                                        $type['etime1'] = $persons[$x]['etime1'];
+                                        $type['stime2'] = $persons[$x]['stime2'];
+                                        $type['etime2'] = $persons[$x]['etime2'];
+                                        $type['stime3'] = $persons[$x]['stime3'];
+                                        $type['etime3'] = $persons[$x]['etime3'];
+                                        $type['organId'] = $persons[$x]['organId'];
+                                        $type['work'] = $persons[$x]['work'];
+                                        $type['minMaxCount'] = $persons[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $persons[$x]['personOrganId'];
+                                        $type['inRegion'] = $persons[$x]['inRegion'];
+                                        $type['mode'] = $persons[$x]['mode'];
+                                        $type['type'] = 'persons';
+                                        DB::connection('mysql_fwe10')->table('uf_mzy_type')->insert($type);
+                                    }
+                                }
+                                if(count($personContractor) > 0){
+                                    for($x=0;$x<count($personContractor);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $personContractor[$x]['deviceId'];
+                                        $type['timestamp'] = $personContractor[$x]['timestamp'];
+                                        $type['lon'] = $personContractor[$x]['lon'];
+                                        $type['lat'] = $personContractor[$x]['lat'];
+                                        $type['fid'] = $personContractor[$x]['fid'];
+                                        $type['name'] = $personContractor[$x]['name'];
+                                        $type['weekSel'] = $personContractor[$x]['weekSel'];
+                                        $type['stime1'] = $personContractor[$x]['stime1'];
+                                        $type['etime1'] = $personContractor[$x]['etime1'];
+                                        $type['stime2'] = $personContractor[$x]['stime2'];
+                                        $type['etime2'] = $personContractor[$x]['etime2'];
+                                        $type['stime3'] = $personContractor[$x]['stime3'];
+                                        $type['etime3'] = $personContractor[$x]['etime3'];
+                                        $type['organId'] = $personContractor[$x]['organId'];
+                                        $type['work'] = $personContractor[$x]['work'];
+                                        $type['minMaxCount'] = $personContractor[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $personContractor[$x]['personOrganId'];
+                                        $type['inRegion'] = $personContractor[$x]['inRegion'];
+                                        $type['mode'] = $personContractor[$x]['mode'];
+                                        $type['type'] = 'personContractor';
+                                        DB::connection('mysql_fwe10')->table('uf_mzy_type')->insert($type);
+                                    }
+                                }
+                                if(count($personCaller) > 0){
+                                    for($x=0;$x<count($personCaller);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $personCaller[$x]['deviceId'];
+                                        $type['timestamp'] = $personCaller[$x]['timestamp'];
+                                        $type['lon'] = $personCaller[$x]['lon'];
+                                        $type['lat'] = $personCaller[$x]['lat'];
+                                        $type['fid'] = $personCaller[$x]['fid'];
+                                        $type['name'] = $personCaller[$x]['name'];
+                                        $type['weekSel'] = $personCaller[$x]['weekSel'];
+                                        $type['stime1'] = $personCaller[$x]['stime1'];
+                                        $type['etime1'] = $personCaller[$x]['etime1'];
+                                        $type['stime2'] = $personCaller[$x]['stime2'];
+                                        $type['etime2'] = $personCaller[$x]['etime2'];
+                                        $type['stime3'] = $personCaller[$x]['stime3'];
+                                        $type['etime3'] = $personCaller[$x]['etime3'];
+                                        $type['organId'] = $personCaller[$x]['organId'];
+                                        $type['work'] = $personCaller[$x]['work'];
+                                        $type['minMaxCount'] = $personCaller[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $personCaller[$x]['personOrganId'];
+                                        $type['inRegion'] = $personCaller[$x]['inRegion'];
+                                        $type['mode'] = $personCaller[$x]['mode'];
+                                        $type['type'] = 'personCaller';
+                                        DB::connection('mysql_fwe10')->table('uf_mzy_type')->insert($type);
+                                    }
+                                }
+                                if(count($car) > 0){
+                                    for($x=0;$x<count($car);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $car[$x]['deviceId'];
+                                        $type['timestamp'] = $car[$x]['timestamp'];
+                                        $type['lon'] = $car[$x]['lon'];
+                                        $type['lat'] = $car[$x]['lat'];
+                                        $type['fid'] = $car[$x]['fid'];
+                                        $type['name'] = $car[$x]['name'];
+                                        $type['weekSel'] = $car[$x]['weekSel'];
+                                        $type['stime1'] = $car[$x]['stime1'];
+                                        $type['etime1'] = $car[$x]['etime1'];
+                                        $type['stime2'] = $car[$x]['stime2'];
+                                        $type['etime2'] = $car[$x]['etime2'];
+                                        $type['stime3'] = $car[$x]['stime3'];
+                                        $type['etime3'] = $car[$x]['etime3'];
+                                        $type['organId'] = $car[$x]['organId'];
+                                        $type['work'] = $car[$x]['work'];
+                                        $type['minMaxCount'] = $car[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $car[$x]['personOrganId'];
+                                        $type['inRegion'] = $car[$x]['inRegion'];
+                                        $type['mode'] = $car[$x]['mode'];
+                                        $type['type'] = 'persons';
+                                        DB::connection('mysql_fwe10')->table('uf_mzy_type')->insert($type);
+                                    }
+                                }
+                            }
+                        }
+                        // dd($id);
+                    }
+                }
+
+                // dd(123);
+            }
+        }
+
+        dd('success');
+    }
+
+    //化工人员定位精蜡区域信息录入
+    public function jlQyxxInsert(){
+        //获取token
+        $url = 'http://10.186.64.31:8091/chem/api/getToken?username=test&password=123456';
+
+        $result = $this->httpRequest($url,'post');
+
+        if($result['data']){
+            //获取部门列表
+            $url = 'http://10.186.64.31:8091/chem/api/getAreaInfo?token='.$result['data'];
+
+            $result2 = $this->httpRequest($url);
+            // dd($result2);
+            if($result2['data'] && count($result2['data']) > 0){
+                DB::connection('mysql_fwe10')->table('uf_jl_total')->delete();
+                DB::connection('mysql_fwe10')->table('uf_jl_parent_counts')->delete();
+                DB::connection('mysql_fwe10')->table('uf_jl_counts')->delete();
+                DB::connection('mysql_fwe10')->table('uf_jl_type')->delete();
+                //uf_mzy_total
+                $total['total'] = $result2['data']['total'];
+                $total['staffNumb'] = $result2['data']['staffNumb'];
+                $total['callerNumb'] = $result2['data']['callerNumb'];
+                $total['carNumb'] = $result2['data']['carNumb'];
+                $total['contractorNumb'] = $result2['data']['contractorNumb'];
+                $total['toolcarNumb'] = $result2['data']['toolcarNumb'];
+                DB::connection('mysql_fwe10')->table('uf_jl_total')->insert($total);
+
+                $counts_list = $result2['data']['counts'];
+                if(count($counts_list) > 0){
+                    for($i=0;$i<count($counts_list);$i++){
+                        //uf_mzy_parent_counts
+                        $pcounts['organName'] = $counts_list[$i]['organName'];
+                        $pcounts['staffNumb'] = $counts_list[$i]['staffNumb'];
+                        $pcounts['contractorNumb'] = $counts_list[$i]['contractorNumb'];
+                        $pcounts['callerNumb'] = $counts_list[$i]['callerNumb'];
+                        $pcounts['carNumb'] = $counts_list[$i]['carNumb'];
+                        $id = DB::connection('mysql_fwe10')->table('uf_jl_parent_counts')->insertGetId($pcounts);
+                        if(count($counts_list[$i]['counts']) > 0){
+                            for($j=0;$j<count($counts_list[$i]['counts']);$j++){
+                                //uf_mzy_counts
+                                $counts['parent_id'] = $id;
+                                $counts['fid'] = $counts_list[$i]['counts'][$j]['fid'];
+                                $counts['areaName'] = $counts_list[$i]['counts'][$j]['areaName'];
+                                $counts['staffNumb'] = $counts_list[$i]['counts'][$j]['staffNumb'];
+                                $counts['contractorNumb'] = $counts_list[$i]['counts'][$j]['contractorNumb'];
+                                $counts['callerNumb'] = $counts_list[$i]['counts'][$j]['callerNumb'];
+                                $counts['carNumb'] = $counts_list[$i]['counts'][$j]['carNumb'];
+                                $counts['isSafe'] = $counts_list[$i]['counts'][$j]['isSafe'];
+                                DB::connection('mysql_fwe10')->table('uf_jl_counts')->insert($counts);
+                                $persons = $counts_list[$i]['counts'][$j]['persons'];
+                                $personContractor = $counts_list[$i]['counts'][$j]['personContractor'];
+                                $personCaller = $counts_list[$i]['counts'][$j]['personCaller'];
+                                $car = $counts_list[$i]['counts'][$j]['car'];
+                                if(count($persons) > 0){
+                                    for($x=0;$x<count($persons);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $persons[$x]['deviceId'];
+                                        $type['timestamp'] = $persons[$x]['timestamp'];
+                                        $type['lon'] = $persons[$x]['lon'];
+                                        $type['lat'] = $persons[$x]['lat'];
+                                        $type['fid'] = $persons[$x]['fid'];
+                                        $type['name'] = $persons[$x]['name'];
+                                        $type['weekSel'] = $persons[$x]['weekSel'];
+                                        $type['stime1'] = $persons[$x]['stime1'];
+                                        $type['etime1'] = $persons[$x]['etime1'];
+                                        $type['stime2'] = $persons[$x]['stime2'];
+                                        $type['etime2'] = $persons[$x]['etime2'];
+                                        $type['stime3'] = $persons[$x]['stime3'];
+                                        $type['etime3'] = $persons[$x]['etime3'];
+                                        $type['organId'] = $persons[$x]['organId'];
+                                        $type['work'] = $persons[$x]['work'];
+                                        $type['minMaxCount'] = $persons[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $persons[$x]['personOrganId'];
+                                        $type['inRegion'] = $persons[$x]['inRegion'];
+                                        $type['mode'] = $persons[$x]['mode'];
+                                        $type['type'] = 'persons';
+                                        DB::connection('mysql_fwe10')->table('uf_jl_type')->insert($type);
+                                    }
+                                }
+                                if(count($personContractor) > 0){
+                                    for($x=0;$x<count($personContractor);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $personContractor[$x]['deviceId'];
+                                        $type['timestamp'] = $personContractor[$x]['timestamp'];
+                                        $type['lon'] = $personContractor[$x]['lon'];
+                                        $type['lat'] = $personContractor[$x]['lat'];
+                                        $type['fid'] = $personContractor[$x]['fid'];
+                                        $type['name'] = $personContractor[$x]['name'];
+                                        $type['weekSel'] = $personContractor[$x]['weekSel'];
+                                        $type['stime1'] = $personContractor[$x]['stime1'];
+                                        $type['etime1'] = $personContractor[$x]['etime1'];
+                                        $type['stime2'] = $personContractor[$x]['stime2'];
+                                        $type['etime2'] = $personContractor[$x]['etime2'];
+                                        $type['stime3'] = $personContractor[$x]['stime3'];
+                                        $type['etime3'] = $personContractor[$x]['etime3'];
+                                        $type['organId'] = $personContractor[$x]['organId'];
+                                        $type['work'] = $personContractor[$x]['work'];
+                                        $type['minMaxCount'] = $personContractor[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $personContractor[$x]['personOrganId'];
+                                        $type['inRegion'] = $personContractor[$x]['inRegion'];
+                                        $type['mode'] = $personContractor[$x]['mode'];
+                                        $type['type'] = 'personContractor';
+                                        DB::connection('mysql_fwe10')->table('uf_jl_type')->insert($type);
+                                    }
+                                }
+                                if(count($personCaller) > 0){
+                                    for($x=0;$x<count($personCaller);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $personCaller[$x]['deviceId'];
+                                        $type['timestamp'] = $personCaller[$x]['timestamp'];
+                                        $type['lon'] = $personCaller[$x]['lon'];
+                                        $type['lat'] = $personCaller[$x]['lat'];
+                                        $type['fid'] = $personCaller[$x]['fid'];
+                                        $type['name'] = $personCaller[$x]['name'];
+                                        $type['weekSel'] = $personCaller[$x]['weekSel'];
+                                        $type['stime1'] = $personCaller[$x]['stime1'];
+                                        $type['etime1'] = $personCaller[$x]['etime1'];
+                                        $type['stime2'] = $personCaller[$x]['stime2'];
+                                        $type['etime2'] = $personCaller[$x]['etime2'];
+                                        $type['stime3'] = $personCaller[$x]['stime3'];
+                                        $type['etime3'] = $personCaller[$x]['etime3'];
+                                        $type['organId'] = $personCaller[$x]['organId'];
+                                        $type['work'] = $personCaller[$x]['work'];
+                                        $type['minMaxCount'] = $personCaller[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $personCaller[$x]['personOrganId'];
+                                        $type['inRegion'] = $personCaller[$x]['inRegion'];
+                                        $type['mode'] = $personCaller[$x]['mode'];
+                                        $type['type'] = 'personCaller';
+                                        DB::connection('mysql_fwe10')->table('uf_jl_type')->insert($type);
+                                    }
+                                }
+                                if(count($car) > 0){
+                                    for($x=0;$x<count($car);$x++){
+                                        //uf_mzy_type
+                                        $type['deviceId'] = $car[$x]['deviceId'];
+                                        $type['timestamp'] = $car[$x]['timestamp'];
+                                        $type['lon'] = $car[$x]['lon'];
+                                        $type['lat'] = $car[$x]['lat'];
+                                        $type['fid'] = $car[$x]['fid'];
+                                        $type['name'] = $car[$x]['name'];
+                                        $type['weekSel'] = $car[$x]['weekSel'];
+                                        $type['stime1'] = $car[$x]['stime1'];
+                                        $type['etime1'] = $car[$x]['etime1'];
+                                        $type['stime2'] = $car[$x]['stime2'];
+                                        $type['etime2'] = $car[$x]['etime2'];
+                                        $type['stime3'] = $car[$x]['stime3'];
+                                        $type['etime3'] = $car[$x]['etime3'];
+                                        $type['organId'] = $car[$x]['organId'];
+                                        $type['work'] = $car[$x]['work'];
+                                        $type['minMaxCount'] = $car[$x]['minMaxCount'];
+                                        $type['personOrganId'] = $car[$x]['personOrganId'];
+                                        $type['inRegion'] = $car[$x]['inRegion'];
+                                        $type['mode'] = $car[$x]['mode'];
+                                        $type['type'] = 'persons';
+                                        DB::connection('mysql_fwe10')->table('uf_jl_type')->insert($type);
+                                    }
+                                }
+                            }
+                        }
+                        // dd($id);
+                    }
+                }
+
+                // dd(123);
+            }
+        }
+
+        dd('success');
+    }
     
     public function getDcsApiData() {
         $apiUrl = "http://7.250.4.3:4300/v1/common/GetPointRealDataByPageV3";
@@ -438,4 +848,33 @@ class TestsController {
         }
 
     }
+
+    //接口第三方调用
+    public function httpRequest($url, $format = 'get', $data = null, $token = null){
+        //设置头信息
+        $headerArray =array("Content-type:application/json;","Accept:application/json");
+
+        if ($token) {
+            $headerArray[] = "Authorization:bearer " . $token;
+        }
+
+        $curl=curl_init();
+        curl_setopt($curl, CURLOPT_URL, $url);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
+        if ($format == 'post') {
+            //post传值设置post传参
+            curl_setopt($curl, CURLOPT_POST, 1);
+            if ($data) {
+                $data = json_encode($data);
+                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
+            }
+        }
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
+        curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
+        $data=json_decode(curl_exec($curl), true);
+        curl_close($curl);
+        //返回接口返回数据
+        return $data;
+    }
 }

+ 19 - 0
config/database.php

@@ -260,6 +260,25 @@ return [
                 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
             ]) : [],
         ],
+
+        'mysql_fwe10_eteams' => [
+            'driver'         => env('DB_JJQKUANGYA_CONNECTION', 'mysql'),
+            'host'           => env('DB_JJQKUANGYA_HOST', '10.186.132.64'),
+            'port'           => env('DB_JJQKUANGYA_PORT', '3306'),
+            'database'       => env('DB_JJQKUANGYA_DATABASE', 'eteams'),
+            'username'       => env('DB_JJQKUANGYA_USERNAME', 'ecology'),
+            'password'       => env('DB_JJQKUANGYA_PASSWORD', 'k*SE^kYHnr6mgQcixCW7xoMJ'),
+            'unix_socket'    => '',
+            'charset'        => 'utf8mb4',
+            'collation'      => 'utf8mb4_general_ci',
+            'prefix'         => '',
+            'prefix_indexes' => true,
+            'strict'         => true,
+            'engine'         => null,
+            'options'        => extension_loaded('pdo_mysql') ? array_filter([
+                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+            ]) : [],
+        ],
     ],
 
     /*