3204 Return reviewer history even if they had no targets assigned
This commit is contained in:
parent
8817be1a0d
commit
4e08d1f82c
core/src/main/java/se/su/dsv/scipro/reviewing
@ -20,11 +20,11 @@ public interface ReviewerCapacityService {
|
||||
Target getTarget(User reviewer, Year year);
|
||||
|
||||
/**
|
||||
* Returns the target for the given reviewer up to, but not including, the given year.
|
||||
* Returns the history for the three years before the given year.
|
||||
*
|
||||
* @param reviewer the reviewer to get the targets for
|
||||
* @param year the year to get the targets up to, but not including
|
||||
* @return the entire history for the given reviewer up to the given year
|
||||
* @return the three-year history for the given reviewer up to the given year
|
||||
*/
|
||||
List<TargetHistory> getTargetHistory(User reviewer, Year year);
|
||||
|
||||
|
@ -18,6 +18,7 @@ import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAssignmentService {
|
||||
private final ReviewerTargetRepository reviewerTargetRepository;
|
||||
@ -94,17 +95,19 @@ class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAs
|
||||
|
||||
@Override
|
||||
public List<TargetHistory> getTargetHistory(User reviewer, Year year) {
|
||||
return reviewerTargetRepository.getReviewerTargetsBeforeYear(reviewer, year)
|
||||
.stream()
|
||||
.map(reviewerTarget -> {
|
||||
return Stream.iterate(year, y -> y.minusYears(1))
|
||||
.skip(1) // skip given year
|
||||
.limit(3) // get three years
|
||||
.map(historicYear -> {
|
||||
Optional<ReviewerTarget> reviewerTarget = reviewerTargetRepository.getReviewerTarget(reviewer, historicYear);
|
||||
int completedInSpring = decisionRepository.countDecisions(reviewer,
|
||||
startOfSpring(reviewerTarget.getYear()), endOfSpring(reviewerTarget.getYear()));
|
||||
startOfSpring(historicYear.getValue()), endOfSpring(historicYear.getValue()));
|
||||
int completedInAutumn = decisionRepository.countDecisions(reviewer,
|
||||
startOfAutumn(reviewerTarget.getYear()), endOfAutumn(reviewerTarget.getYear()));
|
||||
startOfAutumn(historicYear.getValue()), endOfAutumn(historicYear.getValue()));
|
||||
return new TargetHistory(
|
||||
Year.of(reviewerTarget.getYear()),
|
||||
reviewerTarget.getSpring(),
|
||||
reviewerTarget.getAutumn(),
|
||||
historicYear,
|
||||
reviewerTarget.map(ReviewerTarget::getSpring).orElse(0),
|
||||
reviewerTarget.map(ReviewerTarget::getAutumn).orElse(0),
|
||||
completedInSpring,
|
||||
completedInAutumn);
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user