|
@@ -100,6 +100,17 @@ public class MarkTaskApi {
|
|
|
Pageable pageable) throws Exception {
|
|
|
List<MarkTaskDTO> markTaskDTOs = new ArrayList<>();
|
|
|
MarkUser markUser = markUserRepo.findOne(markerId);
|
|
|
+ Long batchNo = null;
|
|
|
+ Long scoreBatchNo = null;
|
|
|
+ if (stage == MarkStage.LEVEL) {
|
|
|
+ batchNo = paperRepo.findMaxBatchNoByWorkIdAndSubject(workId, markUser.getSubject());
|
|
|
+ } else if (stage == MarkStage.SCORE) {
|
|
|
+ scoreBatchNo = paperRepo.findMaxScoreBatchNoByWorkIdAndSubject(workId, markUser.getSubject());
|
|
|
+ }
|
|
|
+ Long finalBatchNo = batchNo;
|
|
|
+ Long finalScoreBatchNo = scoreBatchNo;
|
|
|
+ Integer levelShowAllPaper = ParamCache.paramMap.get(workId).getLevelShowAllPaper();
|
|
|
+ Integer scoreShowAllPaper = ParamCache.paramMap.get(workId).getScoreShowAllPaper();
|
|
|
Specification<MarkTask> specification = (root, query, builder) -> {
|
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
|
List<Predicate> onPredicates = new ArrayList<>();
|
|
@@ -112,64 +123,45 @@ public class MarkTaskApi {
|
|
|
if (level == null) {
|
|
|
predicates.add(builder.isNull(root.get("result")));
|
|
|
if (stage == MarkStage.SCORE) {
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("isShift"), false));
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("isShiftScore"), false));
|
|
|
onPredicates.add(builder.equal(join.get("isShift"), false));
|
|
|
onPredicates.add(builder.equal(join.get("isShiftScore"), false));
|
|
|
}
|
|
|
} else if (stage == MarkStage.LEVEL) {
|
|
|
//查询
|
|
|
predicates.add(builder.equal(root.get("result"), level));
|
|
|
- if (ParamCache.paramMap.get(workId).getLevelShowAllPaper() == 0) {
|
|
|
-// Long batchNo = paperRepo.findByQuestionId(questionId);
|
|
|
- Long batchNo = paperRepo.findMaxBatchNoByWorkIdAndSubject(workId, markUser.getSubject());
|
|
|
- if (!Objects.isNull(batchNo)) {
|
|
|
+ if (levelShowAllPaper == 0) {
|
|
|
+ if (!Objects.isNull(finalBatchNo)) {
|
|
|
// predicates.add(builder.equal(root.get("paper").get("batchNo"), batchNo));
|
|
|
- onPredicates.add(builder.equal(join.get("batchNo"), batchNo));
|
|
|
+ onPredicates.add(builder.equal(join.get("batchNo"), finalBatchNo));
|
|
|
}
|
|
|
}
|
|
|
} else if (stage == MarkStage.SCORE) {
|
|
|
-// Long batchNo = paperRepo.findScoreBatchNoByQuestionId(questionId);
|
|
|
- Long batchNo = paperRepo.findMaxScoreBatchNoByWorkIdAndSubject(workId, markUser.getSubject());
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("level"), level));
|
|
|
onPredicates.add(builder.equal(join.get("level"), level));
|
|
|
predicates.add(builder.isNotNull(root.get("result")));
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("isShift"), false));
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("isShiftScore"), false));
|
|
|
onPredicates.add(builder.equal(join.get("isShift"), false));
|
|
|
-// onPredicates.add(builder.equal(join.get("isShiftScore"), false));
|
|
|
- if (ParamCache.paramMap.get(workId).getScoreShowAllPaper() == 1) {
|
|
|
-// predicates.add(builder.isNotNull(root.get("paper").get("scoreBatchNo")));
|
|
|
+ if (scoreShowAllPaper == 1) {
|
|
|
onPredicates.add(builder.isNotNull(join.get("scoreBatchNo")));
|
|
|
} else {
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("scoreBatchNo"), batchNo));
|
|
|
- onPredicates.add(builder.equal(join.get("scoreBatchNo"), batchNo));
|
|
|
+ onPredicates.add(builder.equal(join.get("scoreBatchNo"), finalScoreBatchNo));
|
|
|
}
|
|
|
}
|
|
|
if (isSample != null) {
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("isSample"), isSample));
|
|
|
onPredicates.add(builder.equal(join.get("isSample"), isSample));
|
|
|
}
|
|
|
if (reject != null && reject) {
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("isRejected"), reject));
|
|
|
onPredicates.add(builder.equal(join.get("isRejected"), reject));
|
|
|
} else {
|
|
|
predicates.add(builder.equal(root.get("isRejected"), reject));
|
|
|
}
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("isMissing"), false));
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("active"), true));
|
|
|
-// onPredicates.add(builder.equal(join.get("isMissing"), false));
|
|
|
onPredicates.add(builder.equal(join.get("active"), true));
|
|
|
//过滤考区
|
|
|
if (Objects.nonNull(areaCode)) {
|
|
|
-// predicates.add(builder.equal(root.get("paper").get("areaCode"), areaCode));
|
|
|
onPredicates.add(builder.equal(join.get("areaCode"), areaCode));
|
|
|
}
|
|
|
join.on(onPredicates.toArray(new Predicate[onPredicates.size()]));
|
|
|
-// predicates.add(builder.equal(root.get("isActive"), false));
|
|
|
return builder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
};
|
|
|
- Sort sort = new Sort( "randomSeq", "randomSeqNew");
|
|
|
+ Sort sort = new Sort("randomSeq", "randomSeqNew");
|
|
|
Pageable pageable1 = new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), sort);
|
|
|
long t1 = System.currentTimeMillis();
|
|
|
Page<MarkTask> markTasks = markTaskRepo.findAll(specification, pageable1);
|
|
@@ -191,9 +183,12 @@ public class MarkTaskApi {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ long t3 = System.currentTimeMillis();
|
|
|
markTasks.getContent().forEach(m -> {
|
|
|
markTaskDTOs.add(markTaskAssembler.toDTO(m));
|
|
|
});
|
|
|
+ long t4 = System.currentTimeMillis();
|
|
|
+ System.out.println("m2:" + (t4 - t3));
|
|
|
if (stage == MarkStage.SCORE && Objects.isNull(level)) {
|
|
|
// if (Objects.nonNull(scoreConfig) && Objects.nonNull(scoreConfig.getTaskSort()) && Objects.equals("paper", scoreConfig.getTaskSort())) {
|
|
|
// Collections.sort(markTaskDTOs, Comparator.comparing(MarkTaskDTO::getPaperId));
|
|
@@ -416,11 +411,10 @@ public class MarkTaskApi {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
@RequestMapping(value = "/kzzReviewPaper", method = RequestMethod.GET)
|
|
|
public List<PaperDTO> reviewPaper(@RequestParam Long workId,
|
|
|
- @RequestParam Subject subject,
|
|
|
- @RequestParam Long questionId) {
|
|
|
+ @RequestParam Subject subject,
|
|
|
+ @RequestParam Long questionId) {
|
|
|
Specification<Paper> specification = (root, query, builder) -> {
|
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
|
predicates.add(builder.equal(root.get("workId"), workId));
|