feat: add employee fields (birthDate, education, residence) + emergency contacts
This commit is contained in:
@@ -23,6 +23,7 @@ public class AuthService {
|
||||
private final EmployeeRepository employeeRepository;
|
||||
private final PasswordEncoder passwordEncoder;
|
||||
private final JwtTokenProvider jwtTokenProvider;
|
||||
private final EmployeeService employeeService;
|
||||
|
||||
@Transactional
|
||||
public LoginResponse login(LoginRequest request) {
|
||||
@@ -36,17 +37,7 @@ public class AuthService {
|
||||
String accessToken = jwtTokenProvider.generateAccessToken(employee.getLoginId(), employee.getRoleCode().name());
|
||||
String refreshToken = jwtTokenProvider.generateRefreshToken(employee.getLoginId());
|
||||
|
||||
EmployeeSummary summary = new EmployeeSummary(
|
||||
employee.getEmpId(),
|
||||
employee.getName(),
|
||||
employee.getEmail(),
|
||||
employee.getPhone(),
|
||||
employee.getRoleCode(),
|
||||
employee.getEmpStatus(),
|
||||
employee.getDispatchStatus(),
|
||||
employee.getJoinedDate(),
|
||||
employee.getLeftDate()
|
||||
);
|
||||
EmployeeSummary summary = employeeService.toSummary(employee);
|
||||
|
||||
return new LoginResponse(accessToken, refreshToken, summary);
|
||||
}
|
||||
@@ -64,17 +55,7 @@ public class AuthService {
|
||||
String newAccessToken = jwtTokenProvider.generateAccessToken(employee.getLoginId(), employee.getRoleCode().name());
|
||||
String newRefreshToken = jwtTokenProvider.generateRefreshToken(employee.getLoginId());
|
||||
|
||||
EmployeeSummary summary = new EmployeeSummary(
|
||||
employee.getEmpId(),
|
||||
employee.getName(),
|
||||
employee.getEmail(),
|
||||
employee.getPhone(),
|
||||
employee.getRoleCode(),
|
||||
employee.getEmpStatus(),
|
||||
employee.getDispatchStatus(),
|
||||
employee.getJoinedDate(),
|
||||
employee.getLeftDate()
|
||||
);
|
||||
EmployeeSummary summary = employeeService.toSummary(employee);
|
||||
|
||||
return new LoginResponse(newAccessToken, newRefreshToken, summary);
|
||||
}
|
||||
|
||||
@@ -4,10 +4,12 @@ import com.srsystem.dto.ChangePasswordRequest;
|
||||
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.EmpStatus;
|
||||
import com.srsystem.exception.BusinessException;
|
||||
import com.srsystem.exception.ErrorCode;
|
||||
import com.srsystem.repository.DispatchHistoryRepository;
|
||||
import com.srsystem.repository.EmployeeEmergencyContactRepository;
|
||||
import com.srsystem.repository.EmployeeRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -28,6 +30,7 @@ public class EmployeeService {
|
||||
|
||||
private final EmployeeRepository employeeRepository;
|
||||
private final DispatchHistoryRepository dispatchHistoryRepository;
|
||||
private final EmployeeEmergencyContactRepository emergencyContactRepository;
|
||||
private final PasswordEncoder passwordEncoder;
|
||||
|
||||
public Page<Employee> findAll(EmpStatus status, Pageable pageable) {
|
||||
@@ -101,6 +104,11 @@ public class EmployeeService {
|
||||
employee.setDispatchStatus(updateRequest.getDispatchStatus());
|
||||
employee.setJoinedDate(updateRequest.getJoinedDate());
|
||||
employee.setLeftDate(updateRequest.getLeftDate());
|
||||
employee.setBirthDate(updateRequest.getBirthDate());
|
||||
employee.setEducation(updateRequest.getEducation());
|
||||
employee.setMajor(updateRequest.getMajor());
|
||||
employee.setGraduationDate(updateRequest.getGraduationDate());
|
||||
employee.setResidence(updateRequest.getResidence());
|
||||
|
||||
if (updateRequest.getPassword() != null && !updateRequest.getPassword().isBlank()) {
|
||||
employee.setPassword(passwordEncoder.encode(updateRequest.getPassword()));
|
||||
@@ -130,10 +138,48 @@ public class EmployeeService {
|
||||
employee.getEmpStatus(),
|
||||
employee.getDispatchStatus(),
|
||||
employee.getJoinedDate(),
|
||||
employee.getLeftDate()
|
||||
employee.getLeftDate(),
|
||||
employee.getBirthDate(),
|
||||
employee.getEducation(),
|
||||
employee.getMajor(),
|
||||
employee.getGraduationDate(),
|
||||
employee.getResidence()
|
||||
);
|
||||
}
|
||||
|
||||
// ---- Emergency Contact CRUD ----
|
||||
|
||||
public List<EmployeeEmergencyContact> getEmergencyContacts(Long empId) {
|
||||
return emergencyContactRepository.findByEmployeeEmpIdOrderBySortOrderAsc(empId);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public EmployeeEmergencyContact createEmergencyContact(Long empId, EmployeeEmergencyContact contact) {
|
||||
Employee employee = findById(empId);
|
||||
contact.setEmployee(employee);
|
||||
if (contact.getSortOrder() == null) contact.setSortOrder(0);
|
||||
return emergencyContactRepository.save(contact);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public EmployeeEmergencyContact updateEmergencyContact(Long contactId, EmployeeEmergencyContact update) {
|
||||
EmployeeEmergencyContact contact = emergencyContactRepository.findById(contactId)
|
||||
.orElseThrow(() -> new BusinessException(ErrorCode.CODE_NOT_FOUND));
|
||||
if (update.getName() != null) contact.setName(update.getName());
|
||||
if (update.getRelation() != null) contact.setRelation(update.getRelation());
|
||||
if (update.getPhone() != null) contact.setPhone(update.getPhone());
|
||||
if (update.getSortOrder() != null) contact.setSortOrder(update.getSortOrder());
|
||||
return emergencyContactRepository.save(contact);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void deleteEmergencyContact(Long contactId) {
|
||||
EmployeeEmergencyContact contact = emergencyContactRepository.findById(contactId)
|
||||
.orElseThrow(() -> new BusinessException(ErrorCode.CODE_NOT_FOUND));
|
||||
contact.setIsDeleted('Y');
|
||||
emergencyContactRepository.save(contact);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void changePassword(Long empId, ChangePasswordRequest request) {
|
||||
Employee employee = findById(empId);
|
||||
|
||||
Reference in New Issue
Block a user