diff --git a/app/Admin/Controllers/Hr/EmployeeController.php b/app/Admin/Controllers/Hr/EmployeeController.php index 8c05cec..a0f6b17 100644 --- a/app/Admin/Controllers/Hr/EmployeeController.php +++ b/app/Admin/Controllers/Hr/EmployeeController.php @@ -41,6 +41,7 @@ class EmployeeController extends AdminController amisMake()->TableColumn()->name('employee_status_text')->label(__('employee.employee_status'))->set('type', 'tag')->set('color', '${employee_status_color}'), amisMake()->TableColumn()->name('store.title')->label(__('employee.store_id')), amisMake()->TableColumn()->name('remarks')->label(__('employee.remarks')), + amis()->TableColumn()->name('is_sign')->label(__('employee.is_sign'))->type('switch'), $this->rowActions([ $this->rowShowButton()->visible(Admin::user()->can('admin.hr.employees.view')), $this->rowEditTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.employees.update')), diff --git a/app/Admin/Services/EmployeeSignService.php b/app/Admin/Services/EmployeeSignService.php index a924554..91b7bb9 100644 --- a/app/Admin/Services/EmployeeSignService.php +++ b/app/Admin/Services/EmployeeSignService.php @@ -41,7 +41,7 @@ class EmployeeSignService extends BaseService // 休息的员工 $restEmployeeIds = EmployeeRest::whereBetWeen('date', [$start, $end])->pluck('employee_id'); // 需要打卡的员工 - $employees = Employee::where('store_id', '>', 0)->whereNotIn('id', $restEmployeeIds)->get(); + $employees = Employee::where('store_id', '>', 0)->where('is_sign', 1)->whereNotIn('id', $restEmployeeIds)->get(); foreach ($employees as $employee) { $logs = $list->where('employee_id', $employee->id); // 状态: 两个打卡=正常, 一次打卡 = 缺卡, 两次未打=旷工 diff --git a/app/Models/Employee.php b/app/Models/Employee.php index 5ccadf9..6d07f28 100644 --- a/app/Models/Employee.php +++ b/app/Models/Employee.php @@ -24,7 +24,7 @@ class Employee extends Model implements AuthenticatableContract const JOB_KEY = 'job'; - protected $fillable = ['store_id', 'name', 'avatar', 'phone', 'prize_images', 'skill_images', 'employee_status', 'admin_user_id', 'leave_at', 'join_at', 'remarks']; + protected $fillable = ['store_id', 'name', 'avatar', 'phone', 'prize_images', 'skill_images', 'employee_status', 'admin_user_id', 'leave_at', 'join_at', 'remarks', 'is_sign']; protected $casts = [ 'employee_status' => EmployeeStatus::class, diff --git a/database/migrations/2024_05_11_143843_add_is_sign_to_employees.php b/database/migrations/2024_05_11_143843_add_is_sign_to_employees.php new file mode 100644 index 0000000..f0fae5d --- /dev/null +++ b/database/migrations/2024_05_11_143843_add_is_sign_to_employees.php @@ -0,0 +1,28 @@ +unsignedTinyInteger('is_sign')->default(1)->comment('0: 不打卡, 1: 需要打卡'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('employees', function (Blueprint $table) { + $table->dropColumn('is_sign'); + }); + } +}; diff --git a/lang/zh_CN/employee.php b/lang/zh_CN/employee.php index b0f5975..446effb 100644 --- a/lang/zh_CN/employee.php +++ b/lang/zh_CN/employee.php @@ -20,4 +20,5 @@ return [ 'leave_confirm' => '是否确定?', 'remarks' => '备注', 'store_id' => '门店', + 'is_sign' => '打卡', ];