|
|
@@ -7,6 +7,7 @@ use App\Model\Employee;
|
|
|
use App\Model\EmployeeDepartPermission;
|
|
|
use App\Model\EmployeeDetails;
|
|
|
use App\Model\EmployeeRole;
|
|
|
+use App\Model\EmployeeWorkRange;
|
|
|
use App\Model\Role;
|
|
|
use App\Model\RoleMenu;
|
|
|
use App\Model\RoleMenuButton;
|
|
|
@@ -104,6 +105,25 @@ class EmployeeService extends Service
|
|
|
EmployeeRole::insert($insert);
|
|
|
}
|
|
|
|
|
|
+ EmployeeWorkRange::where('employee_id',$data['id'])->delete();
|
|
|
+ if(isset($data['work_range'])){
|
|
|
+ $insert = [];
|
|
|
+ foreach ($data['work_range'] as $value){
|
|
|
+ $insert[] = [
|
|
|
+ 'employee_id' => $model->id,
|
|
|
+ 'start_time_hour' => $value['start_time_hour'],
|
|
|
+ 'start_time_min' => $value['start_time_min'],
|
|
|
+ 'end_time_hour' => $value['end_time_hour'],
|
|
|
+ 'end_time_min' => $value['end_time_min'],
|
|
|
+ 'total_work_min' => $value['total_work_min'],
|
|
|
+ 'top_depart_id' => $value['top_depart_id'],
|
|
|
+ 'crt_time' => time(),
|
|
|
+ 'upd_time' => time(),
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ EmployeeWorkRange::insert($insert);
|
|
|
+ }
|
|
|
+
|
|
|
DB::commit();
|
|
|
}catch (\Exception $exception){
|
|
|
DB::rollBack();
|
|
|
@@ -161,6 +181,24 @@ class EmployeeService extends Service
|
|
|
EmployeeRole::insert($insert);
|
|
|
}
|
|
|
|
|
|
+ if(isset($data['work_range'])){
|
|
|
+ $insert = [];
|
|
|
+ foreach ($data['work_range'] as $value){
|
|
|
+ $insert[] = [
|
|
|
+ 'employee_id' => $model->id,
|
|
|
+ 'start_time_hour' => $value['start_time_hour'],
|
|
|
+ 'start_time_min' => $value['start_time_min'],
|
|
|
+ 'end_time_hour' => $value['end_time_hour'],
|
|
|
+ 'end_time_min' => $value['end_time_min'],
|
|
|
+ 'total_work_min' => $value['total_work_min'],
|
|
|
+ 'top_depart_id' => $value['top_depart_id'],
|
|
|
+ 'crt_time' => time(),
|
|
|
+ 'upd_time' => time(),
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ EmployeeWorkRange::insert($insert);
|
|
|
+ }
|
|
|
+
|
|
|
DB::commit();
|
|
|
}catch (Exception $e){
|
|
|
DB::rollBack();
|
|
|
@@ -180,6 +218,7 @@ class EmployeeService extends Service
|
|
|
'del_time'=>time()
|
|
|
]);
|
|
|
EmployeeDepartPermission::whereIn('employee_id',$data['id'])->delete();
|
|
|
+ EmployeeWorkRange::whereIn('employee_id',$data['id'])->delete();
|
|
|
|
|
|
return [true,'删除成功'];
|
|
|
}
|
|
|
@@ -293,6 +332,11 @@ class EmployeeService extends Service
|
|
|
->orderBy('b.id')
|
|
|
->get();
|
|
|
|
|
|
+ $work_range = DB::table('employee_work_range as a')
|
|
|
+ ->whereIn("employee_id", $employee_ids)
|
|
|
+ ->select('employee_id','start_time_hour', 'start_time_min', 'end_time_hour', 'end_time_min')
|
|
|
+ ->get();
|
|
|
+
|
|
|
// 3. 结果按员工ID分组归纳
|
|
|
$resultMap = [];
|
|
|
foreach ($employee_ids as $id) {
|
|
|
@@ -300,7 +344,8 @@ class EmployeeService extends Service
|
|
|
'role_ids' => [],
|
|
|
'role_names' => [],
|
|
|
'depart_ids' => [],
|
|
|
- 'depart_names' => []
|
|
|
+ 'depart_names' => [],
|
|
|
+ 'work_range' => [],
|
|
|
];
|
|
|
}
|
|
|
|
|
|
@@ -314,6 +359,10 @@ class EmployeeService extends Service
|
|
|
$resultMap[$d->employee_id]['depart_names'][] = $d->title;
|
|
|
}
|
|
|
|
|
|
+ foreach ($work_range as $d) {
|
|
|
+ $resultMap[$d->employee_id]['work_range'][] = $d;
|
|
|
+ }
|
|
|
+
|
|
|
return [true, $resultMap];
|
|
|
}
|
|
|
|
|
|
@@ -328,9 +377,9 @@ class EmployeeService extends Service
|
|
|
$detailsMap = $this->getEmployeeDetailsMap($mainIds, $user);
|
|
|
|
|
|
// 枚举映射
|
|
|
- $sexMap = \App\Model\Employee::SEX_TYPE;
|
|
|
- $eduMap = \App\Model\Employee::Education;
|
|
|
- $stateMap = \App\Model\Employee::State_Type;
|
|
|
+ $sexMap = Employee::SEX_TYPE;
|
|
|
+ $eduMap = Employee::Education;
|
|
|
+ $stateMap = Employee::State_Type;
|
|
|
|
|
|
foreach ($dataArray as $main) {
|
|
|
$empId = $main['id'];
|
|
|
@@ -410,6 +459,24 @@ class EmployeeService extends Service
|
|
|
}
|
|
|
$data['top_depart_id'] = $user['top_depart_id'];
|
|
|
|
|
|
+ if(! empty($data['work_range'])){
|
|
|
+ foreach ($data['work_range'] as $key => $value){
|
|
|
+ $res = $this->checkNumber($value['start_time_hour'], 0, 'non-negative');
|
|
|
+ if(!$res['valid']) return [false, "开始点:" . $res['error']];
|
|
|
+ if($value['start_time_hour'] > 23) return [false, false, "开始点不合法"];
|
|
|
+ $res = $this->checkNumber($value['start_time_min'], 0, 'non-negative');
|
|
|
+ if(!$res['valid']) return [false, "开始分:" . $res['error']];
|
|
|
+ if($value['start_time_min'] > 60) return [false, false, "开始点不合法"];
|
|
|
+ $res = $this->checkNumber($value['end_time_hour'], 0, 'non-negative');
|
|
|
+ if(!$res['valid']) return [false, "结束点:" . $res['error']];
|
|
|
+ if($value['end_time_hour'] > 24) return [false, false, "结束点不合法"];
|
|
|
+ $res = $this->checkNumber($value['end_time_min'], 0, 'non-negative');
|
|
|
+ if(!$res['valid']) return [false, "结束分:" . $res['error']];
|
|
|
+ if($value['end_time_min'] > 60) return [false, false, "结束分不合法"];
|
|
|
+ $data['work_range'][$key]['total_work_min'] = ($value['end_time_hour'] * 60 + $value['end_time_min']) - ($value['start_time_hour'] * 60 + $value['start_time_min']);
|
|
|
+ $data['work_range'][$key]['top_depart_id'] = $data['top_depart_id'];
|
|
|
+ }
|
|
|
+ }
|
|
|
if(! $is_add){
|
|
|
if($this->isEmpty($data,'id')) return [false,'ID不能为空'];
|
|
|
$bool = Employee::where('del_time',0)
|