ソースを参照

修改网格化接口

qiuzijian 11 ヶ月 前
コミット
3ca22d1917

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

@@ -108,4 +108,18 @@ class ApiController extends BaseController
         $result = ApiService::getResultDetails($id);
         return self::successResponse($result);
     }
+
+    //网格化巡检记录
+    public function getFinalList()
+    {
+        $start_date = Input::get('start_date', '');
+        $end_date = Input::get('end_date', '');
+        $depart = Input::get('depart', '');
+        $person_id = Input::get('person_id', '');
+        if (!$start_date || !$end_date) {
+            return self::errorResponse(ApiEnum::STATUS_CODE_EMPTY);
+        }
+        $result = ApiService::getFinalList($start_date, $end_date, $depart, $person_id);
+        return self::successResponse($result);
+    }
 }

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

@@ -38,4 +38,6 @@ Route::namespace('Api')->group(function () {
     Route::post('fanwei/get_result_dlist', 'ApiController@getResultDlist');
     //网格化巡检记录明细
     Route::post('fanwei/get_result_detail', 'ApiController@getResultDetail');
+    //网格化巡检记录
+    Route::post('fanwei/get_final_list', 'ApiController@getFinalList');
 });

+ 69 - 0
Modules/Admin/Services/ApiService.php

@@ -354,4 +354,73 @@ class ApiService{
 
         return $result;
     }
+
+    //网格化巡检记录
+    public static function getFinalList($start_date, $end_date, $depart = '', $person_id = '')
+    {
+        $result['status'] = true;
+        $result['msg']    = ApiEnum::RETURN_SUCCESS;
+        $result['data']   = [];
+
+        $query = DB::connection('mysql_fwview')->table('uf_wghgl_new');
+
+        if ($start_date == $end_date) {
+            $query = $query->where('lrsj', 'like', $start_date . '%');
+        } else {
+            $query = $query->where('lrsj', '>=', $start_date)->where('lrsj', '<=', $end_date);
+        }
+
+        if ($depart) {
+            $query = $query->where('xjdw', $depart);
+        }
+
+        if ($person_id) {
+            $query = $query->where('lrr', $person_id);
+        }
+
+        $query = $query->orderBy('lrsj', 'desc')->groupBy('lrdate', 'xjdw', 'lrr')
+                       ->select(
+                           [
+                               DB::raw('DATE(lrsj) as lrdate'),
+                               'xjdw',
+                               'lrr'
+                           ]
+                       )
+                       ->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 ($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
+                ];
+            }
+        }
+
+        $result['data'] = $data;
+
+        return $result;
+    }
 }