cqp 2 месяцев назад
Родитель
Сommit
6e3f3050d0

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

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

+ 4 - 3
app/Model/Employee.php

@@ -11,7 +11,7 @@ class Employee extends DataScopeBaseModel
     const CREATED_AT = 'crt_time';
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
     protected $dateFormat = 'U';
-    public static $field = ['number','mobile','title','id','is_admin', 'account', 'crt_time', 'state', 'education', 'major', 'id_card','p_title','sex', 'entrust_type', 'man_type'];
+    public static $field = ['number','mobile','title','id','is_admin', 'account', 'crt_time', 'state', 'education', 'major', 'id_card','p_title','sex', 'entrust_type', 'man_type', 'position'];
     const SPECIAL_ADMIN = 1;
     const SPECIAL_ADMIN = 1;
     const USE = 1;
     const USE = 1;
     const NOT_USE = 2;
     const NOT_USE = 2;
@@ -58,11 +58,12 @@ class Employee extends DataScopeBaseModel
         self::TYPE_THREE => '休假',
         self::TYPE_THREE => '休假',
     ];
     ];
 
 
+    //是否技术研究人员
     const MAN_TYPE_ONE = 1;
     const MAN_TYPE_ONE = 1;
     const MAN_TYPE_TWO = 2;
     const MAN_TYPE_TWO = 2;
     const Man_Type = [
     const Man_Type = [
-        self::MAN_TYPE_ONE => '研究人员',
-        self::MAN_TYPE_TWO => '技术人员',
+        self::MAN_TYPE_ONE => '',
+        self::MAN_TYPE_TWO => '',
     ];
     ];
 
 
     const WT_TYPE_ZERO = 0;
     const WT_TYPE_ZERO = 0;

+ 73 - 15
app/Service/EmployeeService.php

@@ -7,6 +7,7 @@ use App\Model\Depart;
 use App\Model\Employee;
 use App\Model\Employee;
 use App\Model\EmployeeDepartPermission;
 use App\Model\EmployeeDepartPermission;
 use App\Model\EmployeeDetails;
 use App\Model\EmployeeDetails;
+use App\Model\EmployeeFile;
 use App\Model\EmployeeRole;
 use App\Model\EmployeeRole;
 use App\Model\EmployeeWorkRange;
 use App\Model\EmployeeWorkRange;
 use App\Model\Role;
 use App\Model\Role;
@@ -28,6 +29,7 @@ class EmployeeService extends Service
             $model = new Employee();
             $model = new Employee();
             $model = $model->where('id',$user['id'])->first();
             $model = $model->where('id',$user['id'])->first();
             $model->password = Hash::make($data['new_password']);
             $model->password = Hash::make($data['new_password']);
+            $model->p_version = $model->p_version + 1;
             $model->save();
             $model->save();
 
 
             DB::commit();
             DB::commit();
@@ -68,6 +70,7 @@ class EmployeeService extends Service
             $model->education = $data['education'] ?? "";
             $model->education = $data['education'] ?? "";
             $model->id_card = $data['id_card'] ?? "";
             $model->id_card = $data['id_card'] ?? "";
             $model->major = $data['major'] ?? "";
             $model->major = $data['major'] ?? "";
+            $model->position = $data['position'] ?? "";
             $model->p_title = $data['p_title'] ?? "";
             $model->p_title = $data['p_title'] ?? "";
             $model->state = $data['state'] ?? 0;
             $model->state = $data['state'] ?? 0;
             $model->is_admin = $data['is_admin'] ?? 0;
             $model->is_admin = $data['is_admin'] ?? 0;
@@ -79,6 +82,7 @@ class EmployeeService extends Service
             }
             }
             $model->save();
             $model->save();
 
 
+            $time = time();
             EmployeeDepartPermission::where('employee_id',$data['id'])->delete();
             EmployeeDepartPermission::where('employee_id',$data['id'])->delete();
             if(isset($data['depart'])){
             if(isset($data['depart'])){
                 $insert = [];
                 $insert = [];
@@ -93,7 +97,7 @@ class EmployeeService extends Service
             }
             }
 
 
             EmployeeRole::where('employee_id',$data['id'])->update([
             EmployeeRole::where('employee_id',$data['id'])->update([
-                'del_time' => time()
+                'del_time' => $time
             ]);
             ]);
             if(isset($data['role'])){
             if(isset($data['role'])){
                 $insert = [];
                 $insert = [];
@@ -101,8 +105,7 @@ class EmployeeService extends Service
                     $insert[] = [
                     $insert[] = [
                         'employee_id' => $model->id,
                         'employee_id' => $model->id,
                         'role_id' => $value,
                         'role_id' => $value,
-                        'crt_time' => time(),
-                        'upd_time' => time(),
+                        'crt_time' => $time,
                     ];
                     ];
                 }
                 }
                 EmployeeRole::insert($insert);
                 EmployeeRole::insert($insert);
@@ -121,19 +124,39 @@ class EmployeeService extends Service
                         'total_work_min' => $value['total_work_min'],
                         'total_work_min' => $value['total_work_min'],
                         'top_depart_id' => $value['top_depart_id'],
                         'top_depart_id' => $value['top_depart_id'],
                         'crt_time' => time(),
                         'crt_time' => time(),
-                        'upd_time' => time(),
                     ];
                     ];
                 }
                 }
                 EmployeeWorkRange::insert($insert);
                 EmployeeWorkRange::insert($insert);
             }
             }
 
 
+            $old = EmployeeFile::where('del_time',0)
+                ->where('employee_id',$user['id'])
+                ->pluck('file')
+                ->toArray();
+
+            EmployeeFile::where('del_time',0)
+                ->where('employee_id',$user['id'])
+                ->update(['del_time' => $time]);
+
+            $new = [];
+            $insert = [];
+            if(! empty($data['img_url'])){
+                $insert[] = [
+                    'employee_id' => $user['id'],
+                    'file' => $data['img_url'],
+                    'crt_time' => $time,
+                ];
+                EmployeeFile::insert($insert);
+                $new[] = $data['img_url'];
+            }
+
             DB::commit();
             DB::commit();
         }catch (\Exception $exception){
         }catch (\Exception $exception){
             DB::rollBack();
             DB::rollBack();
             return [false, $exception->getMessage()];
             return [false, $exception->getMessage()];
         }
         }
 
 
-        return [true,''];
+        return [true, ['file' => ['new' => $new, 'old' => $old]]];
     }
     }
 
 
     public function employeeAdd($data,$user){
     public function employeeAdd($data,$user){
@@ -150,6 +173,7 @@ class EmployeeService extends Service
             $model->education = $data['education'] ?? "";
             $model->education = $data['education'] ?? "";
             $model->id_card = $data['id_card'] ?? "";
             $model->id_card = $data['id_card'] ?? "";
             $model->major = $data['major'] ?? "";
             $model->major = $data['major'] ?? "";
+            $model->position = $data['position'] ?? "";
             $model->p_title = $data['p_title'] ?? "";
             $model->p_title = $data['p_title'] ?? "";
             $model->state = $data['state'] ?? 0;
             $model->state = $data['state'] ?? 0;
             $model->crt_id = $user['id'];
             $model->crt_id = $user['id'];
@@ -161,6 +185,7 @@ class EmployeeService extends Service
             $model->top_depart_id = $data['top_depart_id'];
             $model->top_depart_id = $data['top_depart_id'];
             $model->save();
             $model->save();
 
 
+            $time = time();
             if(isset($data['depart'])){
             if(isset($data['depart'])){
                 $insert = [];
                 $insert = [];
                 foreach ($data['depart'] as $value){
                 foreach ($data['depart'] as $value){
@@ -179,8 +204,7 @@ class EmployeeService extends Service
                     $insert[] = [
                     $insert[] = [
                         'employee_id' => $model->id,
                         'employee_id' => $model->id,
                         'role_id' => $value,
                         'role_id' => $value,
-                        'crt_time' => time(),
-                        'upd_time' => time(),
+                        'crt_time' => $time,
                     ];
                     ];
                 }
                 }
                 EmployeeRole::insert($insert);
                 EmployeeRole::insert($insert);
@@ -197,20 +221,31 @@ class EmployeeService extends Service
                         'end_time_min' => $value['end_time_min'],
                         'end_time_min' => $value['end_time_min'],
                         'total_work_min' => $value['total_work_min'],
                         'total_work_min' => $value['total_work_min'],
                         'top_depart_id' => $value['top_depart_id'],
                         'top_depart_id' => $value['top_depart_id'],
-                        'crt_time' => time(),
-                        'upd_time' => time(),
+                        'crt_time' => $time,
                     ];
                     ];
                 }
                 }
                 EmployeeWorkRange::insert($insert);
                 EmployeeWorkRange::insert($insert);
             }
             }
 
 
+            $new = [];
+            $insert = [];
+            if(! empty($data['img_url'])){
+                $insert[] = [
+                    'employee_id' => $user['id'],
+                    'file' => $data['img_url'],
+                    'crt_time' => $time,
+                ];
+                EmployeeFile::insert($insert);
+                $new[] = $data['img_url'];
+            }
+
             DB::commit();
             DB::commit();
         }catch (Exception $e){
         }catch (Exception $e){
             DB::rollBack();
             DB::rollBack();
             return [false, $e->getMessage()];
             return [false, $e->getMessage()];
         }
         }
 
 
-        return [true,''];
+        return [true, ['file' => ['new' => $new]]];
     }
     }
 
 
     public function employeeDel($data){
     public function employeeDel($data){
@@ -229,13 +264,18 @@ class EmployeeService extends Service
             EmployeeDepartPermission::whereIn('employee_id',$data['id'])->delete();
             EmployeeDepartPermission::whereIn('employee_id',$data['id'])->delete();
             EmployeeWorkRange::whereIn('employee_id',$data['id'])->delete();
             EmployeeWorkRange::whereIn('employee_id',$data['id'])->delete();
 
 
+            $old = EmployeeFile::where('del_time',0)
+                ->whereIn('employee_id',$data['id'])
+                ->pluck('file')
+                ->toArray();
+
             DB::commit();
             DB::commit();
         }catch (\Exception $exception){
         }catch (\Exception $exception){
             DB::rollBack();
             DB::rollBack();
             return [false,$exception->getMessage()];
             return [false,$exception->getMessage()];
         }
         }
 
 
-        return [true, ''];
+        return [true,  ['file' => ['old' => $old]]];
     }
     }
 
 
     public function employeeDetail($data, $user){
     public function employeeDetail($data, $user){
@@ -246,6 +286,23 @@ class EmployeeService extends Service
         return [true, $user];
         return [true, $user];
     }
     }
 
 
+    public function getEmployeeImg($data, $user){
+        $file = EmployeeFile::where('del_time',0)
+            ->where('employee_id',$user['id'])
+            ->select('file')
+            ->get()->toArray();
+        $file = array_column($file,'file');
+        $file = $file[0] ?? "";
+        $img_str = "";
+        $timeStamp = 86400;
+        if(! empty($file)){
+            $fileUploadService = new FileUploadService();
+            $img_str = $fileUploadService->getFileShow($file, $timeStamp);
+        }
+
+        return [true, ['img_url' => $img_str]];
+    }
+
     public function employeeCommon($data,$user, $field = []){
     public function employeeCommon($data,$user, $field = []){
         if(empty($field)) $field = Employee::$field;
         if(empty($field)) $field = Employee::$field;
 
 
@@ -569,6 +626,7 @@ class EmployeeService extends Service
         if(! empty($data['sex']) && ! isset(Employee::SEX_TYPE[$data['sex']])) return [false, '性别不存在'];
         if(! empty($data['sex']) && ! isset(Employee::SEX_TYPE[$data['sex']])) return [false, '性别不存在'];
         if(empty($data['mobile'])) return [false,'联系电话不能为空'];
         if(empty($data['mobile'])) return [false,'联系电话不能为空'];
 //        if(! $this->isValidPhone($data['mobile'])) return [false, '手机号码格式错误'];
 //        if(! $this->isValidPhone($data['mobile'])) return [false, '手机号码格式错误'];
+        if(empty($data['major'])) return [false, '专业领域不能为空'];
         if(! empty($data['education']) && ! isset(Employee::Education[$data['education']])) return [false, '学历不存在'];
         if(! empty($data['education']) && ! isset(Employee::Education[$data['education']])) return [false, '学历不存在'];
         if(empty($data['id_card'])) return [false, '身份证号不能为空'];
         if(empty($data['id_card'])) return [false, '身份证号不能为空'];
         if(empty($data['depart'])) return [false,'部门不能为空'];
         if(empty($data['depart'])) return [false,'部门不能为空'];
@@ -580,10 +638,10 @@ class EmployeeService extends Service
             if(mb_strlen($data['password']) < 6) return [false, '密码长度不得小于6位长度'];
             if(mb_strlen($data['password']) < 6) return [false, '密码长度不得小于6位长度'];
             if(empty($data['role'])) return [false, '角色不能为空'];
             if(empty($data['role'])) return [false, '角色不能为空'];
         }
         }
-        if(empty($data['man_type'])) return [false,'人员类别不能为空'];
-        if(! isset(Employee::Man_Type[$data['man_type']])) return [false,'人员类别不存在'];
-//        if(empty($data['entrust_type'])) return [false,'委托方式不能为空'];
-//        if(! isset(Employee::WT_Type[$data['entrust_type']])) return [false,'委托方式不存在'];
+        if(empty($data['man_type'])) return [false,'是否为技术研究人员不能为空'];
+        if(! isset(Employee::Man_Type[$data['man_type']])) return [false,'是否为技术研究人员不存在'];
+        if(! isset($data['entrust_type'])) return [false,'委托方式不能为空'];
+        if(! isset(Employee::WT_Type[$data['entrust_type']])) return [false,'委托方式不存在'];
         $data['top_depart_id'] = $user['top_depart_id'];
         $data['top_depart_id'] = $user['top_depart_id'];
 
 
         if(! empty($data['work_range'])){
         if(! empty($data['work_range'])){

+ 24 - 2
config/excel/employee.php

@@ -61,11 +61,22 @@ return [
             'key' =>'major',
             'key' =>'major',
             'export' =>'major',
             'export' =>'major',
             'value' => '专业领域',
             'value' => '专业领域',
-            'required' => false,
+            'required' => true,
             'is_main' => true,
             'is_main' => true,
             'default' => "",
             'default' => "",
             'unique' => false,
             'unique' => false,
             'enums' => [],
             'enums' => [],
+            'comments' => '必填'
+        ],
+        [
+            'key' =>'position',
+            'export' =>'position',
+            'value' => '岗位',
+            'required' => false,
+            'is_main' => true,
+            'unique' => false,
+            'enums' => [],
+            'default' => "",
             'comments' => ''
             'comments' => ''
         ],
         ],
         [
         [
@@ -93,7 +104,7 @@ return [
         [
         [
             'key' =>'man_type',
             'key' =>'man_type',
             'export' =>'man_type_title',
             'export' =>'man_type_title',
-            'value' => '人员类别',
+            'value' => '是否为技术研究人员',
             'required' => true,
             'required' => true,
             'is_main' => true,
             'is_main' => true,
             'unique' => false,
             'unique' => false,
@@ -101,6 +112,17 @@ return [
             'default' => 0,
             'default' => 0,
             'comments' => "必填"
             'comments' => "必填"
         ],
         ],
+        [
+            'key' =>'entrust_type',
+            'export' =>'entrust_type_title',
+            'value' => '委托类型',
+            'required' => false,
+            'is_main' => true,
+            'unique' => false,
+            'enums' => array_values(\App\Model\Employee::WT_Type),
+            'default' => \App\Model\Employee::WT_TYPE_ZERO,
+            'comments' => "必填"
+        ],
         [
         [
             'key' =>'state',
             'key' =>'state',
             'export' =>'state_title',
             'export' =>'state_title',

+ 3 - 3
routes/api.php

@@ -45,10 +45,10 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('employeeManageEdit', 'Api\EmployeeController@employeeManageEdit')->name('only.admin');
     $route->any('employeeManageEdit', 'Api\EmployeeController@employeeManageEdit')->name('only.admin');
 
 
     //人员
     //人员
-    $route->any('employeeAdd', 'Api\EmployeeController@employeeAdd')->name('employee.add');
-    $route->any('employeeEdit', 'Api\EmployeeController@employeeEdit')->name('employee.edit');
+    $route->any('employeeAdd', 'Api\EmployeeController@employeeAdd')->middleware('OssFileDeal');
+    $route->any('employeeEdit', 'Api\EmployeeController@employeeEdit')->middleware('OssFileDeal');
     $route->any('employeeEditOther', 'Api\EmployeeController@employeeEditOther')->name('employee.editPassword');
     $route->any('employeeEditOther', 'Api\EmployeeController@employeeEditOther')->name('employee.editPassword');
-    $route->any('employeeDel', 'Api\EmployeeController@employeeDel')->name('employee.delete');
+    $route->any('employeeDel', 'Api\EmployeeController@employeeDel')->middleware('OssFileDeal');
     $route->any('employeeDetail', 'Api\EmployeeController@employeeDetail')->name('employee.detail');
     $route->any('employeeDetail', 'Api\EmployeeController@employeeDetail')->name('employee.detail');
     $route->any('employeeList', 'Api\EmployeeController@employeeList')->name('employee.list');
     $route->any('employeeList', 'Api\EmployeeController@employeeList')->name('employee.list');