|
@@ -1,9 +1,10 @@
|
|
package cn.com.qmth.stmms.ms.marking.api;
|
|
package cn.com.qmth.stmms.ms.marking.api;
|
|
|
|
|
|
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.MarkStage;
|
|
|
|
|
|
+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;
|
|
import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
|
|
import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
|
|
|
|
+import cn.com.qmth.stmms.ms.core.domain.user.Role;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkLogRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkLogRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkTaskRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.MarkTaskRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
|
|
import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
|
|
@@ -18,7 +19,10 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.persistence.criteria.Predicate;
|
|
import javax.persistence.criteria.Predicate;
|
|
-import java.util.*;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Objects;
|
|
|
|
+import java.util.Optional;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @author by xf
|
|
* @author by xf
|
|
@@ -42,6 +46,7 @@ public class TaskApi {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 任务管理查询
|
|
* 任务管理查询
|
|
|
|
+ *
|
|
* @param workId
|
|
* @param workId
|
|
* @param secretNumber
|
|
* @param secretNumber
|
|
* @param type
|
|
* @param type
|
|
@@ -50,35 +55,35 @@ public class TaskApi {
|
|
@RequestMapping("/search")
|
|
@RequestMapping("/search")
|
|
public PaperDTO searchBySecretNumber(@RequestParam("workId") Long workId,
|
|
public PaperDTO searchBySecretNumber(@RequestParam("workId") Long workId,
|
|
@RequestParam("secretNumber") String secretNumber,
|
|
@RequestParam("secretNumber") String secretNumber,
|
|
- @RequestParam("type") String type){
|
|
|
|
|
|
+ @RequestParam("type") String type) {
|
|
PaperDTO paperDTO = null;
|
|
PaperDTO paperDTO = null;
|
|
- 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<>();
|
|
- predicates.add(builder.equal(root.get("workId"),workId));
|
|
|
|
- if(secretNumber != null){
|
|
|
|
|
|
+ predicates.add(builder.equal(root.get("workId"), workId));
|
|
|
|
+ if (secretNumber != null) {
|
|
predicates.add(builder.equal(root.get("secretNumber"), secretNumber));
|
|
predicates.add(builder.equal(root.get("secretNumber"), secretNumber));
|
|
}
|
|
}
|
|
|
|
|
|
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))
|
|
|
|
|
|
+ Optional<Paper> paperOptional = paperRepo.findAll(specification, new PageRequest(0, 1))
|
|
.getContent().stream().findFirst();
|
|
.getContent().stream().findFirst();
|
|
- if(paperOptional.isPresent()){
|
|
|
|
|
|
+ if (paperOptional.isPresent()) {
|
|
paperDTO = paperAssembler.toDTO(paperOptional.get());
|
|
paperDTO = paperAssembler.toDTO(paperOptional.get());
|
|
}
|
|
}
|
|
- } else if ("task".equals(type)){
|
|
|
|
- Specification<MarkTask> specification = (root,query,builder) -> {
|
|
|
|
|
|
+ } else if ("task".equals(type)) {
|
|
|
|
+ Specification<MarkTask> specification = (root, query, builder) -> {
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
List<Predicate> predicates = new ArrayList<>();
|
|
predicates.add(builder.equal(root.get("workId"), workId));
|
|
predicates.add(builder.equal(root.get("workId"), workId));
|
|
- if(secretNumber != null){
|
|
|
|
- predicates.add(builder.equal(root.get("secretNumber"),secretNumber));
|
|
|
|
|
|
+ if (secretNumber != null) {
|
|
|
|
+ predicates.add(builder.equal(root.get("secretNumber"), secretNumber));
|
|
}
|
|
}
|
|
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))
|
|
|
|
|
|
+ Optional<MarkTask> taskOptional = markTaskRepo.findAll(specification, new PageRequest(0, 1))
|
|
.getContent().stream().findFirst();
|
|
.getContent().stream().findFirst();
|
|
- if(taskOptional.isPresent()){
|
|
|
|
|
|
+ if (taskOptional.isPresent()) {
|
|
paperDTO = paperAssembler.toDTO(taskOptional.get().getPaper());
|
|
paperDTO = paperAssembler.toDTO(taskOptional.get().getPaper());
|
|
//设置为任务的密号
|
|
//设置为任务的密号
|
|
paperDTO.setSn(taskOptional.get().getSecretNumber());
|
|
paperDTO.setSn(taskOptional.get().getSecretNumber());
|
|
@@ -90,6 +95,7 @@ public class TaskApi {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 重评
|
|
* 重评
|
|
|
|
+ *
|
|
* @param paperId
|
|
* @param paperId
|
|
* @param secretNumber
|
|
* @param secretNumber
|
|
* @return
|
|
* @return
|
|
@@ -97,13 +103,13 @@ public class TaskApi {
|
|
@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("secretNumber") String secretNumber) {
|
|
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);
|
|
MarkTask markTask = markTaskRepo.findByPaperIdAndSecretNumber(paperId, secretNumber);
|
|
- if(markTask != null){
|
|
|
|
|
|
+ if (markTask != null) {
|
|
markTask.setRejected(true);
|
|
markTask.setRejected(true);
|
|
markTask.setOriginLevel(markTask.getResult());
|
|
markTask.setOriginLevel(markTask.getResult());
|
|
markTask.setResult(null);
|
|
markTask.setResult(null);
|
|
@@ -111,21 +117,14 @@ public class TaskApi {
|
|
markTaskRepo.save(markTask);
|
|
markTaskRepo.save(markTask);
|
|
paperRepo.save(paper);
|
|
paperRepo.save(paper);
|
|
|
|
|
|
- //记录日志
|
|
|
|
- MarkLog markLog = new MarkLog();
|
|
|
|
- markLog.setExamNumber(paper.getExamNumber());
|
|
|
|
- markLog.setWorkId(paper.getWorkId());
|
|
|
|
- markLog.setPaperId(paperId);
|
|
|
|
- markLog.setSubject(paper.getSubject().toString());
|
|
|
|
- markLog.setCreateRole("管理员");
|
|
|
|
- markLog.setCreateTime(new Date());
|
|
|
|
- markLog.setCreateUserId(0L);
|
|
|
|
- markLog.setCreateUserName("admin-cy");
|
|
|
|
- markLog.setOperType(5);
|
|
|
|
- markLog.setStage(MarkStage.LEVEL);
|
|
|
|
- markLog.setStudentName(paper.getStudentName());
|
|
|
|
|
|
+ //加入重评日志
|
|
|
|
+ String operResult = null;
|
|
|
|
+ MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(-1L, MarkLogOperType.REEVALUATION_LEVEl.getId(), markTask.getSubject().toString(), paper.getExamNumber());
|
|
|
|
+ if (Objects.nonNull(markLogPrev)) {
|
|
|
|
+ operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
|
|
|
|
+ }
|
|
|
|
+ MarkLog markLog = new MarkLog(-1L, Role.ADMIN.getName(), Role.ADMIN, markTask.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.REEVALUATION_LEVEl.getId(), paper.getWorkId(), paper.getId(), markTask.getStage(), operResult, markTask.getResult(), "重评");
|
|
markLogRepo.save(markLog);
|
|
markLogRepo.save(markLog);
|
|
-
|
|
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|