Explorar el Código

线下版本-优化-mark_task表加level-20201119

xiaof hace 4 años
padre
commit
a7d8d03abe

+ 11 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/task/MarkTask.java

@@ -49,6 +49,8 @@ public class MarkTask implements Serializable {
 
 
     private String result;
     private String result;
 
 
+    private String level;
+
     private String originLevel;
     private String originLevel;
 
 
     private Integer levelValue;
     private Integer levelValue;
@@ -176,6 +178,7 @@ public class MarkTask implements Serializable {
         this.test = test != TrialEnum.DEFAULT.getId() ? TrialEnum.START_TRIAL.getId() : test;
         this.test = test != TrialEnum.DEFAULT.getId() ? TrialEnum.START_TRIAL.getId() : test;
 
 
         this.result = paper.getLevel();
         this.result = paper.getLevel();
+        this.level = paper.getLevel();
         this.levelValue = level.getLevelValue();
         this.levelValue = level.getLevelValue();
         this.updatedOn = new Date();
         this.updatedOn = new Date();
     }
     }
@@ -326,4 +329,12 @@ public class MarkTask implements Serializable {
     public void setDisplayNumber(Integer displayNumber) {
     public void setDisplayNumber(Integer displayNumber) {
         this.displayNumber = displayNumber;
         this.displayNumber = displayNumber;
     }
     }
+
+    public String getLevel() {
+        return level;
+    }
+
+    public void setLevel(String level) {
+        this.level = level;
+    }
 }
 }

+ 5 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskRepo.java

@@ -5,6 +5,7 @@ import cn.com.qmth.stmms.ms.core.domain.task.MarkTask;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.jpa.repository.Query;
 
 
 import java.util.List;
 import java.util.List;
@@ -229,4 +230,8 @@ public interface MarkTaskRepo extends JpaRepository<MarkTask, Long>, JpaSpecific
 
 
     @Query(value = "select id, random_seq_new randomSeqNew from mark_task m where m.work_id = ?1", nativeQuery = true)
     @Query(value = "select id, random_seq_new randomSeqNew from mark_task m where m.work_id = ?1", nativeQuery = true)
     List<Object[]> findAllByWorkId(Long workId);
     List<Object[]> findAllByWorkId(Long workId);
+
+    @Modifying
+    @Query("update MarkTask m set m.level = ?1 where m.paper.id = ?2")
+    void updateLevelByPaperId(String level, Long id);
 }
 }

+ 1 - 0
stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/aop/MarkLogAop.java

@@ -301,6 +301,7 @@ public class MarkLogAop {
                                 m.setRejected(true);
                                 m.setRejected(true);
                                 m.setOriginLevel(m.getResult());
                                 m.setOriginLevel(m.getResult());
                                 m.setResult(null);
                                 m.setResult(null);
+                                m.setLevel(null);
                                 MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(m.getMarkerId(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), m.getSubject().toString(), paper.getExamNumber());
                                 MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(m.getMarkerId(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), m.getSubject().toString(), paper.getExamNumber());
                                 if (Objects.nonNull(markLogPrev)) {
                                 if (Objects.nonNull(markLogPrev)) {
                                     operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
                                     operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");

+ 16 - 13
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/ChangeLevelApi.java

@@ -81,9 +81,9 @@ public class ChangeLevelApi {
             }
             }
             if (!StringUtils.isEmpty(questionId)) {
             if (!StringUtils.isEmpty(questionId)) {
                 List<Paper> papers;
                 List<Paper> papers;
-                if("1".equals(type)) {
+                if ("1".equals(type)) {
                     papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTest(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
                     papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTest(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
-                    if(papers != null && papers.size() > 0) {
+                    if (papers != null && papers.size() > 0) {
                         CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
                         CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
                         for (Paper paper : papers) {
                         for (Paper paper : papers) {
                             in.value(paper.getId());
                             in.value(paper.getId());
@@ -92,7 +92,7 @@ public class ChangeLevelApi {
                     }
                     }
                 } else {
                 } else {
                     papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndLevelIsNull(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
                     papers = paperRepo.findByworkIdAndSubjectAndQuestionIdAndIsMissingAndTestAndLevelIsNull(workId, Subject.valueOf(subject), questionId, false, TrialEnum.DEFAULT.ordinal());
-                    if(papers != null && papers.size() > 0) {
+                    if (papers != null && papers.size() > 0) {
                         CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
                         CriteriaBuilder.In<Object> in = builder.in(root.get("paperId"));
                         for (Paper paper : papers) {
                         for (Paper paper : papers) {
                             in.value(paper.getId());
                             in.value(paper.getId());
@@ -110,7 +110,7 @@ public class ChangeLevelApi {
                 predicates.add(builder.equal(root.get("subject"), subject));
                 predicates.add(builder.equal(root.get("subject"), subject));
             }
             }
             //改档处理
             //改档处理
-            if("1".equals(type)) {
+            if ("1".equals(type)) {
                 if (!StringUtils.isEmpty(status) && !StringUtils.isEmpty(status)) {
                 if (!StringUtils.isEmpty(status) && !StringUtils.isEmpty(status)) {
                     if (Objects.equals(status, "0")) {
                     if (Objects.equals(status, "0")) {
                         predicates.add(builder.equal(root.get("auditStatus"), status));
                         predicates.add(builder.equal(root.get("auditStatus"), status));
@@ -164,17 +164,17 @@ public class ChangeLevelApi {
 
 
         //
         //
         ChangeLevel changeLevelCurr = changeLevelRepo.findByWorkIdAndSubjectAndPaperIdAndAuditStatusAndIsCurr(markSubject.getWorkId(), markSubject.getSubject().name(), paperId);
         ChangeLevel changeLevelCurr = changeLevelRepo.findByWorkIdAndSubjectAndPaperIdAndAuditStatusAndIsCurr(markSubject.getWorkId(), markSubject.getSubject().name(), paperId);
-        if(changeLevelCurr != null){
-            if(Objects.isNull(paper.getLevel())){
+        if (changeLevelCurr != null) {
+            if (Objects.isNull(paper.getLevel())) {
                 throw new RuntimeException("纪检员已同意,请评卷员先完成改档");
                 throw new RuntimeException("纪检员已同意,请评卷员先完成改档");
             }
             }
-            if(Objects.isNull(paper.getScore())){
+            if (Objects.isNull(paper.getScore())) {
                 throw new RuntimeException("改档已完成,请评卷员完成改档打分");
                 throw new RuntimeException("改档已完成,请评卷员完成改档打分");
             }
             }
         }
         }
 
 
         List<ChangeLevel> list = changeLevelRepo.findAllByWorkIdAndSubjectAndPaperId(markSubject.getWorkId(), markSubject.getSubject().name(), paperId);
         List<ChangeLevel> list = changeLevelRepo.findAllByWorkIdAndSubjectAndPaperId(markSubject.getWorkId(), markSubject.getSubject().name(), paperId);
-        list.stream().map(m->{
+        list.stream().map(m -> {
             m.setIsCurr(0);
             m.setIsCurr(0);
             return m;
             return m;
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
@@ -225,7 +225,7 @@ public class ChangeLevelApi {
         changeLevel.setAuditStatus(auditStatus);
         changeLevel.setAuditStatus(auditStatus);
         changeLevelRepo.save(changeLevel);
         changeLevelRepo.save(changeLevel);
         //同意
         //同意
-        if(auditStatus == 1) {
+        if (auditStatus == 1) {
             Paper paper = paperRepo.findOne(changeLevel.getPaperId());
             Paper paper = paperRepo.findOne(changeLevel.getPaperId());
             //重置分数
             //重置分数
             paper.setScore(null);
             paper.setScore(null);
@@ -233,20 +233,23 @@ public class ChangeLevelApi {
             paper.setShift(true);
             paper.setShift(true);
             paper.setShiftScore(true);
             paper.setShiftScore(true);
             List<MarkTask> markTasks = markTaskRepo.findByPaperIdAndStage(paper.getId(), MarkStage.LEVEL);
             List<MarkTask> markTasks = markTaskRepo.findByPaperIdAndStage(paper.getId(), MarkStage.LEVEL);
-            List<String> ranges = markTasks.stream().map(m->m.getMarkerId().toString()).collect(Collectors.toList());
+            List<String> ranges = markTasks.stream().map(m -> m.getMarkerId().toString()).collect(Collectors.toList());
             markingService.reject(paper, changeLevel.getSuggestLevel(), String.join(",", ranges));
             markingService.reject(paper, changeLevel.getSuggestLevel(), String.join(",", ranges));
 
 
             //重置已经打分的数据
             //重置已经打分的数据
             List<MarkTask> markTasksScore = markTaskRepo.findByPaperIdAndStage(paper.getId(), MarkStage.SCORE);
             List<MarkTask> markTasksScore = markTaskRepo.findByPaperIdAndStage(paper.getId(), MarkStage.SCORE);
-            if (markTasksScore != null && markTasksScore.size() > 0){
-                markTasksScore.forEach(o-> o.setResult(null));
+            if (markTasksScore != null && markTasksScore.size() > 0) {
+                markTasksScore.forEach(o -> {
+                    o.setResult(null);
+                    o.setLevel(null);
+                });
                 markTaskRepo.save(markTasksScore);
                 markTaskRepo.save(markTasksScore);
             }
             }
 
 
             //记录日志
             //记录日志
             MarkUser markUser = markUserRepo.findOne(userId);
             MarkUser markUser = markUserRepo.findOne(userId);
             Work work = workRepo.findOne(paper.getWorkId());
             Work work = workRepo.findOne(paper.getWorkId());
-            MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.CHANGE_LEVEL_AGREE.getId(), paper.getWorkId(), paper.getId(), MarkStage.SCORE, changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, work.getName(), new Date());
+            MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), paper.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.CHANGE_LEVEL_AGREE.getId(), paper.getWorkId(), paper.getId(), MarkStage.SCORE, changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, work.getName(), new Date());
             markLogRepo.save(markLog);
             markLogRepo.save(markLog);
         }
         }
         return new ResponseEntity(HttpStatus.OK);
         return new ResponseEntity(HttpStatus.OK);

+ 1 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkTaskApi.java

@@ -165,7 +165,7 @@ public class MarkTaskApi {
 //            predicates.add(builder.equal(root.get("isActive"), false));
 //            predicates.add(builder.equal(root.get("isActive"), false));
             return builder.and(predicates.toArray(new Predicate[predicates.size()]));
             return builder.and(predicates.toArray(new Predicate[predicates.size()]));
         };
         };
-        Sort sort = new Sort( "randomSeq","paper.level", "serialNumber", "randomSeqNew");
+        Sort sort = new Sort( "randomSeq","level", "serialNumber", "randomSeqNew");
         Pageable pageable1 = new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), sort);
         Pageable pageable1 = new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), sort);
         Page<MarkTask> markTasks = markTaskRepo.findAll(specification, pageable1);
         Page<MarkTask> markTasks = markTaskRepo.findAll(specification, pageable1);
 
 

+ 1 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/TaskApi.java

@@ -136,6 +136,7 @@ public class TaskApi {
                 markTask.setRejected(true);
                 markTask.setRejected(true);
                 markTask.setOriginLevel(markTask.getResult());
                 markTask.setOriginLevel(markTask.getResult());
                 markTask.setResult(null);
                 markTask.setResult(null);
+                markTask.setLevel(null);
             }
             }
             markTaskRepo.save(markTask);
             markTaskRepo.save(markTask);
             paperRepo.save(paper);
             paperRepo.save(paper);

+ 3 - 2
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/AssignTaskService.java

@@ -163,6 +163,7 @@ public class AssignTaskService {
                     markTask.setBatchNo(currentTime);
                     markTask.setBatchNo(currentTime);
                     markTask.setSerialNumber(serialNumber);
                     markTask.setSerialNumber(serialNumber);
                     markTask.setDisplayNumber(displayNumber);
                     markTask.setDisplayNumber(displayNumber);
+                    markTask.setLevel(paper.getLevel());
                 } else {
                 } else {
                     if (paper.isSample() && paper.getLevel() != null) {
                     if (paper.isSample() && paper.getLevel() != null) {
                         Level level = levelRepo.findByWorkIdAndCode(markSubject.getWorkId(), paper.getLevel());
                         Level level = levelRepo.findByWorkIdAndCode(markSubject.getWorkId(), paper.getLevel());
@@ -195,9 +196,9 @@ public class AssignTaskService {
         }
         }
 
 
         List<MarkTask> data = new ArrayList<>();
         List<MarkTask> data = new ArrayList<>();
-        int mod = markTaskList.size() / 5000;
+        //5000条提交一次
         for (MarkTask markTask : markTaskList) {
         for (MarkTask markTask : markTaskList) {
-            if (data.size() == markTaskList.size() / mod) {
+            if (data.size() == 5000) {
                 markTaskRepo.save(data);
                 markTaskRepo.save(data);
                 data.clear();
                 data.clear();
             }
             }

+ 5 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java

@@ -163,6 +163,9 @@ public class MarkingService {
             //重新分档,打回科组长打回状态改为false
             //重新分档,打回科组长打回状态改为false
             paper.setRejectedByLeader(false);
             paper.setRejectedByLeader(false);
             paperRepo.save(paper);
             paperRepo.save(paper);
+
+            //同步mark_task表中level
+            markTaskRepo.updateLevelByPaperId(paper.getLevel(), paper.getId());
         }
         }
         long end = System.currentTimeMillis();
         long end = System.currentTimeMillis();
         LOG.info("提交分档耗时:{}", (end - start) / 1000 + "s");
         LOG.info("提交分档耗时:{}", (end - start) / 1000 + "s");
@@ -276,6 +279,7 @@ public class MarkingService {
 //            markTask.setOriginLevel(markTask.getResult());
 //            markTask.setOriginLevel(markTask.getResult());
             markTask.setRejected(false);
             markTask.setRejected(false);
             markTask.setResult(level);
             markTask.setResult(level);
+            markTask.setLevel(level);
         }
         }
         markTaskRepo.save(markTasks);
         markTaskRepo.save(markTasks);
         levelsLog(markTasks, paper);
         levelsLog(markTasks, paper);
@@ -317,6 +321,7 @@ public class MarkingService {
                         markTask.setRejected(true);
                         markTask.setRejected(true);
                         markTask.setOriginLevel(markTask.getResult());
                         markTask.setOriginLevel(markTask.getResult());
                         markTask.setResult(null);
                         markTask.setResult(null);
+                        markTask.setLevel(null);
                         MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markTask.getMarkerId(), MarkLogOperType.HANDLE_LEVEl.getId(), markTask.getSubject().toString(), paper.getExamNumber());
                         MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markTask.getMarkerId(), MarkLogOperType.HANDLE_LEVEl.getId(), markTask.getSubject().toString(), paper.getExamNumber());
                         if (Objects.nonNull(markLogPrev)) {
                         if (Objects.nonNull(markLogPrev)) {
                             operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
                             operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");