3204 Lower assigned targets
This commit is contained in:
parent
4b727167e5
commit
08490fafe5
core/src
main/java/se/su/dsv/scipro/reviewing
test/java/se/su/dsv/scipro/reviewing
@ -32,12 +32,20 @@ class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAs
|
||||
|
||||
@Override
|
||||
public void assignTarget(User reviewer, DateRange dateRange, int target) {
|
||||
ReviewerTarget reviewerTarget = new ReviewerTarget();
|
||||
reviewerTarget.setReviewer(reviewer);
|
||||
reviewerTarget.setFromDate(dateRange.from());
|
||||
reviewerTarget.setToDate(dateRange.to());
|
||||
reviewerTarget.setTarget(target);
|
||||
reviewerTargetRepository.save(reviewerTarget);
|
||||
Optional<ReviewerTarget> currentTarget = reviewerTargetRepository.getExactReviewTarget(reviewer, dateRange);
|
||||
if (currentTarget.isPresent()) {
|
||||
ReviewerTarget targetToUpdate = currentTarget.get();
|
||||
targetToUpdate.setTarget(target);
|
||||
reviewerTargetRepository.save(targetToUpdate);
|
||||
}
|
||||
else {
|
||||
ReviewerTarget reviewerTarget = new ReviewerTarget();
|
||||
reviewerTarget.setReviewer(reviewer);
|
||||
reviewerTarget.setFromDate(dateRange.from());
|
||||
reviewerTarget.setToDate(dateRange.to());
|
||||
reviewerTarget.setTarget(target);
|
||||
reviewerTargetRepository.save(reviewerTarget);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,6 +4,7 @@ import se.su.dsv.scipro.system.User;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface ReviewerTargetRepository {
|
||||
void save(ReviewerTarget reviewerTarget);
|
||||
@ -11,4 +12,6 @@ public interface ReviewerTargetRepository {
|
||||
List<ReviewerTarget> getReviewerTargets(User reviewer, LocalDate date);
|
||||
|
||||
List<ReviewerTarget> getAllReviewerTargets(LocalDate date);
|
||||
|
||||
Optional<ReviewerTarget> getExactReviewTarget(User reviewer, DateRange dateRange);
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public class ReviewerTargetRepositoryImpl extends AbstractRepository implements ReviewerTargetRepository {
|
||||
@Inject
|
||||
@ -43,4 +44,15 @@ public class ReviewerTargetRepositoryImpl extends AbstractRepository implements
|
||||
.and(QReviewerTarget.reviewerTarget.toDate.goe(date)))
|
||||
.fetch();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<ReviewerTarget> getExactReviewTarget(User reviewer, DateRange dateRange) {
|
||||
ReviewerTarget current =
|
||||
from(QReviewerTarget.reviewerTarget)
|
||||
.where(QReviewerTarget.reviewerTarget.reviewer.eq(reviewer)
|
||||
.and(QReviewerTarget.reviewerTarget.fromDate.eq(dateRange.from()))
|
||||
.and(QReviewerTarget.reviewerTarget.toDate.eq(dateRange.to())))
|
||||
.fetchOne();
|
||||
return Optional.ofNullable(current);
|
||||
}
|
||||
}
|
||||
|
@ -117,4 +117,19 @@ class ReviewerCapacityServiceImplTest extends IntegrationTest {
|
||||
// then
|
||||
assertTrue(candidates.good().stream().anyMatch(c -> c.reviewer().equals(reviewer)));
|
||||
}
|
||||
|
||||
@Test
|
||||
void lower_target_for_a_reviewer() {
|
||||
// given
|
||||
reviewer.setLanguages(EnumSet.allOf(Language.class));
|
||||
reviewer.addResearchArea(researchArea);
|
||||
|
||||
// when
|
||||
service.assignTarget(reviewer, VT24, 3);
|
||||
service.assignTarget(reviewer, VT24, 2);
|
||||
|
||||
// then
|
||||
int candidates = service.getTarget(reviewer, VT24);
|
||||
assertEquals(2, candidates);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user