Selaa lähdekoodia

美术阅卷10月新增需求-重评日志修改

wangliang 5 vuotta sitten
vanhempi
commit
57a6dada8e

+ 29 - 30
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/TaskApi.java

@@ -1,9 +1,10 @@
 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.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.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.MarkTaskRepo;
 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 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
@@ -42,6 +46,7 @@ public class TaskApi {
 
     /**
      * 任务管理查询
+     *
      * @param workId
      * @param secretNumber
      * @param type
@@ -50,35 +55,35 @@ public class TaskApi {
     @RequestMapping("/search")
     public PaperDTO searchBySecretNumber(@RequestParam("workId") Long workId,
                                          @RequestParam("secretNumber") String secretNumber,
-                                         @RequestParam("type") String type){
+                                         @RequestParam("type") String type) {
         PaperDTO paperDTO = null;
-        if("paper".equals(type)){
+        if ("paper".equals(type)) {
             Specification<Paper> specification = (root, query, builder) -> {
                 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));
                 }
 
                 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();
-            if(paperOptional.isPresent()){
+            if (paperOptional.isPresent()) {
                 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<>();
                 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()]));
             };
-            Optional<MarkTask> taskOptional = markTaskRepo.findAll(specification,new PageRequest(0,1))
+            Optional<MarkTask> taskOptional = markTaskRepo.findAll(specification, new PageRequest(0, 1))
                     .getContent().stream().findFirst();
-            if(taskOptional.isPresent()){
+            if (taskOptional.isPresent()) {
                 paperDTO = paperAssembler.toDTO(taskOptional.get().getPaper());
                 //设置为任务的密号
                 paperDTO.setSn(taskOptional.get().getSecretNumber());
@@ -90,6 +95,7 @@ public class TaskApi {
 
     /**
      * 重评
+     *
      * @param paperId
      * @param secretNumber
      * @return
@@ -97,13 +103,13 @@ public class TaskApi {
     @Transactional
     @RequestMapping("/reevaluation")
     public boolean reevaluation(@RequestParam("paperId") Long paperId,
-                                @RequestParam("secretNumber") String secretNumber){
+                                @RequestParam("secretNumber") String secretNumber) {
         Paper paper = paperRepo.findOne(paperId);
         paper.reject(null);
         //重评后撤销标准卷
 //        paper.setSample(false);
         MarkTask markTask = markTaskRepo.findByPaperIdAndSecretNumber(paperId, secretNumber);
-        if(markTask != null){
+        if (markTask != null) {
             markTask.setRejected(true);
             markTask.setOriginLevel(markTask.getResult());
             markTask.setResult(null);
@@ -111,21 +117,14 @@ public class TaskApi {
         markTaskRepo.save(markTask);
         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);
-
         return true;
     }