cqp 10 сар өмнө
parent
commit
7b0bdb71fa

+ 14 - 0
app/Http/Controllers/Api/EmployeeController.php

@@ -260,6 +260,20 @@ class EmployeeController extends BaseController
 
     }
 
+    public function departOaList(Request $request)
+    {
+        $service = new EmployeeService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->departOaList($request->all(),$user);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+
+    }
+
     public function teamEdit(Request $request)
     {
         $service = new EmployeeService();

+ 48 - 3
app/Service/EmployeeService.php

@@ -868,9 +868,6 @@ class EmployeeService extends Service
         return [200,['data' => $list,'tree' => $list_tree]];
     }
 
-
-
-
     /**
      * 部门参数规则
      * @param $data
@@ -937,6 +934,54 @@ class EmployeeService extends Service
         return $bool;
     }
 
+    public function departOaList($data,$user){
+        if(! isset($data['parent_id'])) return [false, '接口参数不存在'];
+
+        $return = [
+            'childDepartments' => [],
+            'employees' => [],
+            'titleDepartments' => [],
+        ];
+        if(empty($data['parent_id'])){
+            $depart = Depart::where('del_time',0)
+                ->where('parent_id',0)
+                ->select('id','parent_id as parentId','code as departmentKey','title as departmentName')
+                ->get()->toArray();
+            $return['childDepartments'] = $depart;
+            $employee_id = EmployeeDepartPermission::whereIn('depart_id',array_column($depart,'id'))
+                ->select('employee_id')
+                ->get()->toArray();
+            $employee_id = array_unique(array_column($employee_id,'employee_id'));
+            $employee = Employee::whereIn('id',$employee_id)
+                ->select('id','emp_name as employeeName')
+                ->get()->toArray();
+            $return['employees'] = $employee;
+        }else{
+            $depart = Depart::where('del_time',0)
+                ->where('parent_id',$data['parent_id'])
+                ->orWhere('id',$data['parent_id'])
+                ->select('id','parent_id as parentId','code as departmentKey','title as departmentName')
+                ->get()->toArray();
+            $childDepartments = $titleDepartments = [];
+            foreach ($depart as $value){
+                if($value['parent_id'] == $data['parent_id']) $childDepartments[] = $value;
+                if($value['id'] == $data['parent_id']) $titleDepartments[] = $value;
+            }
+            $return['childDepartments'] = $childDepartments;
+            $return['titleDepartments'] = $titleDepartments;
+            $employee_id = EmployeeDepartPermission::whereIn('depart_id',array_column($childDepartments,'id'))
+                ->select('employee_id')
+                ->get()->toArray();
+            $employee_id = array_unique(array_column($employee_id,'employee_id'));
+            $employee = Employee::whereIn('id',$employee_id)
+                ->select('id','emp_name as employeeName')
+                ->get()->toArray();
+            $return['employees'] = $employee;
+        }
+
+        return [true, $return];
+    }
+
     /**
      * 班组编辑
      * @param $data

+ 1 - 0
routes/api.php

@@ -75,6 +75,7 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('departEdit', 'Api\EmployeeController@departEdit');
     $route->any('departDel', 'Api\EmployeeController@departDel');
     $route->any('departList', 'Api\EmployeeController@departList');
+    $route->any('departOaList', 'Api\EmployeeController@departOaList');
 
     $route->any('employeeSampleEdit', 'Api\EmployeeController@employeeSampleEdit');
     $route->any('employeeAdd', 'Api\EmployeeController@employeeAdd');