xiaof 3 anni fa
parent
commit
a8e2c52e71

+ 52 - 26
stmms-ms-main/src/test/java/SxTest.java → stmms-ms-main/src/test/java/BatchCreateDataTest.java

@@ -1,5 +1,4 @@
 import cn.com.qmth.stmms.ms.Application;
-import cn.com.qmth.stmms.ms.commons.config.SystemConfig;
 import cn.com.qmth.stmms.ms.commons.utils.RandomUtil;
 import cn.com.qmth.stmms.ms.core.domain.ExamQuestion;
 import cn.com.qmth.stmms.ms.core.domain.Paper;
@@ -22,18 +21,14 @@ import org.springframework.test.context.junit4.SpringRunner;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.*;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = {Application.class})
 // 指定启动类
-public class SxTest {
+public class BatchCreateDataTest {
 
-    private static final Logger logger = LoggerFactory.getLogger(SxTest.class);
+    private static final Logger logger = LoggerFactory.getLogger(BatchCreateDataTest.class);
 
     @Autowired
     private ExamQuestionRepo examQuestionRepo;
@@ -51,34 +46,63 @@ public class SxTest {
     RandomUtil randomUtil;
 
     //考生数量
-    private int initNumber = 40000;
-    private static int COUNT = 20000;
-    private static Long WORK_ID = 1000l;
+    private int initNumber = 20000;
+    private static int COUNT = 60000;
+    private static Long WORK_ID = 10l;
+    private List<Subject> subjects = Arrays.asList(Subject.SX, Subject.SC, Subject.SM);
     private String baseDir = "D:\\my_workspaces\\ide_workspace_qmth\\idea_workspace\\stmms-ms-server\\upload";
 
     @Test
     public void createSxTask() throws Exception {
-        //默认用id为1000的工作
+        //默认用id为10的工作
         Work work = workRepo.findOne(WORK_ID);
         if (work == null) {
-            logger.info("指定id为1000的工作不存在");
-            return;
+            work = new Work();
+            work.setId(10l);
+            work.setActive(true);
+            work.setCreatedOn(new Date());
+            work.setName("批量图片");
+            workRepo.save(work);
         }
 
+        randomUtil.getRandom(work.getId(), false);
+
         //生成exam_question信息
         List<ExamQuestion> questions = createQuestions();
-//        examQuestionRepo.save(questions);
+        examQuestionRepo.save(questions);
         logger.info("questions新增:{}", questions.size());
 
         //生成student信息
         List<Student> students = createStudent();
-//        studentRepo.save(students);
+        List<Student> data = new ArrayList<>();
+        for (Student stu : students) {
+            if (data.size() == 2000) {
+                studentRepo.save(data);
+                data.clear();
+            }
+            data.add(stu);
+        }
+        //将剩下的数据也导入
+        if (!data.isEmpty()) {
+            studentRepo.save(data);
+        }
         logger.info("students新增:{}", students.size());
 
         //生成paper信息
-//        List<Paper> papers = createPaper(students);
-//        paperRepo.save(papers);
-//        logger.info("papers新增:{}", papers.size());
+        List<Paper> papers = createPaper(students, subjects);
+        List<Paper> data1 = new ArrayList<>();
+        for (Paper p : papers) {
+            if (data1.size() == 2000) {
+                paperRepo.save(data1);
+                data1.clear();
+            }
+            data1.add(p);
+        }
+        //将剩下的数据也导入
+        if (!data1.isEmpty()) {
+            paperRepo.save(data1);
+        }
+        logger.info("papers新增:{}", papers.size());
 
         //生成image
 //        createImage(students);
@@ -89,7 +113,7 @@ public class SxTest {
         logger.info("sheet成功");
 
         //生成thumb
-        createThumb(students);
+//        createThumb(students);
         logger.info("thumb成功");
 
     }
@@ -150,13 +174,15 @@ public class SxTest {
         return students;
     }
 
-    private List<Paper> createPaper(List<Student> students) throws Exception {
+    private List<Paper> createPaper(List<Student> students, List<Subject> subjects) throws Exception {
         List<Paper> papers = new ArrayList<>();
-        ExamQuestion examQuestion = examQuestionRepo.findByWorkIdAndSubjectAndAreaCodeAndTest(WORK_ID, Subject.SX, "1", TrialEnum.DEFAULT.getId());
-        for (Student student : students) {
-            Long random = getRandom(student.getWorkId(), student.getExamNumber());
-            Paper paper = new Paper(student.getWorkId(), null, Subject.SX, examQuestion, student, false, random);
-            papers.add(paper);
+        for (Subject subject : subjects) {
+            ExamQuestion examQuestion = examQuestionRepo.findByWorkIdAndSubjectAndAreaCodeAndTest(WORK_ID, subject, "1", TrialEnum.DEFAULT.getId());
+            for (Student student : students) {
+                Long random = getRandom(student.getWorkId(), student.getExamNumber());
+                Paper paper = new Paper(student.getWorkId(), null, subject, examQuestion, student, false, random);
+                papers.add(paper);
+            }
         }
         return papers;
     }

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

@@ -283,7 +283,6 @@ public class MarkTaskApi {
      * @return
      */
     @RequestMapping(value = "{markTask}", method = RequestMethod.PATCH)
-    @Transactional
     public ResponseEntity marking(@PathVariable MarkTask markTask, @RequestBody HashMap<String, String> body) {
         MarkStage stage = MarkStage.valueOf(body.get("stage"));
         String result = body.get("result");