|
@@ -1,14 +1,12 @@
|
|
|
import cn.com.qmth.stmms.ms.Application;
|
|
|
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;
|
|
|
-import cn.com.qmth.stmms.ms.core.domain.Student;
|
|
|
-import cn.com.qmth.stmms.ms.core.domain.Work;
|
|
|
+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.repository.ExamQuestionRepo;
|
|
|
-import cn.com.qmth.stmms.ms.core.repository.PaperRepo;
|
|
|
-import cn.com.qmth.stmms.ms.core.repository.StudentRepo;
|
|
|
-import cn.com.qmth.stmms.ms.core.repository.WorkRepo;
|
|
|
+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;
|
|
|
+import cn.com.qmth.stmms.ms.core.repository.*;
|
|
|
import cn.com.qmth.stmms.ms.core.vo.Subject;
|
|
|
import net.coobird.thumbnailator.Thumbnails;
|
|
|
import org.junit.Test;
|
|
@@ -18,6 +16,7 @@ import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
@@ -42,30 +41,56 @@ public class BatchCreateDataTest {
|
|
|
@Autowired
|
|
|
private WorkRepo workRepo;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MarkSubjectRepo markSubjectRepo;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MarkUserRepo markUserRepo;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ParamSettingRepo paramSettingRepo;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LevelRepo levelRepo;
|
|
|
+
|
|
|
@Autowired
|
|
|
RandomUtil randomUtil;
|
|
|
|
|
|
- //考生数量
|
|
|
- private int initNumber = 20000;
|
|
|
+ // 考生初始准考证号
|
|
|
+ private int initNumber = 10000;
|
|
|
+ // 考生数量
|
|
|
private static int COUNT = 60000;
|
|
|
- private static Long WORK_ID = 10l;
|
|
|
+ // 评卷员数量
|
|
|
+ private static int MARKER_COUNT = 15;
|
|
|
+ // 科组长数量
|
|
|
+ private static int MARKER_LEADER_COUNT = 4;
|
|
|
+ // 工作id
|
|
|
+ private static Long WORK_ID = 1L;
|
|
|
+ // 生成科目
|
|
|
private List<Subject> subjects = Arrays.asList(Subject.SX, Subject.SC, Subject.SM);
|
|
|
+ // 是否复制图片
|
|
|
+ private boolean isCreateImage = false;
|
|
|
+ // 图片存放目录
|
|
|
private String baseDir = "D:\\my_workspaces\\ide_workspace_qmth\\idea_workspace\\stmms-ms-server\\upload";
|
|
|
|
|
|
+ /**
|
|
|
+ * 生成数据
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
@Test
|
|
|
- public void createSxTask() throws Exception {
|
|
|
+ public void createTask() throws Exception {
|
|
|
+ createData();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void createData() throws Exception {
|
|
|
//默认用id为10的工作
|
|
|
Work work = workRepo.findOne(WORK_ID);
|
|
|
- if (work == null) {
|
|
|
- work = new Work();
|
|
|
- work.setId(10l);
|
|
|
- work.setActive(true);
|
|
|
- work.setCreatedOn(new Date());
|
|
|
- work.setName("批量图片");
|
|
|
- workRepo.save(work);
|
|
|
- }
|
|
|
+ createWork(work);
|
|
|
+
|
|
|
+ // 生成用户
|
|
|
+ createUser();
|
|
|
|
|
|
- randomUtil.getRandom(work.getId(), false);
|
|
|
+ randomUtil.getRandom(WORK_ID, false);
|
|
|
|
|
|
//生成exam_question信息
|
|
|
List<ExamQuestion> questions = createQuestions();
|
|
@@ -104,18 +129,105 @@ public class BatchCreateDataTest {
|
|
|
}
|
|
|
logger.info("papers新增:{}", papers.size());
|
|
|
|
|
|
- //生成image
|
|
|
-// createImage(students);
|
|
|
- logger.info("image成功");
|
|
|
+ if (isCreateImage) {
|
|
|
+ //生成image
|
|
|
+ createImage(students);
|
|
|
+ logger.info("image成功");
|
|
|
|
|
|
- //生成sheet
|
|
|
-// createSheet(students);
|
|
|
- logger.info("sheet成功");
|
|
|
+ //生成sheet
|
|
|
+ createSheet(students);
|
|
|
+ logger.info("sheet成功");
|
|
|
|
|
|
- //生成thumb
|
|
|
-// createThumb(students);
|
|
|
- logger.info("thumb成功");
|
|
|
+ //生成thumb
|
|
|
+ createThumb(students);
|
|
|
+ logger.info("thumb成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void createWork(Work work) {
|
|
|
+ if (work == null) {
|
|
|
+ work = new Work();
|
|
|
+ work.setId(WORK_ID);
|
|
|
+ work.setActive(true);
|
|
|
+ work.setCreatedOn(new Date());
|
|
|
+ work.setName("批量测试");
|
|
|
+ workRepo.save(work);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<MarkSubject> markSubjects = markSubjectRepo.findAllByWorkId(work.getId());
|
|
|
+ if (CollectionUtils.isEmpty(markSubjects)) {
|
|
|
|
|
|
+ Subject[] subjects = Subject.values();
|
|
|
+ for (int i = 0; i < subjects.length - 1; i++) {
|
|
|
+ MarkSubject markSubject = new MarkSubject(subjects[i], work.getId());
|
|
|
+ markSubject.setWorkId(work.getId());
|
|
|
+ markSubject.setEnable(true);
|
|
|
+ markSubjectRepo.save(markSubject);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //新增工作的同时,初始化该工作的全局参数
|
|
|
+ ParamSetting paramSetting = ParamSetting.init();
|
|
|
+ paramSetting.setWorkId(WORK_ID);
|
|
|
+ paramSettingRepo.save(paramSetting);
|
|
|
+
|
|
|
+ //默认增加档位
|
|
|
+ Level A = new Level(WORK_ID, "A",0, 100, 90, Level.LevelType.ADMITED, 95);
|
|
|
+ Level B = new Level(WORK_ID, "B",1, 89, 85, Level.LevelType.ADMITED, 87);
|
|
|
+ Level C = new Level(WORK_ID, "C",2, 84, 80, Level.LevelType.ADMITED, 82);
|
|
|
+ Level D = new Level(WORK_ID, "D",3, 79, 75, Level.LevelType.ADMITED, 77);
|
|
|
+ Level E = new Level(WORK_ID, "E",4, 74, 70, Level.LevelType.ADMITED, 72);
|
|
|
+ Level F = new Level(WORK_ID, "F",5, 69, 65, Level.LevelType.ADMITED, 67);
|
|
|
+ Level G = new Level(WORK_ID, "G",6, 64, 60, Level.LevelType.ADMITED, 62);
|
|
|
+ Level H = new Level(WORK_ID, "H",7, 59, 55, Level.LevelType.ADMITED, 57);
|
|
|
+ Level I = new Level(WORK_ID, "I",8, 54, 50, Level.LevelType.ADMITED, 52);
|
|
|
+ Level J = new Level(WORK_ID, "J",9, 49, 45, Level.LevelType.ADMITED, 47);
|
|
|
+ Level K = new Level(WORK_ID, "K",10, 44, 0, Level.LevelType.ADMITED, 40);
|
|
|
+ List<Level> levels = Arrays.asList(A, B, C, D, E, F, G, H, I, J, K);
|
|
|
+ levelRepo.save(levels);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void createUser() {
|
|
|
+ List<MarkUser> markUsers = new ArrayList<>();
|
|
|
+ for (Subject subject : subjects) {
|
|
|
+ // 评卷员
|
|
|
+ for (int i = 1; i <= MARKER_COUNT; i++) {
|
|
|
+ MarkUser markUser = new MarkUser();
|
|
|
+ markUser.setLoginName(subject.name().toLowerCase() + i);
|
|
|
+ markUser.setName(subject.name() + i);
|
|
|
+ markUser.setRole(Role.MARKER);
|
|
|
+ markUser.setPassword("123456");
|
|
|
+ markUser.setPwChangedCount(1);
|
|
|
+ markUser.setSubject(subject);
|
|
|
+ markUser.setWorkId(WORK_ID);
|
|
|
+ markUser.setMarkRight(MarkRight.ALLOW_ALL);
|
|
|
+ markUser.setWeight(1D);
|
|
|
+ markUser.setLeaderConfirm(true);
|
|
|
+ markUser.setLevelCallback(false);
|
|
|
+ markUser.setOneClickLevel(false);
|
|
|
+ markUser.setStandardVolume(false);
|
|
|
+ markUsers.add(markUser);
|
|
|
+ }
|
|
|
+ // 科组长
|
|
|
+ for (int i = 1; i <= MARKER_LEADER_COUNT; i++) {
|
|
|
+ MarkUser markUser = new MarkUser();
|
|
|
+ markUser.setLoginName(subject.name().toLowerCase() + "-kzz" + i);
|
|
|
+ markUser.setName(subject.name() + "KZZ" + i);
|
|
|
+ markUser.setRole(Role.MARK_LEADER);
|
|
|
+ markUser.setPassword("123456");
|
|
|
+ markUser.setPwChangedCount(1);
|
|
|
+ markUser.setSubject(subject);
|
|
|
+ markUser.setWorkId(WORK_ID);
|
|
|
+ markUser.setMarkRight(MarkRight.ALLOW_ALL);
|
|
|
+ markUser.setWeight(null);
|
|
|
+ markUser.setLeaderConfirm(true);
|
|
|
+ markUser.setLevelCallback(true);
|
|
|
+ markUser.setOneClickLevel(true);
|
|
|
+ markUser.setStandardVolume(true);
|
|
|
+ markUsers.add(markUser);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ markUserRepo.save(markUsers);
|
|
|
}
|
|
|
|
|
|
private List<ExamQuestion> createQuestions() {
|
|
@@ -155,6 +267,10 @@ public class BatchCreateDataTest {
|
|
|
|
|
|
private List<Student> createStudent() {
|
|
|
List<Student> students = new ArrayList<>();
|
|
|
+ StringJoiner stringJoiner = new StringJoiner(",");
|
|
|
+ stringJoiner.add("SX:" + (subjects.contains(Subject.SX) ? 1 : 0))
|
|
|
+ .add("SC:" + (subjects.contains(Subject.SC) ? 1 : 0))
|
|
|
+ .add("SM:" + (subjects.contains(Subject.SM) ? 1 : 0));
|
|
|
for (int i = 0; i < COUNT; i++) {
|
|
|
Student student = new Student();
|
|
|
student.setAreaCode("1");
|
|
@@ -164,7 +280,7 @@ public class BatchCreateDataTest {
|
|
|
student.setSchool("湖北美术学院");
|
|
|
student.setAbsent(false);
|
|
|
student.setName("考生" + i);
|
|
|
- student.setUploadStatus("SX:1,SC:0,SM:0");
|
|
|
+ student.setUploadStatus(stringJoiner.toString());
|
|
|
student.setWorkId(WORK_ID);
|
|
|
student.setSourceName("湖北");
|
|
|
student.setTest("0");
|