|
@@ -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;
|
|
|
}
|