From a1ca8b7e461a3be6319abce893ebda829664d8d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Thu, 26 Feb 2026 18:50:12 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20[hr]=20=EC=82=AC=EB=B2=88(employee?= =?UTF-8?q?=5Fcode)=20=ED=95=84=EB=93=9C=20=EC=A0=84=EC=B2=B4=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Model: appends, accessor 제거 - Service: 검색 필터, json_extra 저장/수정 로직 제거 - Controller: validation 규칙 제거 - View: create, edit, show, table에서 사번 UI 제거 --- .../Controllers/Api/Admin/HR/EmployeeController.php | 2 -- app/Models/HR/Employee.php | 6 ------ app/Services/HR/EmployeeService.php | 10 +++------- resources/views/hr/employees/create.blade.php | 10 ---------- resources/views/hr/employees/edit.blade.php | 8 -------- resources/views/hr/employees/partials/table.blade.php | 3 --- resources/views/hr/employees/show.blade.php | 8 -------- 7 files changed, 3 insertions(+), 44 deletions(-) diff --git a/app/Http/Controllers/Api/Admin/HR/EmployeeController.php b/app/Http/Controllers/Api/Admin/HR/EmployeeController.php index 69b1939b..e54950fc 100644 --- a/app/Http/Controllers/Api/Admin/HR/EmployeeController.php +++ b/app/Http/Controllers/Api/Admin/HR/EmployeeController.php @@ -85,7 +85,6 @@ public function store(Request $request): JsonResponse 'employee_status' => 'nullable|string|in:active,leave,resigned', 'manager_user_id' => 'nullable|integer|exists:users,id', 'display_name' => 'nullable|string|max:50', - 'employee_code' => 'nullable|string|max:30', 'hire_date' => 'nullable|date', 'address' => 'nullable|string|max:200', 'emergency_contact' => 'nullable|string|max:100', @@ -154,7 +153,6 @@ public function update(Request $request, int $id): JsonResponse 'employee_status' => 'nullable|string|in:active,leave,resigned', 'manager_user_id' => 'nullable|integer|exists:users,id', 'display_name' => 'nullable|string|max:50', - 'employee_code' => 'nullable|string|max:30', 'hire_date' => 'nullable|date', 'address' => 'nullable|string|max:200', 'emergency_contact' => 'nullable|string|max:100', diff --git a/app/Models/HR/Employee.php b/app/Models/HR/Employee.php index b576837b..b9242b0d 100644 --- a/app/Models/HR/Employee.php +++ b/app/Models/HR/Employee.php @@ -38,7 +38,6 @@ class Employee extends Model ]; protected $appends = [ - 'employee_code', 'hire_date', 'position_label', 'job_title_label', @@ -67,11 +66,6 @@ public function manager(): BelongsTo // json_extra Accessor // ========================================================================= - public function getEmployeeCodeAttribute(): ?string - { - return $this->json_extra['employee_code'] ?? null; - } - public function getHireDateAttribute(): ?string { return $this->json_extra['hire_date'] ?? null; diff --git a/app/Services/HR/EmployeeService.php b/app/Services/HR/EmployeeService.php index 011dd0dc..6e95959d 100644 --- a/app/Services/HR/EmployeeService.php +++ b/app/Services/HR/EmployeeService.php @@ -24,7 +24,7 @@ public function getEmployees(array $filters = [], int $perPage = 20): LengthAwar ->with(['user', 'department']) ->forTenant($tenantId); - // 검색 필터 (이름, 사번, 이메일) + // 검색 필터 (이름, 이메일, 연락처) if (! empty($filters['q'])) { $search = $filters['q']; $query->where(function ($q) use ($search) { @@ -33,8 +33,7 @@ public function getEmployees(array $filters = [], int $perPage = 20): LengthAwar $uq->where('name', 'like', "%{$search}%") ->orWhere('email', 'like', "%{$search}%") ->orWhere('phone', 'like', "%{$search}%"); - }) - ->orWhereRaw("JSON_UNQUOTE(JSON_EXTRACT(json_extra, '$.employee_code')) LIKE ?", ["%{$search}%"]); + }); }); } @@ -189,9 +188,6 @@ public function createEmployee(array $data): Employee // json_extra 구성 $jsonExtra = []; - if (! empty($data['employee_code'])) { - $jsonExtra['employee_code'] = $data['employee_code']; - } if (! empty($data['hire_date'])) { $jsonExtra['hire_date'] = $data['hire_date']; } @@ -244,7 +240,7 @@ public function updateEmployee(int $id, array $data): ?Employee ], fn ($v) => $v !== null); // json_extra 업데이트 - $jsonExtraKeys = ['employee_code', 'hire_date', 'address', 'emergency_contact', 'salary', 'bank_account']; + $jsonExtraKeys = ['hire_date', 'address', 'emergency_contact', 'salary', 'bank_account']; $extra = $employee->json_extra ?? []; foreach ($jsonExtraKeys as $key) { if (array_key_exists($key, $data)) { diff --git a/resources/views/hr/employees/create.blade.php b/resources/views/hr/employees/create.blade.php index 8d5cd55e..fd8da0ef 100644 --- a/resources/views/hr/employees/create.blade.php +++ b/resources/views/hr/employees/create.blade.php @@ -109,16 +109,6 @@ class="text-xs text-red-500 hover:text-red-700 font-medium shrink-0"> class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500"> - {{-- 사번 --}} -
- - -
- {{-- 이메일 / 연락처 --}}
diff --git a/resources/views/hr/employees/edit.blade.php b/resources/views/hr/employees/edit.blade.php index 5232934c..748cdcc5 100644 --- a/resources/views/hr/employees/edit.blade.php +++ b/resources/views/hr/employees/edit.blade.php @@ -50,14 +50,6 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:rin class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
- {{-- 사번 --}} -
- - -
- {{-- 이메일 / 연락처 --}}
diff --git a/resources/views/hr/employees/partials/table.blade.php b/resources/views/hr/employees/partials/table.blade.php index cad11e51..512a6a27 100644 --- a/resources/views/hr/employees/partials/table.blade.php +++ b/resources/views/hr/employees/partials/table.blade.php @@ -26,9 +26,6 @@ class="flex items-center gap-3 group">
{{ $employee->display_name ?? $employee->user?->name ?? '-' }}
- @if($employee->employee_code) -
{{ $employee->employee_code }}
- @endif
diff --git a/resources/views/hr/employees/show.blade.php b/resources/views/hr/employees/show.blade.php index 0af5b653..e2fdca8d 100644 --- a/resources/views/hr/employees/show.blade.php +++ b/resources/views/hr/employees/show.blade.php @@ -35,10 +35,6 @@ class="inline-flex items-center gap-2 px-4 py-2 bg-blue-600 hover:bg-blue-700 te {{ $employee->display_name ?? $employee->user?->name ?? '-' }}
- @if($employee->employee_code) - {{ $employee->employee_code }} - | - @endif @if($employee->department) {{ $employee->department->name }} | @@ -81,10 +77,6 @@ class="inline-flex items-center gap-2 px-4 py-2 bg-blue-600 hover:bg-blue-700 te
표시 이름
{{ $employee->display_name ?? '-' }}
-
-
사번
-
{{ $employee->employee_code ?? '-' }}
-
이메일
{{ $employee->user?->email ?? '-' }}