feat: enhanced employee edit modal (profile, equipment, dispatch, status)
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user