Prechádzať zdrojové kódy

Merge branch 'master' of http://git.jieweizhineng.com/ushio/video_system into master

任敬轩 11 mesiacov pred
rodič
commit
336314b89a

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

@@ -21,6 +21,17 @@ use Symfony\Component\HttpFoundation\Response;
 
 class ApiController extends BaseController
 {
+    //网格化录入
+    public function addConition(Request $request)
+    {
+        $params = Input::get();
+        if (!$params) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+        $result = ApiService::addConition($params);
+        return self::successResponse($result);
+    }
+
     //网格化人员轨迹查询条件
     public function getQueryConition(Request $request)
     {
@@ -44,4 +55,57 @@ class ApiController extends BaseController
         $result = ApiService::getPersonTravel($person_id, $depart, $date);
         return self::successResponse($result);
     }
+
+    //网格化巡检记录查询条件
+    public function getResultConition()
+    {
+        $result = ApiService::getResultConition();
+        return self::successResponse($result);
+    }
+
+    //网格化巡检记录查询
+    public function getResultRecord()
+    {
+        $depart = Input::get('depart', 'all');
+        $date_type = Input::get('date_type', 'week');
+        $result = ApiService::getResultRecord($depart, $date_type);
+        return self::successResponse($result);
+    }
+
+    //网格化巡检记录列表
+    public function getResultList()
+    {
+        $person_id = Input::get('person_id', '');
+        $depart = Input::get('depart', 'all');
+        $date_type = Input::get('date_type', 'week');
+        if (!$person_id) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+        $result = ApiService::getResultList($person_id, $depart, $date_type);
+        return self::successResponse($result);
+    }
+
+    //网格化巡检记录列表明细
+    public function getResultDlist()
+    {
+        $person_id = Input::get('person_id', '');
+        $depart = Input::get('depart', '');
+        $date = Input::get('date', '');
+        if (!$person_id || !$depart || !$date) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+        $result = ApiService::getResultDlist($person_id, $depart, $date);
+        return self::successResponse($result);
+    }
+
+    //网格化巡检记录明细
+    public function getResultDetail()
+    {
+        $id = Input::get('id', '');
+        if (!$id) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+        $result = ApiService::getResultDetails($id);
+        return self::successResponse($result);
+    }
 }

+ 12 - 0
Modules/Admin/Routes/api.php

@@ -22,8 +22,20 @@ Route::namespace('Api')->group(function () {
     Route::post('oauth/token', 'TokenController@token');
     Route::post('check_token', 'TokenController@checkToken');
 
+    //网格化录入
+    Route::post('fanwei/add_conition', 'ApiController@addConition');
     //网格化人员轨迹查询条件
     Route::post('fanwei/get_query_conition', 'ApiController@getQueryConition');
     //网格化人员轨迹
     Route::post('fanwei/get_person_travel', 'ApiController@getPersonTravel');
+    //网格化巡检记录查询条件
+    Route::post('fanwei/get_result_conition', 'ApiController@getResultConition');
+    //网格化巡检记录查询
+    Route::post('fanwei/get_result_record', 'ApiController@getResultRecord');
+    //网格化巡检记录列表
+    Route::post('fanwei/get_result_list', 'ApiController@getResultList');
+    //网格化巡检记录列表明细
+    Route::post('fanwei/get_result_dlist', 'ApiController@getResultDlist');
+    //网格化巡检记录明细
+    Route::post('fanwei/get_result_detail', 'ApiController@getResultDetail');
 });

+ 247 - 2
Modules/Admin/Services/ApiService.php

@@ -21,6 +21,31 @@ class ApiService{
 
     }
 
+    //网格化录入
+    public static function addConition($params)
+    {
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $insert = [
+            'lrr'  => $params['lrr'],
+            'dwmc' => $params['dwmc'],
+            'xjdw' => $params['xjdw'],
+            'jcqy' => $params['jcqy'],
+            'jclx' => $params['jclx'],
+            'lrsj' => $params['lrsj'],
+            'jcwt' => $params['jcwt'],
+            'wtms' => $params['wtms'],
+            'dkpz' => $params['dkpz'],
+        ];
+
+        $res = DB::connection('mysql_fwview')->table('uf_wghgl_new')->insert($insert);
+
+        return $result;
+    }
+
+    //网格化人员轨迹查询条件
     public static function getQueryConitions($date = '')
     {
         $result['status'] = true;
@@ -45,7 +70,7 @@ class ApiService{
             ];
             $query = DB::connection('mysql_fwview')->table('uf_wghgl_new')
                        ->join('hrmresource', 'uf_wghgl_new.lrr', '=', 'hrmresource.id')
-                       ->where('xjdw1', $depart_name)
+                       ->where('xjdw', $depart_name)
                        ->where('lrsj', 'like', '%' . $date . '%')
                        ->groupBy('lrr')->select(
                             [
@@ -62,6 +87,7 @@ class ApiService{
         return $result;
     }
 
+    //网格化人员轨迹
     public static function getPersonTravel($person_id, $depart, $date = '')
     {
         $result['status'] = true;
@@ -78,7 +104,7 @@ class ApiService{
         $query = DB::connection('mysql_fwview')->table('uf_wghgl_new')
                    ->where('lrr', $person_id)
                    ->where('lrsj', 'like', '%' . $date . '%')
-                   ->where('xjdw1', $depart)
+                   ->where('xjdw', $depart)
                    ->orderBy('lrsj', 'asc')->get();
         $query = json_decode($query);
         if ($query) {
@@ -106,6 +132,225 @@ class ApiService{
             $result['data'] = $res;
         }
 
+        return $result;
+    }
+
+    //网格化巡检记录查询条件
+    public static function getResultConition()
+    {
+        $result['status'] = true;
+        $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_arr = [];
+        foreach ($depart as $key => $val) {
+            $depart_name = str_replace('洗选中心', '', $val->DEPARTMENTNAME);
+            $depart_arr[$key] = $depart_name;
+        }
+
+        $result['data'] = $depart_arr;
+
+        return $result;
+    }
+
+    //网格化巡检记录查询
+    public static function getResultRecord($depart = 'all', $date_type = 'week')
+    {
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $query = DB::connection('mysql_fwview')->table('uf_wghgl_new');
+
+        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') {
+            $query = $query->where(DB::raw('QUARTER(lrsj)'), DB::raw('QUARTER(CURDATE())'));
+        } 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 ($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;
+            }
+        }
+
+        $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;
+
+        return $result;
+    }
+
+    //网格化巡检记录列表
+    public static function getResultList($person_id, $depart = 'all', $date_type = 'week')
+    {
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $query = DB::connection('mysql_fwview')->table('uf_wghgl_new')->where('lrr', $person_id);
+
+        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') {
+            $query = $query->where(DB::raw('QUARTER(lrsj)'), DB::raw('QUARTER(CURDATE())'));
+        } else {
+            $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();
+
+        $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 ($detail >= $allcount) {
+                $data[] = [
+                    'lastname'   => $lastname,
+                    'person_id'  => $person_id,
+                    'depart'     => $val->xjdw,
+                    'date'       => $val->lrdate
+                ];
+            } else {
+                continue;
+            }
+        }
+
+        $data_arr = array_column($data, 'date');
+        array_multisort($data_arr, SORT_DESC, $data);
+
+        $result['data']['list'] = $data;
+
+        return $result;
+    }
+
+    //网格化巡检记录列表明细
+    public static function getResultDlist($person_id, $depart, $date)
+    {
+
+        $result['status'] = true;
+        $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 = json_decode($query);
+
+        $result['data'] = $query;
+
+        return $result;
+    }
+
+    //网格化巡检记录明细
+    public static function getResultDetails($id)
+    {
+        $result['status'] = true;
+        $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 = json_decode($query);
+
+        $result['data'] = $query;
 
         return $result;
     }