From 47f20e44a16a3cf3c9176aae5a012fa8d7a69844 Mon Sep 17 00:00:00 2001 From: seongho5356 Date: Mon, 26 Jan 2026 14:44:16 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=8C=8C=ED=8A=B8=EB=B3=84=20=ED=8F=89?= =?UTF-8?q?=EA=B0=80=EA=B8=B0=EC=A4=80=20=EC=B9=B4=EC=9A=B4=ED=8A=B8=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../application/dto/ApplicationResponseDTO.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/.gitignore b/.gitignore index 8b446d9..1fda11f 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ out/ .DS_Store **/.DS_Store /keys/ +/docs/ diff --git a/src/main/java/KUSITMS/WITHUS/domain/application/application/dto/ApplicationResponseDTO.java b/src/main/java/KUSITMS/WITHUS/domain/application/application/dto/ApplicationResponseDTO.java index f480aaa..ff25970 100644 --- a/src/main/java/KUSITMS/WITHUS/domain/application/application/dto/ApplicationResponseDTO.java +++ b/src/main/java/KUSITMS/WITHUS/domain/application/application/dto/ApplicationResponseDTO.java @@ -17,6 +17,7 @@ import KUSITMS.WITHUS.domain.evaluation.evaluationCriteria.enumerate.EvaluationType; import KUSITMS.WITHUS.domain.interview.interviewQuestion.dto.InterviewQuestionResponseDTO; import KUSITMS.WITHUS.domain.interview.timeslot.entity.TimeSlot; +import KUSITMS.WITHUS.domain.organization.organizationRole.entity.OrganizationRole; import KUSITMS.WITHUS.domain.recruitment.availableTimeRange.entity.AvailableTimeRange; import KUSITMS.WITHUS.domain.recruitment.recruitment.entity.Recruitment; import KUSITMS.WITHUS.domain.user.user.dto.UserResponseDTO; @@ -289,17 +290,20 @@ public record SummaryForUser( ) { public static SummaryForUser from(Application application, Long currentUserId) { Recruitment recruitment = application.getRecruitment(); + OrganizationRole appRole = application.getOrganizationRole(); int documentCriteriaCount = (int) recruitment .getEvaluationCriteriaList() .stream() .filter(c -> c.getEvaluationType() == EvaluationType.DOCUMENT) + .filter(c -> matchesOrganizationRole(c, appRole)) .count(); int documentMaxScore = documentCriteriaCount * 10; List userDocsEvaluations = application.getEvaluations().stream() .filter(e -> e.getUser().getId().equals(currentUserId)) .filter(e -> e.getCriteria().getEvaluationType() == EvaluationType.DOCUMENT) + .filter(e -> matchesOrganizationRole(e.getCriteria(), appRole)) .toList(); boolean evaluated = !(documentCriteriaCount > userDocsEvaluations.size() || userDocsEvaluations.isEmpty()); @@ -336,6 +340,17 @@ public static SummaryForUser from(Application application, Long currentUserId) { interviewSchedule ); } + + private static boolean matchesOrganizationRole(EvaluationCriteria criteria, OrganizationRole appRole) { + OrganizationRole criteriaRole = criteria.getOrganizationRole(); + if (criteriaRole == null) { + return true; + } + if (appRole == null) { + return false; + } + return criteriaRole.getId().equals(appRole.getId()); + } } @Schema(description = "단계별 count 포함 관리자용 지원서 리스트 요약 응답 DTO")