From 0deebe8a3056f1bcca2843913df18bc2d1e061ce Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Tue, 14 May 2024 14:37:04 +0800 Subject: [PATCH] admin export --- .../Controllers/Hr/EmployeeController.php | 22 +++++++++++++++++ .../Controllers/Hr/HolidayController.php | 22 +++++++++++++++++ .../Hr/OfficalBusinessController.php | 24 ++++++++++++++++++- .../Controllers/Hr/OvertimeController.php | 23 ++++++++++++++++++ .../Controllers/Hr/PromotionController.php | 20 ++++++++++++++++ app/Admin/Controllers/Hr/SignController.php | 7 +++++- .../Controllers/Hr/SignRepairController.php | 21 ++++++++++++++++ .../Controllers/Store/EmployeeController.php | 19 +++++++++++++++ .../Controllers/Store/StoreController.php | 23 ++++++++++++++++++ app/Admin/Services/OvertimeApplyService.php | 4 ++-- app/Models/HolidayApply.php | 2 +- 11 files changed, 182 insertions(+), 5 deletions(-) diff --git a/app/Admin/Controllers/Hr/EmployeeController.php b/app/Admin/Controllers/Hr/EmployeeController.php index a0f6b17..ede3a60 100644 --- a/app/Admin/Controllers/Hr/EmployeeController.php +++ b/app/Admin/Controllers/Hr/EmployeeController.php @@ -22,6 +22,7 @@ class EmployeeController extends AdminController ->headerToolbar([ $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.employees.create')), ...$this->baseHeaderToolBar(), + $this->exportAction(true) ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ @@ -132,4 +133,25 @@ class EmployeeController extends AdminController { return $this->service->listQuery()->get(['id', 'name', 'phone']); } + + protected function exportFileName() + { + return '员工记录'; + } + + protected function exportMap($row) + { + $jobs = data_get($row, 'jobs', []); + return [ + __('employee.id') => data_get($row, 'id'), + __('employee.name') => data_get($row, 'name'), + __('employee.jobs') => data_get($row, 'name'), + __('employee.jobs') => implode(',', array_column($jobs, 'name')), + __('employee.phone') => data_get($row, 'phone'), + __('employee.employee_status') => data_get($row, 'employee_status_text'), + __('employee.store_id') => data_get($row, 'store.title'), + __('employee.remarks') => data_get($row, 'remarks'), + __('employee.is_sign') => data_get($row, 'is_sign') ? '是' : '否', + ]; + } } diff --git a/app/Admin/Controllers/Hr/HolidayController.php b/app/Admin/Controllers/Hr/HolidayController.php index 2c3c0d1..f128b59 100644 --- a/app/Admin/Controllers/Hr/HolidayController.php +++ b/app/Admin/Controllers/Hr/HolidayController.php @@ -27,6 +27,7 @@ class HolidayController extends AdminController ->headerToolbar([ // $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.holiday.create')), ...$this->baseHeaderToolBar(), + $this->exportAction(true), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ @@ -134,4 +135,25 @@ class HolidayController extends AdminController $this->baseWorkflowLogList($detailId)->id($serviceId), ]); } + + protected function exportFileName() + { + return '请假申请'; + } + + protected function exportMap($row) + { + return [ + __('holiday_apply.id') => data_get($row, 'id'), + __('employee_sign.store_id') => data_get($row, 'store.title'), + __('holiday_apply.employee_id') => data_get($row, 'employee.name'), + __('holiday_apply.type_id') => data_get($row, 'type.name'), + __('holiday_apply.reason') => data_get($row, 'reason'), + __('holiday_apply.start_at') => data_get($row, 'start_at'), + __('holiday_apply.end_at') => data_get($row, 'end_at'), + __('workflow_log.check_status') => data_get(CheckStatus::options(), data_get($row, 'workflow.check_status'), ''), + __('workflow.value') => data_get($row, 'workflow.check_name'), + __('holiday_apply.created_at') => data_get($row, 'created_at'), + ]; + } } diff --git a/app/Admin/Controllers/Hr/OfficalBusinessController.php b/app/Admin/Controllers/Hr/OfficalBusinessController.php index 31981e2..3aa4f2f 100644 --- a/app/Admin/Controllers/Hr/OfficalBusinessController.php +++ b/app/Admin/Controllers/Hr/OfficalBusinessController.php @@ -25,8 +25,9 @@ class OfficalBusinessController extends AdminController $crud = $this->baseCRUD() ->tableLayout('fixed') ->headerToolbar([ - // $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.business.create')), + $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.business.create')), ...$this->baseHeaderToolBar(), + $this->exportAction(true), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ @@ -120,4 +121,25 @@ class OfficalBusinessController extends AdminController $this->baseWorkflowLogList($detailId)->id($serviceId), ]); } + + protected function exportFileName() + { + return '出差申请'; + } + + protected function exportMap($row) + { + return [ + __('offical_business.id') => data_get($row, 'id'), + __('offical_business.store_id') => data_get($row, 'store.title'), + __('offical_business.employee_id') => data_get($row, 'employee.name'), + __('offical_business.start_at') => data_get($row, 'start_at'), + __('offical_business.end_at') => data_get($row, 'end_at'), + __('offical_business.address') => data_get($row, 'address'), + __('offical_business.reason') => data_get($row, 'reason'), + __('workflow_log.check_status') => data_get(CheckStatus::options(), data_get($row, 'workflow.check_status'), ''), + __('workflow.value') => data_get($row, 'workflow.check_name'), + __('offical_business.created_at') => data_get($row, 'created_at'), + ]; + } } diff --git a/app/Admin/Controllers/Hr/OvertimeController.php b/app/Admin/Controllers/Hr/OvertimeController.php index bf5d419..d6ef93d 100644 --- a/app/Admin/Controllers/Hr/OvertimeController.php +++ b/app/Admin/Controllers/Hr/OvertimeController.php @@ -27,6 +27,7 @@ class OvertimeController extends AdminController ->headerToolbar([ // $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.overtime.create')), ...$this->baseHeaderToolBar(), + $this->exportAction(true), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ @@ -124,4 +125,26 @@ class OvertimeController extends AdminController $this->baseWorkflowLogList($detailId)->id($serviceId), ]); } + + protected function exportFileName() + { + return '加班申请'; + } + + protected function exportMap($row) + { + return [ + __('overtime_apply.id') => data_get($row, 'id'), + __('overtime_apply.store_id') => data_get($row, 'store.title'), + __('overtime_apply.employee_id') => data_get($row, 'employee.name'), + __('overtime_apply.date') => data_get($row, 'date'), + __('overtime_apply.start_at') => data_get($row, 'start_at'), + __('overtime_apply.end_at') => data_get($row, 'end_at'), + __('overtime_apply.hours') => data_get($row, 'hours'), + __('overtime_apply.reason') => data_get($row, 'reason'), + __('workflow_log.check_status') => data_get(CheckStatus::options(), data_get($row, 'workflow.check_status'), ''), + __('workflow.value') => data_get($row, 'workflow.check_name'), + __('overtime_apply.created_at') => data_get($row, 'created_at'), + ]; + } } diff --git a/app/Admin/Controllers/Hr/PromotionController.php b/app/Admin/Controllers/Hr/PromotionController.php index f73ff83..b3d409b 100644 --- a/app/Admin/Controllers/Hr/PromotionController.php +++ b/app/Admin/Controllers/Hr/PromotionController.php @@ -26,6 +26,7 @@ class PromotionController extends AdminController ->headerToolbar([ $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.promotion.create')), ...$this->baseHeaderToolBar(), + $this->exportAction(true), ]) ->bulkActions([]) ->filterDefaultVisible() @@ -152,4 +153,23 @@ class PromotionController extends AdminController $this->baseWorkflowLogList($detailId)->id($serviceId), ]); } + + protected function exportFileName() + { + return '升职申请'; + } + + protected function exportMap($row) + { + return [ + __('employee_promotion.id') => data_get($row, 'id'), + __('employee_promotion.store_id') => data_get($row, 'store.title'), + __('employee_promotion.employee_id') => data_get($row, 'employee.name'), + __('employee_promotion.job_id') => data_get($row, 'job.name'), + __('employee_promotion.invitor_id') => data_get($row, 'invitor.name'), + __('employee_promotion.promotion_status') => data_get(PromotionStatus::options(), data_get($row, 'promotion_status'), ''), + __('workflow.value') => data_get($row, 'workflow.check_name'), + __('employee_promotion.created_at') => data_get($row, 'created_at'), + ]; + } } diff --git a/app/Admin/Controllers/Hr/SignController.php b/app/Admin/Controllers/Hr/SignController.php index 68b20df..341b2a5 100644 --- a/app/Admin/Controllers/Hr/SignController.php +++ b/app/Admin/Controllers/Hr/SignController.php @@ -24,7 +24,7 @@ class SignController extends AdminController ->tableLayout('fixed') ->headerToolbar([ ...$this->baseHeaderToolBar(), - $this->exportAction(), + $this->exportAction(true), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ @@ -101,6 +101,11 @@ class SignController extends AdminController ])->body([$detail, amisMake()->Divider()->title(__('employee_sign.log')), $logs]); } + protected function exportFileName() + { + return '考勤打卡'; + } + protected function exportMap($row) { $type = SignType::options(); diff --git a/app/Admin/Controllers/Hr/SignRepairController.php b/app/Admin/Controllers/Hr/SignRepairController.php index 522afa8..f3db037 100644 --- a/app/Admin/Controllers/Hr/SignRepairController.php +++ b/app/Admin/Controllers/Hr/SignRepairController.php @@ -28,6 +28,7 @@ class SignRepairController extends AdminController ->headerToolbar([ // $this->createTypeButton('drawer', 'lg')->visible(Admin::user()->can('admin.hr.repairs.create')), ...$this->baseHeaderToolBar(), + $this->exportAction(true), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ @@ -124,4 +125,24 @@ class SignRepairController extends AdminController $this->baseWorkflowLogList($detailId)->id($serviceId), ]); } + + protected function exportFileName() + { + return '补卡申请'; + } + + protected function exportMap($row) + { + return [ + __('employee_sign_repair.id') => data_get($row, 'id'), + __('employee_sign_repair.store_id') => data_get($row, 'store.title'), + __('employee_sign_repair.employee_id') => data_get($row, 'employee.name'), + __('employee_sign_repair.date') => data_get($row, 'date'), + __('employee_sign_repair.sign_time') => data_get(SignTime::options(), data_get($row, 'sign_time'), ''), + __('employee_sign_repair.reason') => data_get($row, 'reason'), + __('workflow_log.check_status') => data_get(CheckStatus::options(), data_get($row, 'workflow.check_status'), ''), + __('workflow.value') => data_get($row, 'workflow.check_name'), + __('holiday_apply.created_at') => data_get($row, 'created_at'), + ]; + } } diff --git a/app/Admin/Controllers/Store/EmployeeController.php b/app/Admin/Controllers/Store/EmployeeController.php index debcba8..a4c42ec 100644 --- a/app/Admin/Controllers/Store/EmployeeController.php +++ b/app/Admin/Controllers/Store/EmployeeController.php @@ -23,6 +23,7 @@ class EmployeeController extends AdminController ->headerToolbar([ $this->createTypeButton('drawer', 'lg')->visible($user->can('admin.store.employees.create')), ...$this->baseHeaderToolBar(), + $this->exportAction(true), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ @@ -73,4 +74,22 @@ class EmployeeController extends AdminController ->required(), ]); } + + protected function exportFileName() + { + return '店员记录'; + } + + protected function exportMap($row) + { + $jobs = data_get($row, 'jobs', []); + return [ + __('employee.store_id') => data_get($row, 'store.title'), + __('admin.username') => data_get($row, 'admin_user.username'), + __('employee.name') => data_get($row, 'name'), + __('employee.jobs') => implode(',', array_column($jobs, 'name')), + __('employee.phone') => data_get($row, 'phone'), + __('store.master_id') => data_get($row, 'store.master_id') == data_get($row, 'id') ? '是' : '否', + ]; + } } diff --git a/app/Admin/Controllers/Store/StoreController.php b/app/Admin/Controllers/Store/StoreController.php index f9bc6b3..0f345e8 100644 --- a/app/Admin/Controllers/Store/StoreController.php +++ b/app/Admin/Controllers/Store/StoreController.php @@ -26,6 +26,7 @@ class StoreController extends AdminController ->headerToolbar([ $this->createTypeButton('drawer', 'lg')->visible($user->can('admin.store.stores.create')), ...$this->baseHeaderToolBar(), + $this->exportAction(true), ]) ->bulkActions([]) ->filter($this->baseFilter()->body([ @@ -137,4 +138,26 @@ class StoreController extends AdminController { return $this->service->listQuery()->where('business_status', BusinessStatus::Open)->get(['id', 'title']); } + + protected function exportFileName() + { + return '门店记录'; + } + + protected function exportMap($row) + { + return [ + __('store.id') => data_get($row, 'id'), + __('store.title') => data_get($row, 'title'), + __('store.master_id') => data_get($row, 'master.name'), + __('store.category_id') => data_get($row, 'category.name'), + __('store.business_id') => data_get($row, 'business.name'), + __('store.level_id') => data_get($row, 'level.name'), + __('store.profit_ratio') => data_get($row, 'profit_ratio') . '%', + __('store.region') => data_get($row, 'region.province') . '-' . data_get($row, 'region.city'), + __('store.business_status') => data_get(BusinessStatus::options(), data_get($row, 'business_status'), ''), + __('store.address') => data_get($row, 'address'), + __('store.created_at') => data_get($row, 'created_at'), + ]; + } } diff --git a/app/Admin/Services/OvertimeApplyService.php b/app/Admin/Services/OvertimeApplyService.php index 8f7e32a..1cf70c8 100644 --- a/app/Admin/Services/OvertimeApplyService.php +++ b/app/Admin/Services/OvertimeApplyService.php @@ -73,8 +73,8 @@ class OvertimeApplyService extends BaseService $timestamps = explode(',', $data['datetime_range']); $start = Carbon::createFromTimestamp($timestamps[0]); $end = Carbon::createFromTimestamp($timestamps[1]); - $data['start_at'] = $start->toDateTimeString(); - $data['end_at'] = $end->toDateTimeString(); + $data['start_at'] = $start->format('Y-m-d H:i'); + $data['end_at'] = $end->format('Y-m-d H:i'); } if (isset($data['start_at']) && isset($data['end_at'])) { diff --git a/app/Models/HolidayApply.php b/app/Models/HolidayApply.php index 7c74a88..9259a2a 100644 --- a/app/Models/HolidayApply.php +++ b/app/Models/HolidayApply.php @@ -15,7 +15,7 @@ class HolidayApply extends Model { use Filterable, HasCheckable, HasDateTimeFormatter; - protected $guarded = []; + protected $fillable = ['store_id', 'employee_id', 'start_at', 'end_at', 'type_id', 'reason']; protected $casts = [ 'start_at' => 'datetime:Y-m-d H:i',