|
@@ -1,5 +1,6 @@
|
|
package cn.com.qmth.stmms.ms.marking.api;
|
|
package cn.com.qmth.stmms.ms.marking.api;
|
|
|
|
|
|
|
|
+import cn.com.qmth.stmms.ms.commons.utils.specification.PagingAndSortingDTO;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLog;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLog;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLogOperType;
|
|
import cn.com.qmth.stmms.ms.core.domain.MarkLogOperType;
|
|
import cn.com.qmth.stmms.ms.core.domain.Paper;
|
|
import cn.com.qmth.stmms.ms.core.domain.Paper;
|
|
@@ -13,6 +14,7 @@ import cn.com.qmth.stmms.ms.core.repository.WorkRepo;
|
|
import cn.com.qmth.stmms.ms.marking.assembler.PaperAssembler;
|
|
import cn.com.qmth.stmms.ms.marking.assembler.PaperAssembler;
|
|
import cn.com.qmth.stmms.ms.marking.dto.PaperDTO;
|
|
import cn.com.qmth.stmms.ms.marking.dto.PaperDTO;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.PageRequest;
|
|
import org.springframework.data.domain.PageRequest;
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -58,10 +60,13 @@ public class TaskApi {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping("/search")
|
|
@RequestMapping("/search")
|
|
- public PaperDTO searchBySecretNumber(@RequestParam("workId") Long workId,
|
|
|
|
- @RequestParam("secretNumber") String secretNumber,
|
|
|
|
- @RequestParam("type") String type) {
|
|
|
|
- PaperDTO paperDTO = null;
|
|
|
|
|
|
+ public PagingAndSortingDTO searchBySecretNumber(@RequestParam("workId") Long workId,
|
|
|
|
+ @RequestParam(required = false) String secretNumber,
|
|
|
|
+ @RequestParam("type") String type,
|
|
|
|
+ @RequestParam(required = false) Long startNumber,
|
|
|
|
+ @RequestParam(required = false) Long endNumber,
|
|
|
|
+ @RequestParam("page") Integer page,
|
|
|
|
+ @RequestParam("size") Integer size) {
|
|
if ("paper".equals(type)) {
|
|
if ("paper".equals(type)) {
|
|
Specification<Paper> specification = (root, query, builder) -> {
|
|
Specification<Paper> specification = (root, query, builder) -> {
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
@@ -69,14 +74,20 @@ public class TaskApi {
|
|
if (secretNumber != null) {
|
|
if (secretNumber != null) {
|
|
predicates.add(builder.equal(root.get("secretNumber"), secretNumber));
|
|
predicates.add(builder.equal(root.get("secretNumber"), secretNumber));
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ if (startNumber != null && endNumber != null) {
|
|
|
|
+ predicates.add(builder.between(root.get("examNumber"), startNumber, endNumber));
|
|
|
|
+ } else if (startNumber != null) {
|
|
|
|
+ predicates.add(builder.equal(root.get("examNumber"), startNumber));
|
|
|
|
+ }
|
|
return builder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
return builder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
};
|
|
};
|
|
- Optional<Paper> paperOptional = paperRepo.findAll(specification, new PageRequest(0, 1))
|
|
|
|
- .getContent().stream().findFirst();
|
|
|
|
- if (paperOptional.isPresent()) {
|
|
|
|
- paperDTO = paperAssembler.toDTO(paperOptional.get());
|
|
|
|
|
|
+ Page<Paper> paperOptional = paperRepo.findAll(specification, new PageRequest(page, size));
|
|
|
|
+ List<PaperDTO> list = new ArrayList<>();
|
|
|
|
+ for (Paper paper : paperOptional) {
|
|
|
|
+ list.add(paperAssembler.toDTO(paper));
|
|
}
|
|
}
|
|
|
|
+ return new PagingAndSortingDTO(paperOptional.getNumber(), paperOptional.getSize(), paperOptional.getTotalPages(),
|
|
|
|
+ paperOptional.getTotalElements(), list);
|
|
} else if ("task".equals(type)) {
|
|
} else if ("task".equals(type)) {
|
|
Specification<MarkTask> specification = (root, query, builder) -> {
|
|
Specification<MarkTask> specification = (root, query, builder) -> {
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
@@ -86,15 +97,18 @@ public class TaskApi {
|
|
}
|
|
}
|
|
return builder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
return builder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
};
|
|
};
|
|
- Optional<MarkTask> taskOptional = markTaskRepo.findAll(specification, new PageRequest(0, 1))
|
|
|
|
- .getContent().stream().findFirst();
|
|
|
|
- if (taskOptional.isPresent()) {
|
|
|
|
- paperDTO = paperAssembler.toDTO(taskOptional.get().getPaper());
|
|
|
|
|
|
+ Page<MarkTask> taskOptional = markTaskRepo.findAll(specification, new PageRequest(page, size));
|
|
|
|
+ List<PaperDTO> list = new ArrayList<>();
|
|
|
|
+ for (MarkTask markTask : taskOptional) {
|
|
|
|
+ PaperDTO paperDto = paperAssembler.toDTO(markTask.getPaper());
|
|
//设置为任务的密号
|
|
//设置为任务的密号
|
|
- paperDTO.setSn(taskOptional.get().getSecretNumber());
|
|
|
|
|
|
+ paperDto.setSn(markTask.getSecretNumber());
|
|
|
|
+ list.add(paperDto);
|
|
}
|
|
}
|
|
|
|
+ return new PagingAndSortingDTO(taskOptional.getNumber(), taskOptional.getSize(), taskOptional.getTotalPages(),
|
|
|
|
+ taskOptional.getTotalElements(), list);
|
|
}
|
|
}
|
|
- return paperDTO;
|
|
|
|
|
|
+ return null;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -102,35 +116,39 @@ public class TaskApi {
|
|
* 重评
|
|
* 重评
|
|
*
|
|
*
|
|
* @param paperId
|
|
* @param paperId
|
|
- * @param secretNumber
|
|
|
|
|
|
+ * @param ranges
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@Transactional
|
|
@Transactional
|
|
@RequestMapping("/reevaluation")
|
|
@RequestMapping("/reevaluation")
|
|
public boolean reevaluation(@RequestParam("paperId") Long paperId,
|
|
public boolean reevaluation(@RequestParam("paperId") Long paperId,
|
|
- @RequestParam("secretNumber") String secretNumber) {
|
|
|
|
|
|
+ @RequestParam("ranges") String ranges) {
|
|
Paper paper = paperRepo.findOne(paperId);
|
|
Paper paper = paperRepo.findOne(paperId);
|
|
paper.reject(null);
|
|
paper.reject(null);
|
|
//重评后撤销标准卷
|
|
//重评后撤销标准卷
|
|
// paper.setSample(false);
|
|
// paper.setSample(false);
|
|
- MarkTask markTask = markTaskRepo.findByPaperIdAndSecretNumber(paperId, secretNumber);
|
|
|
|
- if (markTask != null) {
|
|
|
|
- markTask.setRejected(true);
|
|
|
|
- markTask.setOriginLevel(markTask.getResult());
|
|
|
|
- markTask.setResult(null);
|
|
|
|
- }
|
|
|
|
- markTaskRepo.save(markTask);
|
|
|
|
- paperRepo.save(paper);
|
|
|
|
|
|
+ String[] range = ranges.split(",");
|
|
|
|
+ for (String markId : range) {
|
|
|
|
+ MarkTask markTask = markTaskRepo.findByPaperIdAndMarkerId(paperId, Long.valueOf(markId));
|
|
|
|
+ if (markTask != null) {
|
|
|
|
+ markTask.setRejected(true);
|
|
|
|
+ markTask.setOriginLevel(markTask.getResult());
|
|
|
|
+ markTask.setResult(null);
|
|
|
|
+ }
|
|
|
|
+ markTaskRepo.save(markTask);
|
|
|
|
+ paperRepo.save(paper);
|
|
|
|
|
|
- //加入重评日志
|
|
|
|
- String operResult = "-";
|
|
|
|
- MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markTask.getMarkerId(), MarkLogOperType.REEVALUATION_LEVEl.getId(), markTask.getSubject().toString(), paper.getExamNumber());
|
|
|
|
- if (Objects.nonNull(markLogPrev)) {
|
|
|
|
- operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
|
|
+ //加入重评日志
|
|
|
|
+ String operResult = "-";
|
|
|
|
+ MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markTask.getMarkerId(), MarkLogOperType.REEVALUATION_LEVEl.getId(), markTask.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ if (Objects.nonNull(markLogPrev)) {
|
|
|
|
+ operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+ }
|
|
|
|
+ Work work = workRepo.findOne(paper.getWorkId());
|
|
|
|
+ MarkLog markLog = new MarkLog(markTask.getMarkerId(), markTask.getMarkerName(), Role.MARKER, markTask.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.REEVALUATION_LEVEl.getId(), paper.getWorkId(), paper.getId(), markTask.getStage(), operResult, markTask.getOriginLevel(), MarkLogOperType.REEVALUATION_LEVEl.getName(), work.getName());
|
|
|
|
+ markLogRepo.save(markLog);
|
|
}
|
|
}
|
|
- Work work = workRepo.findOne(paper.getWorkId());
|
|
|
|
- MarkLog markLog = new MarkLog(markTask.getMarkerId(), markTask.getMarkerName(), Role.MARKER, markTask.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.REEVALUATION_LEVEl.getId(), paper.getWorkId(), paper.getId(), markTask.getStage(), operResult, markTask.getOriginLevel(), MarkLogOperType.REEVALUATION_LEVEl.getName(), work.getName());
|
|
|
|
- markLogRepo.save(markLog);
|
|
|
|
|
|
+
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|