3321 PO Sort reviewer candidates
This commit is contained in:
parent
7720a7e8a2
commit
dc616e48fe
core/src/main/java/se/su/dsv/scipro/reviewing
@ -21,5 +21,8 @@ public record ReviewerCandidates(
|
||||
List<Candidate> unavailable)
|
||||
{
|
||||
public record Candidate(User reviewer, int target, int assigned, String note) {
|
||||
public int remainingTargets() {
|
||||
return target - assigned;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -174,6 +174,23 @@ class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAs
|
||||
}
|
||||
}
|
||||
|
||||
Comparator<ReviewerCandidates.Candidate> byLastName = Comparator.comparing(
|
||||
ReviewerCandidates.Candidate::reviewer,
|
||||
Comparator.comparing(User::getLastName));
|
||||
Comparator<ReviewerCandidates.Candidate> byNumberOfResearchAreas = Comparator.comparing(
|
||||
candidate -> candidate.reviewer().getResearchAreas().size());
|
||||
Comparator<ReviewerCandidates.Candidate> byRemainingTargets = Comparator.comparing(
|
||||
ReviewerCandidates.Candidate::remainingTargets);
|
||||
|
||||
good.sort(byRemainingTargets.reversed()
|
||||
.thenComparing(byNumberOfResearchAreas)
|
||||
.thenComparing(byLastName));
|
||||
wrongResearchArea.sort(byRemainingTargets.reversed()
|
||||
.thenComparing(byLastName));
|
||||
busy.sort(byLastName);
|
||||
unavailable.sort(byLastName);
|
||||
wrongLanguage.sort(byLastName);
|
||||
|
||||
ReviewPeriod reviewPeriod = !date.isAfter(endOfSpring(date.getYear()))
|
||||
? new ReviewPeriod(Year.of(date.getYear()), ReviewPeriod.Part.SPRING)
|
||||
: new ReviewPeriod(Year.of(date.getYear()), ReviewPeriod.Part.AUTUMN);
|
||||
|
Loading…
x
Reference in New Issue
Block a user