Browse Source

联考版-v3.1.0-测试bug修复

xiaof 2 years ago
parent
commit
02926f8eea

+ 1 - 1
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/ToolService.java

@@ -96,7 +96,7 @@ public class ToolService {
         Work work = workRepo.findOne(workId);
 
         // 备份数据库
-        dbBackupUtils.startBackup(workId, "系统调档");
+        dbBackupUtils.startBackup(workId, "系统调档", "调档备份");
 
         // 处理调档,记录日志
         List<Paper> paperList = paperRepo.findByWorkIdAndSubjectOrderByLevelAscSortNumDesc(workId, subject);

+ 5 - 2
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/TrialService.java

@@ -2,7 +2,10 @@ package cn.com.qmth.stmms.ms.admin.service;
 
 import cn.com.qmth.stmms.ms.commons.utils.DbBackupUtils;
 import cn.com.qmth.stmms.ms.core.cache.CacheService;
-import cn.com.qmth.stmms.ms.core.domain.*;
+import cn.com.qmth.stmms.ms.core.domain.MarkStage;
+import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
+import cn.com.qmth.stmms.ms.core.domain.Paper;
+import cn.com.qmth.stmms.ms.core.domain.Work;
 import cn.com.qmth.stmms.ms.core.domain.enums.TrialEnum;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.domain.user.Role;
@@ -206,6 +209,6 @@ public class TrialService {
                 cacheService.deleteTokenCache(user.getId().toString());
             }
         }
-        dbBackupUtils.startBackup(workId, (MarkStage.ROUGH_LEVEL.equals(markSubject.getStage()) ? "粗分档" : "细分档") + "试评");
+        dbBackupUtils.startBackup(workId, (MarkStage.ROUGH_LEVEL.equals(markSubject.getStage()) ? "粗分档" : "细分档") + "试评", "结束试评");
     }
 }

+ 6 - 5
stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/utils/DbBackupUtils.java

@@ -26,15 +26,16 @@ public class DbBackupUtils {
     @Autowired
     DbConfig dbConfig;
 
-    public void startBackup(Long workId, String stage) {
-        service.submit(dbBackUp(workId, stage));
+    public void startBackup(Long workId, String stage, String operation) {
+        service.submit(dbBackUp(workId, stage, operation));
     }
 
-    public Runnable dbBackUp(Long workId, String stage) {
+    public Runnable dbBackUp(Long workId, String stage, String operation) {
         return () -> {
             String path = "beifen";
-            String pathSql = workId + "-" + stage + "-" + DateUtils.formatDate(new Date(), "yyyyMMddHHmmss") + ".sql";
-            File fileSql = new File(path, pathSql);
+            StringBuffer pathSql = new StringBuffer();
+            pathSql.append(workId).append("-").append(stage).append("(").append(operation).append(")").append("-").append(DateUtils.formatDate(new Date(), "yyyyMMddHHmmss")).append(".sql");
+            File fileSql = new File(path, pathSql.toString());
             try {
                 if (!fileSql.getParentFile().exists()) {
                     fileSql.getParentFile().mkdirs();

+ 1 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/Paper.java

@@ -207,6 +207,7 @@ public class Paper implements Serializable {
         this.isManual = isManual;
         this.uploadedOn = new Date();
         this.isMark = false;
+        this.sortNum = 0;
     }
 
 

+ 6 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MakrerApi.java

@@ -26,6 +26,7 @@ import cn.com.qmth.stmms.ms.marking.dto.QuestionStatDTO;
 import cn.com.qmth.stmms.ms.marking.service.GroupingService;
 import cn.com.qmth.stmms.ms.marking.service.MarkerGroupLeaderService;
 import cn.com.qmth.stmms.ms.marking.service.MarkingService;
+import cn.com.qmth.stmms.ms.marking.service.StageControlService;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -102,6 +103,9 @@ public class MakrerApi {
     @Autowired
     GroupingService groupingService;
 
+    @Resource
+    StageControlService stageControlService;
+
     /**
      * 评卷员信息
      *
@@ -947,6 +951,8 @@ public class MakrerApi {
         // 清空当前阶段数据
         markingService.subjectReset(workId, subject, stage);
 
+        stageControlService.logoutAndBackupDb(markSubject, "清除数据");
+
         return true;
     }
 

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

@@ -159,7 +159,7 @@ public class MarkSubjectApi {
             markerGroupRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, markSubject.getStage());
             markerGroupLeaderRepo.deleteByWorkIdAndSubjectAndStage(workId, subject, markSubject.getStage());
 
-            stageControlService.logoutAndBackupDb(markSubject);
+            stageControlService.logoutAndBackupDb(markSubject, "进入下一阶段");
         }
     }
 

+ 18 - 18
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingLevelService.java

@@ -19,7 +19,6 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * 评卷,分档仲裁及打分服务
@@ -227,7 +226,7 @@ public class MarkingLevelService {
                             if (Objects.isNull(markLogPrev)) {//新建日志
                                 //加入档位落差值日志
                                 Work work = workRepo.findOne(paper.getWorkId());
-                                MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), m.getSubject(), stage, paper.getTest(), paper.getExamNumber(), paper.getStudentName(), m.getMarkerId(), m.getMarkerName(), Role.MARKER, MarkLogOperType.LEVEl_DIFFERENCE.getId(),MarkLogOperType.LEVEl_DIFFERENCE.getName(), operResult, String.valueOf(d.getDistance()), jsonObject.toJSONString(), date);
+                                MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), m.getSubject(), stage, paper.getTest(), paper.getExamNumber(), paper.getStudentName(), m.getMarkerId(), m.getMarkerName(), Role.MARKER, MarkLogOperType.LEVEl_DIFFERENCE.getId(), MarkLogOperType.LEVEl_DIFFERENCE.getName(), operResult, String.valueOf(d.getDistance()), jsonObject.toJSONString(), date);
                                 markLogRepo.save(markLog);
                             } else {//更新日志
                                 operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
@@ -241,7 +240,7 @@ public class MarkingLevelService {
                             if (Objects.isNull(markLogDevi)) {//新建日志
                                 //加入档位偏差值日志
                                 Work work = workRepo.findOne(paper.getWorkId());
-                                MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), m.getSubject(), stage, paper.getTest(), paper.getExamNumber(), paper.getStudentName(), m.getMarkerId(), m.getMarkerName(), Role.MARKER, MarkLogOperType.LEVEl_DEVIATION.getId(),MarkLogOperType.LEVEl_DEVIATION.getName(), operResult, String.valueOf(d.getDeviation()), jsonObject.toJSONString(), date);
+                                MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), m.getSubject(), stage, paper.getTest(), paper.getExamNumber(), paper.getStudentName(), m.getMarkerId(), m.getMarkerName(), Role.MARKER, MarkLogOperType.LEVEl_DEVIATION.getId(), MarkLogOperType.LEVEl_DEVIATION.getName(), operResult, String.valueOf(d.getDeviation()), jsonObject.toJSONString(), date);
                                 markLogRepo.save(markLog);
                             } else {//更新日志
                                 operResult = Optional.ofNullable(markLogDevi.getOperDataAfter()).orElse("-");
@@ -285,24 +284,25 @@ public class MarkingLevelService {
         markTaskLevelRepo.save(markTasks);
 
         // 校验粗分档档位是否与细分档匹配
-        Optional<Level> optional = levels.stream().filter(l -> l.getCode().equals(level)).findFirst();
-        if(optional.isPresent()){
-            Level roughLevel = optional.get();
-            if(!roughLevel.getRoughCode().equals(paper.getRoughLevel())){
-                // 更新粗分档
-                paper.setRoughLevel(roughLevel.getRoughCode());
-                // 更新任务表
-                List<MarkTaskRoughLevel> markTaskRoughLevelList = markTaskRoughLevelRepo.findByPaperId(paper.getId());
-                for (MarkTaskRoughLevel markTaskRoughLevel : markTaskRoughLevelList) {
-                    markTaskRoughLevel.setLevel(roughLevel.getRoughCode());
-                    markTaskRoughLevel.setLevelValue(Integer.valueOf(roughLevel.getRoughCode()));
-                    markTaskRoughLevel.setResult(roughLevel.getRoughCode());
+        if (ParamCache.levelConfigMap.get(String.valueOf(paper.getWorkId())).getRoughLevelEnable() == 1) {
+            Optional<Level> optional = levels.stream().filter(l -> l.getCode().equals(level)).findFirst();
+            if (optional.isPresent()) {
+                Level roughLevel = optional.get();
+                if (!roughLevel.getRoughCode().equals(paper.getRoughLevel())) {
+                    // 更新粗分档
+                    paper.setRoughLevel(roughLevel.getRoughCode());
+                    // 更新任务表
+                    List<MarkTaskRoughLevel> markTaskRoughLevelList = markTaskRoughLevelRepo.findByPaperId(paper.getId());
+                    for (MarkTaskRoughLevel markTaskRoughLevel : markTaskRoughLevelList) {
+                        markTaskRoughLevel.setLevel(roughLevel.getRoughCode());
+                        markTaskRoughLevel.setLevelValue(Integer.valueOf(roughLevel.getRoughCode()));
+                        markTaskRoughLevel.setResult(roughLevel.getRoughCode());
+                    }
+                    markTaskRoughLevelRepo.save(markTaskRoughLevelList);
                 }
-                markTaskRoughLevelRepo.save(markTaskRoughLevelList);
             }
         }
 
-
         paper.setSortNum(calcSortNum(paper, markTasks, levels));
         paperRepo.save(paper);
         levelsLog(markTasks, paper);
@@ -356,7 +356,7 @@ public class MarkingLevelService {
                         markTask.setLevel(null);
                         markTask.setDeviationDirection(calcDeviationDirection(levelMap, markTask.getOriginLevel(), redoLevel));
                         String remark = markLogService.markingPaperReject(autoReject, rejectKzzId);
-                        MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), markTask.getSubject(), markTask.getStage(), paper.getTest(), paper.getExamNumber(), paper.getStudentName(), markTask.getMarkerId(), markTask.getMarkerName(), Role.MARKER, markLogOperType.getId(),markLogOperType.getName(), markTask.getOriginLevel(), redoLevel, remark, new Date());
+                        MarkLog markLog = new MarkLog(paper.getWorkId(), work.getName(), paper.getId(), markTask.getSubject(), markTask.getStage(), paper.getTest(), paper.getExamNumber(), paper.getStudentName(), markTask.getMarkerId(), markTask.getMarkerName(), Role.MARKER, markLogOperType.getId(), markLogOperType.getName(), markTask.getOriginLevel(), redoLevel, remark, new Date());
                         markLogList.add(markLog);
                     }
                 }

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

@@ -668,7 +668,7 @@ public class StageControlService {
      *
      * @param markSubject 科目
      */
-    public void logoutAndBackupDb(MarkSubject markSubject) {
+    public void logoutAndBackupDb(MarkSubject markSubject, String operation) {
         // 所有用户强制退出
         List<MarkUser> userList = markUserRepo.findByWorkIdAndSubject(markSubject.getWorkId(), markSubject.getSubject());
         userList = userList.stream().filter(m -> Role.MARKER.equals(m.getRole()) || Role.MARK_LEADER.equals(m.getRole())).collect(Collectors.toList());
@@ -677,7 +677,7 @@ public class StageControlService {
                 cacheService.deleteTokenCache(user.getId().toString());
             }
         }
-        dbBackupUtils.startBackup(markSubject.getWorkId(), markSubject.getStage().name());
+        dbBackupUtils.startBackup(markSubject.getWorkId(), markSubject.getStage().name(), operation);
     }
 
 }