Przeglądaj źródła

联考版-v3.1.0-测试bug修改,压测数据初始化方法更新

xiaof 2 lat temu
rodzic
commit
057823dfa3

+ 2 - 1
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/task/MarkTaskRoughLevel.java

@@ -3,6 +3,7 @@ package cn.com.qmth.stmms.ms.core.domain.task;
 import cn.com.qmth.stmms.ms.core.domain.Level;
 import cn.com.qmth.stmms.ms.core.domain.MarkStage;
 import cn.com.qmth.stmms.ms.core.domain.Paper;
+import cn.com.qmth.stmms.ms.core.domain.RoughLevel;
 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.vo.Subject;
@@ -178,7 +179,7 @@ public class MarkTaskRoughLevel implements Serializable {
         this.isMark = false;
     }
 
-    public MarkTaskRoughLevel(MarkUser marker, Paper paper, Level level, MarkStage stage, Long randomSeqNew, int test) {
+    public MarkTaskRoughLevel(MarkUser marker, Paper paper, RoughLevel level, MarkStage stage, Long randomSeqNew, int test) {
         this.markerId = marker.getId();
         this.markerName = marker.getName();
         this.subject = marker.getSubject();

+ 3 - 3
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java

@@ -284,15 +284,15 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
     long countByWorkIdAndQuestionIdAndIsMissingIsFalse(Long workId, Long questionId);
 
     @Modifying
-    @Query(value = "update paper p set p.is_rejected = false, p.is_tagged = false, p.score = null, p.score_batch_no = null, p.is_shift = false, p.is_shift_score = false, p.is_rejected_by_leader = false where p.work_id = ?1 and p.subject = ?2", nativeQuery = true)
+    @Query(value = "update paper p set p.is_rejected = false, p.is_tagged = false, p.score = null, p.score_batch_no = null, p.is_shift = false, p.is_shift_score = false, p.is_rejected_by_leader = false, p.is_mark = false where p.work_id = ?1 and p.subject = ?2", nativeQuery = true)
     void updateScoreByWorkIdAndSubject(Long workId, String name);
 
     @Modifying
-    @Query(value = "update paper p set p.rough_level = case p.is_rough_sample when true then p.rough_level else null end, p.redo_level = null,p.sort_num = case p.is_rough_sample when true then p.sort_num else null end, p.rough_batch_no = null, p.is_arbitrated = false, p.is_rejected = false, p.is_tagged = false, p.mark_by_leader = false, p.is_one_click = false where p.work_id = ?1 and p.subject = ?2", nativeQuery = true)
+    @Query(value = "update paper p set p.rough_level = case p.is_rough_sample when true then p.rough_level else null end, p.redo_rough_level = null,p.sort_num = case p.is_rough_sample when true then p.sort_num else 0 end, p.rough_batch_no = null, p.is_arbitrated = false, p.is_rejected = false, p.is_tagged = false, p.mark_by_leader = false, p.is_rough_one_click = false, p.is_mark = false where p.work_id = ?1 and p.subject = ?2", nativeQuery = true)
     void updateRoughLevelByWorkIdAndSubject(Long workId, String name);
 
     @Modifying
-    @Query(value = "update paper p set p.level = case p.is_sample when true then p.level else null end, p.redo_level = null,p.sort_num = case p.is_sample when true then p.sort_num else null end, p.batch_no = null, p.is_arbitrated = false, p.is_rejected = false, p.is_tagged = false, p.mark_by_leader = false, p.is_one_click = false where p.work_id = ?1 and p.subject = ?2", nativeQuery = true)
+    @Query(value = "update paper p set p.level = case p.is_sample when true then p.level else null end, p.redo_level = null,p.sort_num = case p.is_sample when true then p.sort_num else 0 end, p.batch_no = null, p.is_arbitrated = false, p.is_rejected = false, p.is_tagged = false, p.mark_by_leader = false, p.is_one_click = false, p.is_mark = false where p.work_id = ?1 and p.subject = ?2", nativeQuery = true)
     void updateLevelByWorkIdAndSubject(Long workId, String name);
 
     @Query(value = "SELECT p.`score`,SUM(IF(p.`is_shift` = 0, 1, 0))," +

+ 9 - 10
stmms-ms-main/src/test/java/BatchCreateDataTest.java

@@ -1,8 +1,6 @@
 import cn.com.qmth.stmms.ms.Application;
 import cn.com.qmth.stmms.ms.commons.utils.RandomUtil;
-import cn.com.qmth.stmms.ms.core.cache.ParamCache;
 import cn.com.qmth.stmms.ms.core.domain.*;
-import cn.com.qmth.stmms.ms.core.domain.enums.TrialEnum;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkRight;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.domain.user.Role;
@@ -57,7 +55,7 @@ public class BatchCreateDataTest {
     RandomUtil randomUtil;
 
     // 考生初始准考证号
-    private int initNumber = 10000;
+    private int initNumber = 1000000;
     // 考生数量
     private static int COUNT = 60000;
     // 评卷员数量
@@ -65,7 +63,7 @@ public class BatchCreateDataTest {
     // 科组长数量
     private static int MARKER_LEADER_COUNT = 4;
     // 工作id
-    private static Long WORK_ID = 9L;
+    private static Long WORK_ID = 1L;
     // 生成科目
     private List<Subject> subjects = Arrays.asList(Subject.SX, Subject.SC, Subject.SM);
     // 是否复制图片
@@ -75,20 +73,20 @@ public class BatchCreateDataTest {
 
     /**
      * 生成数据
+     *
      * @throws Exception
      */
-    @Test
+//    @Test
     public void createTask() throws Exception {
         createData();
     }
 
     private void createData() throws Exception {
-        //默认用id为10的工作
-//        Work work = workRepo.findOne(WORK_ID);
-//        createWork(work);
+        // 生成工作
+        createWork();
 
         // 生成用户
-//        createUser();
+        createUser();
 
         randomUtil.getRandom(WORK_ID, false);
 
@@ -144,7 +142,8 @@ public class BatchCreateDataTest {
         }
     }
 
-    private void createWork(Work work) {
+    private void createWork() {
+        Work work = workRepo.findOne(WORK_ID);
         if (work == null) {
             work = new Work();
             work.setId(WORK_ID);

+ 0 - 41
stmms-ms-main/src/test/java/CacheTest.java

@@ -1,41 +0,0 @@
-import cn.com.qmth.stmms.ms.Application;
-import cn.com.qmth.stmms.ms.core.cache.CacheService;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import java.io.File;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-/**
- * @Date: 2021/5/27.
- */
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = {Application.class})
-public class CacheTest {
-
-    @Autowired
-    CacheService cacheService;
-
-    @Test
-    public void test() {
-
-        String token1 = cacheService.queryTokenCache("68");
-        System.out.println("token1:" + token1);
-
-        String token2 = cacheService.saveTokenCache("68", "sc1");
-        System.out.println("token2:" + token2);
-
-        String token3 = cacheService.queryTokenCache("68");
-        System.out.println("token3:" + token3);
-
-        String token4 = cacheService.deleteTokenCache("68");
-        System.out.println("token4:" + token4);
-
-        String token5 = cacheService.queryTokenCache("68");
-        System.out.println("token5:" + token5);
-    }
-}

+ 0 - 47
stmms-ms-main/src/test/java/backupDb.java

@@ -1,47 +0,0 @@
-import cn.com.qmth.stmms.ms.Application;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import java.io.File;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-/**
- * @Date: 2021/5/27.
- */
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = {Application.class})
-public class backupDb {
-    @Test
-    public void backupDb() throws Exception {
-        String backName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date())+".sql";
-        dbBackUp("root","root","msyj-2.0.0","D:\\",backName);
-
-    }
-
-    //mysqldump -h端口号 -u用户 -p密码 数据库 > d:/test.sql --备份D盘
-    //备份
-    public static void dbBackUp(String root, String pwd, String dbName, String backPath, String backName) throws Exception {
-        String pathSql = backPath + backName;
-        File fileSql = new File(pathSql);
-        //创建备份sql文件
-        if (!fileSql.exists()) {
-            fileSql.createNewFile();
-        }
-        //mysqldump -hlocalhost -uroot -p123456 db > /home/back.sql
-        StringBuffer sb = new StringBuffer();
-        sb.append("mysqldump");
-        sb.append(" -h127.0.0.1");
-        sb.append(" -u" + root);
-        sb.append(" -p" + pwd);
-        sb.append(" " + dbName + " >");
-        sb.append(pathSql);
-        System.out.println("cmd命令为:" + sb.toString());
-        Runtime runtime = Runtime.getRuntime();
-        System.out.println("开始备份:" + dbName);
-        Process process = runtime.exec("cmd /c" + sb.toString());
-        System.out.println("备份成功!");
-    }
-}

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

@@ -9,6 +9,7 @@ import cn.com.qmth.stmms.ms.core.domain.Level;
 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.Student;
+import cn.com.qmth.stmms.ms.core.domain.enums.TrialEnum;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkRight;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkerGroupLeader;
@@ -919,6 +920,12 @@ public class MakrerApi {
             throw new RuntimeException("管理员密码错误");
         }
 
+        // 如果是试评,必须结束试评后再清除
+        MarkSubject markSubject = markSubjectRepo.findOne(workId+"-"+subject);
+        if(markSubject.getTest() == TrialEnum.START_TRIAL.getId()){
+            throw new RuntimeException("请先结束试评");
+        }
+
         // 清空当前阶段数据
         markingService.subjectReset(workId, subject, stage);
 

+ 12 - 5
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/AssignTaskService.java

@@ -73,7 +73,9 @@ public class AssignTaskService {
         List<Object[]> markTasks = markTaskRoughLevelRepo.findAllByWorkId(markSubject.getWorkId());
         Map<Long, Object> randomMap = new HashMap<>();
         markTasks.forEach(m -> randomMap.put(Long.valueOf(m[1].toString()), m[0]));
+        // 解析粗档位
         List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
+        List<RoughLevel> roughLevels = DetermineRoughLevelService.parseRoughLevels(levels);
 
         Map<Long, MarkerGroup> groupMap = markerGroups.stream().collect(Collectors.toMap(MarkerGroup::getId, Function.identity()));
         for (Map.Entry<Long, List<Paper>> entry : groupPaperMap.entrySet()) {
@@ -88,13 +90,17 @@ public class AssignTaskService {
                     markerCount++;
                     Long random = randomUtil.getRandom(marker.getWorkId(), randomMap);
                     MarkTaskRoughLevel markTask;
-                    if (paper.isRoughSample() && paper.getLevel() != null) {
-                        Level level = levels.stream().filter(m -> String.valueOf(m.getRoughCode()).equals(paper.getLevel())).findFirst().orElseGet(null);
+                    if (paper.isRoughSample() && paper.getRoughLevel() != null) {
+                        Optional<RoughLevel> optional = roughLevels.stream().filter(m -> m.getRoughCode().equals(paper.getRoughLevel())).findFirst();
+                        if (!optional.isPresent()) {
+                            throw new RuntimeException("未找到档位【" + paper.getRoughLevel() + "】");
+                        }
+                        RoughLevel level = optional.get();
                         markTask = new MarkTaskRoughLevel(marker, paper, level, markSubject.getStage(), random, markSubject.getTest());
 
                         // 初始化排序值
                         if (markerCount == markUsers.size()) {
-                            paper.setSortNum(level.getRoughWeight() * markerCount);
+                            paper.setSortNum(level.getWeight() * markerCount);
                         }
                     } else {
                         markTask = new MarkTaskRoughLevel(marker, paper, markSubject.getStage(), random, markSubject.getTest());
@@ -566,7 +572,8 @@ public class AssignTaskService {
 
     /**
      * 随机发任务
-     *  @param papersList    试卷集合
+     *
+     * @param papersList    试卷集合
      * @param groupPaperMap 分组考生名单
      * @param taskCount     任务数量
      * @param stage
@@ -599,7 +606,7 @@ public class AssignTaskService {
                 list.addAll(papersList);
             } else {
                 // 开启粗分档,并且当前为细分档时,系统默认按档位从高到低取任务,评委端显示也是从高到低
-                if(MarkStage.LEVEL.equals(markSubject.getStage()) && ParamCache.levelConfigMap.get(String.valueOf(markSubject.getWorkId())).getRoughLevelEnable() ==1){
+                if (MarkStage.LEVEL.equals(markSubject.getStage()) && ParamCache.levelConfigMap.get(String.valueOf(markSubject.getWorkId())).getRoughLevelEnable() == 1) {
                     papersList.sort(Comparator.comparing(Paper::getRoughLevel));
                     list = papersList.subList(0, leftCount);
                 } else {