소스 검색

全流程接口修改

任敬轩 4 달 전
부모
커밋
fd48d27717
1개의 변경된 파일45개의 추가작업 그리고 82개의 파일을 삭제
  1. 45 82
      Modules/Admin/Services/ApiService.php

+ 45 - 82
Modules/Admin/Services/ApiService.php

@@ -274,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') {
@@ -287,59 +285,41 @@ class ApiService{
         } else {
             $query = $query->where(DB::raw('WEEK(lrsj)'), DB::raw('WEEK(CURDATE())'));
         }
+        $query = $query->get();
 
-        $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;
+        $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;
-//            }
         }
 
-        $data_arr = array_column($data, 'count');
-        array_multisort($data_arr, SORT_DESC, $data);
+        $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_arr = array_column($pie, 'value');
-        array_multisort($pie_arr, SORT_DESC, $pie);
+                $pie[$i]['name'] = $lrr[0];
+                $pie[$i]['value'] = $count;
+            }
+        }
 
-        $result['data']['list'] = $data;
-        $result['data']['pie']  = $pie;
+        $result['data']['list'] = $list;
+        $result['data']['pie'] = $pie;
 
         return $result;
     }
@@ -351,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);
@@ -365,42 +345,25 @@ 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(
+            [
+                'xjdw',
+                DB::raw('DATE(lrsj) as lrdate'),
+                'lrr'
+            ]
+        )->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();
+            $lrr = explode('|',$val->lrr);
 
-            $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;
-            }
+            $data[] = [
+                'lastname'   => $lrr[0],
+                'person_id'  => $person_id,
+                'depart'     => $val->xjdw,
+                'date'       => $val->lrdate
+            ];
 
-            if ($detail >= $allcount) {
-                $data[] = [
-                    'lastname'   => $lastname,
-                    'person_id'  => $person_id,
-                    'depart'     => $val->xjdw,
-                    'date'       => $val->lrdate
-                ];
-            } else {
-                continue;
-            }
         }
 
         $data_arr = array_column($data, 'date');