Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,14 @@ public List<User> findAllUsers() {

return query.getResultList();
}
*/
public List<Object[]> findAllUsers() {
//대기 상태인 연차 중 numOfDayOff가 가장 낮은 값으로 가져옴
Query query = entityManager.createQuery(
"SELECT DISTINCT u.id, u FROM User u");

return query.getResultList();
}

public User findUserById(Long userId) {
Query query = entityManager.createQuery(
Expand All @@ -72,7 +80,15 @@ public User findUserById(Long userId) {

return (User) query.getSingleResult();
}
*/

public Object[] findUserById(Long userId) {
Query query = entityManager.createQuery(
"SELECT DISTINCT u.id, u FROM User u WHERE u.id = :id");
query.setParameter("id", userId);

return (Object[]) query.getSingleResult();
}

@Transactional
public void updateNumOfDayOffById(Long id, DayOffStatus status, LocalDate now) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public static class UsersDTO {
private LocalDate joinDate;
private int position;
private int roles;

public UsersDTO(User user) {
this.id = user.getId();
this.username = user.getUsername();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public static class RegisterDTO {
@NotNull
private String reason;

/*
public DayOff toEntity(User user, float numOfDayOff) {
return DayOff.builder()
.type(this.type)
Expand All @@ -35,5 +36,18 @@ public DayOff toEntity(User user, float numOfDayOff) {
.numOfDayOff(numOfDayOff)
.build();
}
*/

public DayOff toEntity(User user) {
return DayOff.builder()
.type(this.type)
.startDate(this.startDate)
.endDate(this.endDate)
.reason(this.reason)
.status(DayOffStatus.valueOf("대기"))
.applyAt(LocalDate.now())
.user(user)
.build();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,17 @@ public class DayOffResponse {

@Getter
public static class MyDayOffDTO {
private float valid;
private float numOfInitialDayOff;

/*
public MyDayOffDTO(float valid, float used, float expired) {
this.valid = valid;
}
*/

public MyDayOffDTO(float numOfInitialDayOff) {
this.numOfInitialDayOff = numOfInitialDayOff;
}
}

@Getter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ public void registerDayOff(Long userId, DayOffRequest.RegisterDTO registerDTO) {
throw new IllegalArgumentException("연차 신청 마감일이 지났습니다.");
}

// 지난 날짜에 대한 연차 신청 체크
if (registerDTO.getStartDate().isBefore(LocalDate.now())) {
throw new IllegalArgumentException("지난 날짜에 대한 연차 신청은 불가능합니다.");
}

/*
// 연차 유형에 따른 신청일 계산
float appliedDayOff = 1.0f;
if (registerDTO.getType() == DayOffType.연차) {
Expand All @@ -58,11 +64,6 @@ public void registerDayOff(Long userId, DayOffRequest.RegisterDTO registerDTO) {
appliedDayOff = 0.5f;
}

// 지난 날짜에 대한 연차 신청 체크
if (registerDTO.getStartDate().isBefore(LocalDate.now())) {
throw new IllegalArgumentException("지난 날짜에 대한 연차 신청은 불가능합니다.");
}

// 남은 휴가 확인
float totalDayOff = user.determineInitialDayOff();
float usedDayOff = 0f;
Expand All @@ -77,7 +78,12 @@ public void registerDayOff(Long userId, DayOffRequest.RegisterDTO registerDTO) {
throw new IllegalArgumentException("남은 연차가 부족합니다.");
}

*/

/*
DayOff dayOff = registerDTO.toEntity(user, appliedDayOff);
*/
DayOff dayOff = registerDTO.toEntity(user);
dayOffRepository.save(dayOff);
}

Expand All @@ -86,7 +92,9 @@ public void registerDayOff(Long userId, DayOffRequest.RegisterDTO registerDTO) {
public DayOffResponse.MyDayOffDTO myDayOffInfo(Long userId) {
User user = userRepository.findById(userId).orElseThrow(() -> new UserNotFoundException("사용자를 찾을 수 없습니다."));

float totalDayOff = user.determineInitialDayOff();
float numOfInitialDayOff = user.determineInitialDayOff();

/*
float usedDayOff = 0;
List<DayOff> dayOffs = dayOffRepository.findByUser(user);

Expand All @@ -97,7 +105,13 @@ public DayOffResponse.MyDayOffDTO myDayOffInfo(Long userId) {
}

float remainingDayOff = totalDayOff - usedDayOff;
*/

/*
return new DayOffResponse.MyDayOffDTO(totalDayOff, usedDayOff, remainingDayOff);
*/

return new DayOffResponse.MyDayOffDTO(numOfInitialDayOff);
}

// 내 연차 리스트
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public static class DayOffScheduleDTO {
private String username;
private int position;
private String reason;
private int type;
private LocalDate startDate;
private LocalDate endDate;

Expand All @@ -27,6 +28,7 @@ public DayOffScheduleDTO(DayOff dayOff) {
this.username = dayOff.getUser().getUsername();
this.position = dayOff.getUser().getPosition().getTypeNumber();
this.reason = dayOff.getReason();
this.type = dayOff.getType().getTypeNumber();
this.startDate = dayOff.getStartDate();
this.endDate = dayOff.getEndDate();
}
Expand All @@ -38,15 +40,15 @@ public static class DutyScheduleDTO {
private Long id;
private Long userId;
private String username;
private UserPosition position;
private int position;
private String reason;
private LocalDate date;

public DutyScheduleDTO(Duty duty) {
this.id = duty.getId();
this.userId = duty.getUser().getId();
this.username = duty.getUser().getUsername();
this.position = duty.getUser().getPosition();
this.position = duty.getUser().getPosition().getTypeNumber();
this.reason = duty.getReason();
this.date = duty.getDate();
}
Expand Down