|
@@ -14,9 +14,12 @@ import cn.com.qmth.stmms.biz.file.service.FileService;
|
|
import cn.com.qmth.stmms.biz.lock.LockService;
|
|
import cn.com.qmth.stmms.biz.lock.LockService;
|
|
import cn.com.qmth.stmms.common.enums.LockType;
|
|
import cn.com.qmth.stmms.common.enums.LockType;
|
|
import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
|
|
import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
|
|
|
|
+
|
|
import com.aliyun.oss.common.utils.BinaryUtil;
|
|
import com.aliyun.oss.common.utils.BinaryUtil;
|
|
|
|
+
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JSONObject;
|
|
|
|
+
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
@@ -24,7 +27,9 @@ import java.io.ByteArrayInputStream;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
+import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Set;
|
|
|
|
|
|
public class DataSyncThread implements Runnable {
|
|
public class DataSyncThread implements Runnable {
|
|
|
|
|
|
@@ -70,9 +75,9 @@ public class DataSyncThread implements Runnable {
|
|
|
|
|
|
public static final String SIZE = "size";
|
|
public static final String SIZE = "size";
|
|
|
|
|
|
- public DataSyncThread(DataSync dataSync, Integer pageSize, LockService lockService, DataSyncService dataSyncService,
|
|
|
|
- ExamService examService, ExamStudentService studentService, ExamSubjectService subjectService,
|
|
|
|
- FileService fileService) {
|
|
|
|
|
|
+ public DataSyncThread(DataSync dataSync, Integer pageSize, LockService lockService,
|
|
|
|
+ DataSyncService dataSyncService, ExamService examService, ExamStudentService studentService,
|
|
|
|
+ ExamSubjectService subjectService, FileService fileService) {
|
|
this.dataSync = dataSync;
|
|
this.dataSync = dataSync;
|
|
this.lockService = lockService;
|
|
this.lockService = lockService;
|
|
this.dataSyncService = dataSyncService;
|
|
this.dataSyncService = dataSyncService;
|
|
@@ -117,9 +122,8 @@ public class DataSyncThread implements Runnable {
|
|
JSONObject paperJson = JSONObject.fromObject(paperResult);
|
|
JSONObject paperJson = JSONObject.fromObject(paperResult);
|
|
String paper = paperJson.getString("subjectivePaper");
|
|
String paper = paperJson.getString("subjectivePaper");
|
|
byte[] paperData = paper.getBytes(StandardCharsets.UTF_8);
|
|
byte[] paperData = paper.getBytes(StandardCharsets.UTF_8);
|
|
- fileService
|
|
|
|
- .uploadPaper(new ByteArrayInputStream(paperData), BinaryUtil.encodeMD5(paperData), exam.getId(),
|
|
|
|
- subjectCode, FormatType.JSON);
|
|
|
|
|
|
+ fileService.uploadPaper(new ByteArrayInputStream(paperData), BinaryUtil.encodeMD5(paperData),
|
|
|
|
+ exam.getId(), subjectCode, FormatType.JSON);
|
|
// 获取考生
|
|
// 获取考生
|
|
Long startId = 0L;
|
|
Long startId = 0L;
|
|
ExamSubject examSubject = subjectService.find(exam.getId(), subjectCode);
|
|
ExamSubject examSubject = subjectService.find(exam.getId(), subjectCode);
|
|
@@ -152,6 +156,7 @@ public class DataSyncThread implements Runnable {
|
|
}
|
|
}
|
|
JSONArray studentArray = studentJson.getJSONArray(DATA_LIST);
|
|
JSONArray studentArray = studentJson.getJSONArray(DATA_LIST);
|
|
List<ExamStudent> list = new ArrayList<ExamStudent>();
|
|
List<ExamStudent> list = new ArrayList<ExamStudent>();
|
|
|
|
+ Set<String> secretNumberSet = new HashSet<>();
|
|
Date now = new Date();
|
|
Date now = new Date();
|
|
for (int j = 0; j < studentArray.size(); j++) {
|
|
for (int j = 0; j < studentArray.size(); j++) {
|
|
JSONObject student = studentArray.getJSONObject(j);
|
|
JSONObject student = studentArray.getJSONObject(j);
|
|
@@ -167,7 +172,6 @@ public class DataSyncThread implements Runnable {
|
|
examStudent.setSubjectCode(subjectCode);
|
|
examStudent.setSubjectCode(subjectCode);
|
|
examStudent.setSubjectName(subjectName);
|
|
examStudent.setSubjectName(subjectName);
|
|
examStudent.setExamNumber(student.getString("examNumber"));
|
|
examStudent.setExamNumber(student.getString("examNumber"));
|
|
- examStudent.setSecretNumber(examStudent.getExamNumber());
|
|
|
|
examStudent.setPaperType(null);
|
|
examStudent.setPaperType(null);
|
|
|
|
|
|
examStudent.setSchoolId(exam.getSchoolId());
|
|
examStudent.setSchoolId(exam.getSchoolId());
|
|
@@ -184,6 +188,11 @@ public class DataSyncThread implements Runnable {
|
|
examStudent.setAnswers(null);
|
|
examStudent.setAnswers(null);
|
|
examStudent.setBatchCode(null);
|
|
examStudent.setBatchCode(null);
|
|
examStudent.setUploadTime(now);
|
|
examStudent.setUploadTime(now);
|
|
|
|
+ examStudent.randomSecretNumber();
|
|
|
|
+ while (secretNumberSet.contains(examStudent.getSecretNumber())) {
|
|
|
|
+ examStudent.randomSecretNumber();
|
|
|
|
+ }
|
|
|
|
+ secretNumberSet.add(examStudent.getSecretNumber());
|
|
list.add(examStudent);
|
|
list.add(examStudent);
|
|
|
|
|
|
String answerJson = student.getString(SUBJECTIVES);
|
|
String answerJson = student.getString(SUBJECTIVES);
|