|
@@ -454,6 +454,16 @@ public class MarkTaskApi {
|
|
|
public List<PaperDTO> reviewPaper(@RequestParam Long workId,
|
|
|
@RequestParam Subject subject,
|
|
|
@RequestParam Long questionId) {
|
|
|
+
|
|
|
+ MarkSubject markSubject = markSubjectRepo.findOne(workId + "-" + subject.name());
|
|
|
+ Long markerId = ServletUtil.getUserId();
|
|
|
+ List<MarkerGroupLeader> markerGroupLeaders = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndMarkLeaderId(markSubject.getWorkId(), markSubject, markerId);
|
|
|
+ List<Long> paperIds = null;
|
|
|
+ if (!CollectionUtils.isEmpty(markerGroupLeaders)) {
|
|
|
+ List<Long> markers = markerGroupLeaders.stream().map(m -> m.getMarkerId()).distinct().collect(Collectors.toList());
|
|
|
+ paperIds = markerGroupLeaderService.listPaperIdsByWorkIdAndSubjectAndStage(workId, markSubject.getSubject(), markSubject.getStage(), markers);
|
|
|
+ }
|
|
|
+ List<Long> finalPaperIds = paperIds;
|
|
|
Specification<Paper> specification = (root, query, builder) -> {
|
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
|
predicates.add(builder.equal(root.get("workId"), workId));
|
|
@@ -461,6 +471,15 @@ public class MarkTaskApi {
|
|
|
if (Objects.nonNull(questionId)) {
|
|
|
predicates.add(builder.equal(root.get("questionId"), questionId));
|
|
|
}
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(finalPaperIds)) {
|
|
|
+ CriteriaBuilder.In<Object> in = builder.in(root.get("id"));
|
|
|
+ for (Long id : finalPaperIds) {
|
|
|
+ in.value(id);
|
|
|
+ }
|
|
|
+ predicates.add(builder.and(builder.and(in)));
|
|
|
+ }
|
|
|
+
|
|
|
predicates.add(builder.equal(root.get("markByLeader"), true));
|
|
|
List<Predicate> list = new ArrayList<>();
|
|
|
list.add(builder.equal(root.get("isSample"), true));
|