Procházet zdrojové kódy

全流程巡检接口

任敬轩 před 1 týdnem
rodič
revize
208ad4f79b

+ 47 - 2
Modules/Admin/Http/Controllers/Api/ApiController.php

@@ -86,10 +86,55 @@ class ApiController extends BaseController
 
         $result['status'] = true;
         $result['msg']    = ApiEnum::RETURN_SUCCESS;
-        $result['data']   = [];
 
         $data = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where(DB::raw('QUARTER(lrsj)'), DB::raw('QUARTER(CURDATE())'))->pluck('xjdw')->toArray();
-        dd($data);
+        $counts = array_count_values($data);// 1. 统计每个值的出现次数
+        arsort($counts);// 2. 按出现次数降序排序
+        $depart = array_keys($counts);// 3. 只保留键(去重),并按频率排序
+        $result['data']['depart_list'] = $depart;
+
+        $list = [];
+        if(count($depart) > 0){
+            for($i=0;$i<count($depart);$i++){
+                //巡检人
+                $people_list = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')
+                    ->where('xjdw', $depart[$i])
+                    ->where('lrsj', 'like', '%' . $date . '%')
+                    ->groupBy('lrr')->select(
+                        [
+                            'lrr'
+                        ]
+                    )->get();
+                if(count($people_list) > 0){
+                    for($j=0;$j<count($people_list);$j++){
+                        $people_name = explode('|',$people_list[$j]->lrr);
+                        //查职务
+                        $people = DB::connection('mysql_fwe10')->table('uf_zhxx_qlczgry')->where('zgrxm',$people_name[0])->where('IS_DELETE',0)->first();
+
+                        //全部单位
+                        $unit_list = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcqyzd')->where('szxmc',$depart[$i])->where('IS_DELETE',0)->pluck('qymc');
+
+                        //巡检单位数
+                        $record_list = DB::connection('mysql_fwe10')->table('uf_zhxx_qlcxjjl')->where('xjdw', $depart[$i])->where('lrsj', 'like', '%' . $date . '%')->where('lrr',$people_list[$j]->lrr)->groupBy('xjqy')->select(['xjqy'])->get();
+
+                        if(count($unit_list) == count($record_list)){
+                            $color = 'green';
+                        }else{
+                            $color = 'red';
+                        }
+
+                        array_push($list,[
+                            'depart' => $depart[$i],
+                            'name'   => $people_name[0],
+                            'zw'     => $people->zw,
+                            'color'  => $color
+                        ]);
+                    }
+                }
+            }
+        }
+
+        $result['data']['list'] = $list;
 
         return self::successResponse($result);
     }