cqp 1 月之前
父節點
當前提交
b9aad2353e

+ 11 - 4
app/Model/Employee.php

@@ -11,8 +11,8 @@ class Employee extends DataScopeBaseModel
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     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', 'position'];
-    public static $report_field = ['title','id', 'state', 'education', 'major', 'id_card','p_title', 'position'];
+    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','employee_type'];
+    public static $report_field = ['title','id', 'employee_type', 'education', 'major', 'id_card','p_title', 'position'];
     const SPECIAL_ADMIN = 1;
     const USE = 1;
     const NOT_USE = 2;
@@ -52,11 +52,18 @@ class Employee extends DataScopeBaseModel
 
     const TYPE_ONE = 1; // 在职
     const TYPE_TWO = 2; // 离职
-    const TYPE_THREE = 3; // 休假
     const State_Type = [
         self::TYPE_ONE => '在职',
         self::TYPE_TWO => '离职',
-        self::TYPE_THREE => '休假',
+    ];
+
+    const E_TYPE_ONE = 1;
+    const E_TYPE_TWO = 2;
+    const E_TYPE_THREE = 3;
+    const E_State_Type = [
+        self::E_TYPE_ONE => '全职',
+        self::E_TYPE_TWO => '兼职',
+        self::E_TYPE_THREE => '外聘',
     ];
 
     //是否技术研究人员

+ 8 - 1
app/Service/EmployeeService.php

@@ -72,6 +72,7 @@ class EmployeeService extends Service
             $model->position = $data['position'] ?? "";
             $model->p_title = $data['p_title'] ?? "";
             $model->state = $data['state'] ?? 0;
+            $model->employee_type = $data['employee_type'] ?? 0;
             $model->is_admin = $data['is_admin'] ?? 0;
             $model->entrust_type = $data['entrust_type'] ?? 0;
             $model->man_type = $data['man_type'] ?? 0;
@@ -176,6 +177,7 @@ class EmployeeService extends Service
             $model->position = $data['position'] ?? "";
             $model->p_title = $data['p_title'] ?? "";
             $model->state = $data['state'] ?? 0;
+            $model->employee_type = $data['employee_type'] ?? 0;
             $model->crt_id = $user['id'];
             $model->is_admin = $data['is_admin'] ?? 0;
             $model->account = $data['account'] ?? "";
@@ -385,6 +387,7 @@ class EmployeeService extends Service
             // 业务状态字段
             $item['is_admin_title'] = Employee::IS_ADMIN_TITLE[$item['is_admin']] ?? "";
             $item['state_title'] = Employee::State_Type[$item['state']] ?? "";
+            $item['employee_type_title'] = Employee::E_State_Type[$item['employee_type']] ?? "";
             $item['sex_title'] = Employee::SEX_TYPE[$item['sex']] ?? "";
             $item['man_type_title'] = Employee::Man_Type[$item['man_type']] ?? "";
             $item['entrust_type_title'] = Employee::WT_Type[$item['entrust_type']] ?? "";
@@ -568,6 +571,7 @@ class EmployeeService extends Service
         $sexMap   = Employee::SEX_TYPE;
         $eduMap   = Employee::Education;
         $stateMap = Employee::State_Type;
+        $eMap = Employee::E_State_Type;
 
         foreach ($dataArray as $main) {
             $empId = $main['id'];
@@ -578,6 +582,7 @@ class EmployeeService extends Service
             $mainInfo['sex_title']       = $sexMap[$main['sex']] ?? '';
             $mainInfo['education_title'] = $eduMap[$main['education']] ?? '';
             $mainInfo['state_title']     = $stateMap[$main['state']] ?? '';
+            $mainInfo['employee_type_title']   = $eMap[$main['employee_type']] ?? '';
 
             if (empty($details)) {
                 // 如果没部门,保底出一行
@@ -634,12 +639,14 @@ class EmployeeService extends Service
         if(! empty($data['sex']) && ! isset(Employee::SEX_TYPE[$data['sex']])) return [false, '性别不存在'];
         if(empty($data['mobile'])) return [false,'联系电话不能为空'];
 //        if(! $this->isValidPhone($data['mobile'])) return [false, '手机号码格式错误'];
-        if(empty($data['major'])) return [false, '专业领域不能为空'];
+//        if(empty($data['major'])) return [false, '专业领域不能为空'];
         if(! empty($data['education']) && ! isset(Employee::Education[$data['education']])) return [false, '学历不存在'];
         if(empty($data['id_card'])) return [false, '身份证号不能为空'];
         if(empty($data['depart'])) return [false,'部门不能为空'];
         if(empty($data['state'])) return [false,'状态不能为空'];
         if(! isset(Employee::State_Type[$data['state']])) return [false,'状态不存在'];
+        if(empty($data['employee_type'])) return [false,'聘用类型不能为空'];
+        if(! isset(Employee::E_State_Type[$data['employee_type']])) return [false,'聘用类型不存在'];
         if(! empty($data['is_admin'])){
             if(! isset(Employee::IS_ADMIN_TITLE_SIMPLE[$data['is_admin']])) return [false, 'is_admin类型不存在'];
             if(empty($data['password'])) return [false, '密码不能为空'];

+ 1 - 1
app/Service/ExportFileService.php

@@ -1017,7 +1017,7 @@ class ExportFileService extends Service
                 'major'           => $row['major'] ?? '',          // 专业
                 'title_level'     => $row['p_title'] ?? '',    // 职称/职业资格
                 'department_job'  => $row['position_new'] ?? '',       // 部门/岗位
-                'employment_type' => Employee::State_Type[$row['state']] ?? "", // 聘用类型
+                'employment_type' => $row['employee_type_title'] ?? "", // 聘用类型
             ];
         }
 

+ 9 - 0
app/Service/ImportService.php

@@ -301,6 +301,7 @@ class ImportService extends Service
         $manIdx = array_search('man_type', $keys);
         $entrustIdx = array_search('entrust_type', $keys);
         $depIdx = array_search('depart_code', $keys);
+        $employeeTypeIdx = array_search('employee_type', $keys);
 
         $code_map = $this->getEmployeeList($array, $user, $codeIdx);
         $dep_map = $this->getEDataList($array, $user, $depIdx);
@@ -315,6 +316,7 @@ class ImportService extends Service
         $state_map = array_flip(Employee::State_Type);
         $man_map = array_flip(Employee::Man_Type);
         $wt_map = array_flip(Employee::WT_Type);
+        $employeeT_map = array_flip(Employee::E_State_Type);
 
         // 获取所有标记为 is_main 的列索引,用于一致性对比
         $mainColIndices = [];
@@ -374,6 +376,13 @@ class ImportService extends Service
             } else {
                 $array[$rowIndex][$stateIdx] = $state_map[$state_text];
             }
+            // 外聘类型
+            $e_text = trim($rowValue[$employeeTypeIdx] ?? '');
+            if (!isset($employeeT_map[$e_text])) {
+                $errors[] = "第{$displayLine}行:外聘类型[{$e_text}]无效";
+            } else {
+                $array[$rowIndex][$employeeTypeIdx] = $employeeT_map[$e_text];
+            }
 
             //人员类别
             $man_text = trim($rowValue[$manIdx] ?? '');

+ 2 - 1
app/Service/StatisticService.php

@@ -1466,7 +1466,7 @@ class StatisticService extends StatisticCommonService
 
         if(! empty($data['id_card'])) $model->where('id_card', 'LIKE', '%'.$data['id_card'].'%');
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
-        if(! empty($data['state'])) $model->where('state', $data['state']);
+        if(! empty($data['employee_type'])) $model->where('employee_type', $data['employee_type']);
         if(isset($data['education'])) $model->where('education', $data['education']);
 
         $list = $model->get()->toArray();
@@ -1493,6 +1493,7 @@ class StatisticService extends StatisticCommonService
         foreach ($list as $key => $value){
             $depart_title = $man_map[$value['id']] ?? "";
             $list[$key]['position_new'] = $depart_title . '/' . $value['position'];
+            $list[$key]['employee_type_title'] = Employee::E_State_Type[$value['employee_type']] ?? '';
         }
 
         return $list;

+ 12 - 1
config/excel/employee.php

@@ -61,7 +61,7 @@ return [
             'key' =>'major',
             'export' =>'major',
             'value' => '专业领域',
-            'required' => true,
+            'required' => false,
             'is_main' => true,
             'default' => "",
             'unique' => false,
@@ -123,6 +123,17 @@ return [
             'default' => \App\Model\Employee::WT_TYPE_ZERO,
             'comments' => "必填"
         ],
+        [
+            'key' =>'employee_type',
+            'export' =>'employee_type_title',
+            'value' => '聘用类型',
+            'required' => true,
+            'is_main' => true,
+            'unique' => false,
+            'enums' => array_values(\App\Model\Employee::E_State_Type),
+            'default' => \App\Model\Employee::E_TYPE_ONE,
+            'comments' => '必填'
+        ],
         [
             'key' =>'state',
             'export' =>'state_title',