feat: enhanced employee edit modal (profile, equipment, dispatch, status)

This commit is contained in:
pray4skylark
2026-06-05 11:00:09 +09:00
parent face097785
commit eb5734aad6
5 changed files with 872 additions and 157 deletions
@@ -5,7 +5,9 @@ import com.srsystem.dto.EmployeeSearchResult;
import com.srsystem.dto.EmployeeSummary;
import com.srsystem.entity.Employee;
import com.srsystem.entity.EmployeeEmergencyContact;
import com.srsystem.entity.enums.DispatchStatus;
import com.srsystem.entity.enums.EmpStatus;
import com.srsystem.entity.enums.RoleCode;
import com.srsystem.exception.BusinessException;
import com.srsystem.exception.ErrorCode;
import com.srsystem.repository.DispatchHistoryRepository;
@@ -18,6 +20,7 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -99,11 +102,7 @@ public class EmployeeService {
employee.setName(updateRequest.getName());
employee.setEmail(updateRequest.getEmail());
employee.setPhone(updateRequest.getPhone());
employee.setRoleCode(updateRequest.getRoleCode());
employee.setEmpStatus(updateRequest.getEmpStatus());
employee.setDispatchStatus(updateRequest.getDispatchStatus());
employee.setJoinedDate(updateRequest.getJoinedDate());
employee.setLeftDate(updateRequest.getLeftDate());
employee.setBirthDate(updateRequest.getBirthDate());
employee.setEducation(updateRequest.getEducation());
employee.setMajor(updateRequest.getMajor());
@@ -111,13 +110,36 @@ public class EmployeeService {
employee.setResidence(updateRequest.getResidence());
employee.setProfileImage(updateRequest.getProfileImage());
if (updateRequest.getPassword() != null && !updateRequest.getPassword().isBlank()) {
employee.setPassword(passwordEncoder.encode(updateRequest.getPassword()));
}
return employee;
}
@Transactional
public Employee updateStatus(Long empId, EmpStatus status, String leftDate) {
Employee employee = findById(empId);
employee.setEmpStatus(status);
if (leftDate != null && !leftDate.isBlank()) {
employee.setLeftDate(LocalDate.parse(leftDate));
}
if (status == EmpStatus.RESIGNED && leftDate != null) {
employee.setLeftDate(LocalDate.parse(leftDate));
}
return employeeRepository.save(employee);
}
@Transactional
public Employee updateRole(Long empId, RoleCode role) {
Employee employee = findById(empId);
employee.setRoleCode(role);
return employeeRepository.save(employee);
}
@Transactional
public Employee updateDispatchStatus(Long empId, DispatchStatus status) {
Employee employee = findById(empId);
employee.setDispatchStatus(status);
return employeeRepository.save(employee);
}
@Transactional
public void delete(Long empId) {
Employee employee = findById(empId);