|
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamDetailCourseDto;
|
|
import com.qmth.distributed.print.business.bean.dto.ExamDetailCourseDto;
|
|
|
|
+import com.qmth.distributed.print.business.bean.dto.RelatePaperDto;
|
|
import com.qmth.distributed.print.business.bean.dto.SyncExamStudentDto;
|
|
import com.qmth.distributed.print.business.bean.dto.SyncExamStudentDto;
|
|
import com.qmth.distributed.print.business.bean.dto.SyncExamTaskDto;
|
|
import com.qmth.distributed.print.business.bean.dto.SyncExamTaskDto;
|
|
import com.qmth.distributed.print.business.bean.marking.status.ExamPaperStructureStatus;
|
|
import com.qmth.distributed.print.business.bean.marking.status.ExamPaperStructureStatus;
|
|
@@ -134,11 +135,17 @@ public class DataSyncServiceImpl implements DataSyncService {
|
|
|
|
|
|
// 前置方法已经校验过各课程下是否有学院代码
|
|
// 前置方法已经校验过各课程下是否有学院代码
|
|
// 同步考试
|
|
// 同步考试
|
|
- thirdRelateId = saveExam(schoolId, objectId, orgCode, thirdRelateId, thirdRelateName, examTime);
|
|
|
|
|
|
+ String saveExamErrorMessage = null;
|
|
|
|
+ try {
|
|
|
|
+ thirdRelateId = saveExam(schoolId, objectId, orgCode, thirdRelateId, thirdRelateName, examTime);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ saveExamErrorMessage = e.getMessage();
|
|
|
|
+ }
|
|
|
|
|
|
Long examTaskId = Long.valueOf(syncExamTaskDto.getExamTaskId());
|
|
Long examTaskId = Long.valueOf(syncExamTaskDto.getExamTaskId());
|
|
ExamTask examTask = examTaskService.getById(examTaskId);
|
|
ExamTask examTask = examTaskService.getById(examTaskId);
|
|
|
|
|
|
|
|
+ Set<String> errorMsgSet = new HashSet<>();
|
|
for (String paperType : syncExamTaskDto.getPaperType().split(",")) {
|
|
for (String paperType : syncExamTaskDto.getPaperType().split(",")) {
|
|
ExamTaskSync examTaskSync = examTaskSyncService.getBySchoolIdAndOrgCodeAndPaperNumberAndPaperType(schoolId, examTask.getExamId(), orgCode, examTask.getPaperNumber(), paperType);
|
|
ExamTaskSync examTaskSync = examTaskSyncService.getBySchoolIdAndOrgCodeAndPaperNumberAndPaperType(schoolId, examTask.getExamId(), orgCode, examTask.getPaperNumber(), paperType);
|
|
if (examTaskSync != null && ExamTaskSyncStatusEnum.STARTING.equals(examTaskSync.getSyncStatus())) {
|
|
if (examTaskSync != null && ExamTaskSyncStatusEnum.STARTING.equals(examTaskSync.getSyncStatus())) {
|
|
@@ -146,9 +153,9 @@ public class DataSyncServiceImpl implements DataSyncService {
|
|
}
|
|
}
|
|
ExamTaskSyncStatusEnum syncStatus = ExamTaskSyncStatusEnum.STARTING;
|
|
ExamTaskSyncStatusEnum syncStatus = ExamTaskSyncStatusEnum.STARTING;
|
|
if (examTaskSync == null) {
|
|
if (examTaskSync == null) {
|
|
- examTaskSync = new ExamTaskSync(schoolId, examTask.getExamId(), examTask.getCourseCode(), examTask.getPaperNumber(), paperType, syncExamTaskDto.getPaperType(), orgCode, Math.toIntExact(thirdRelateId), syncStatus, sysUser.getId(), System.currentTimeMillis(), null);
|
|
|
|
|
|
+ examTaskSync = new ExamTaskSync(schoolId, examTask.getExamId(), examTask.getCourseCode(), examTask.getPaperNumber(), paperType, syncExamTaskDto.getPaperType(), orgCode, thirdRelateId, syncStatus, sysUser.getId(), System.currentTimeMillis(), null);
|
|
} else {
|
|
} else {
|
|
- examTaskSync.setThirdRelateId(Math.toIntExact(thirdRelateId));
|
|
|
|
|
|
+ examTaskSync.setThirdRelateId(thirdRelateId != null ? Math.toIntExact(thirdRelateId) : null);
|
|
examTaskSync.setSyncStatus(syncStatus);
|
|
examTaskSync.setSyncStatus(syncStatus);
|
|
examTaskSync.setSyncStartTime(System.currentTimeMillis());
|
|
examTaskSync.setSyncStartTime(System.currentTimeMillis());
|
|
examTaskSync.setSyncUserId(sysUser.getId());
|
|
examTaskSync.setSyncUserId(sysUser.getId());
|
|
@@ -159,6 +166,10 @@ public class DataSyncServiceImpl implements DataSyncService {
|
|
String errorMsg = null;
|
|
String errorMsg = null;
|
|
ExamTaskSyncStatusEnum taskSyncStatusEnum = null;
|
|
ExamTaskSyncStatusEnum taskSyncStatusEnum = null;
|
|
try {
|
|
try {
|
|
|
|
+ // 考试未创建成功,则抛出异常,把数据状态改为失败
|
|
|
|
+ if (thirdRelateId == null && StringUtils.isNotBlank(saveExamErrorMessage)) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(saveExamErrorMessage);
|
|
|
|
+ }
|
|
List<Long> printPlanIds = Arrays.asList(syncExamTaskDto.getPrintPlanIds().split(",")).stream().map(m -> Long.parseLong(m)).collect(Collectors.toList());
|
|
List<Long> printPlanIds = Arrays.asList(syncExamTaskDto.getPrintPlanIds().split(",")).stream().map(m -> Long.parseLong(m)).collect(Collectors.toList());
|
|
List<ExamDetailCourseDto> examDetailCourseList = examDetailCourseService.listByPrintPlanIdAndExamTaskId(printPlanIds, examTaskId, paperType);
|
|
List<ExamDetailCourseDto> examDetailCourseList = examDetailCourseService.listByPrintPlanIdAndExamTaskId(printPlanIds, examTaskId, paperType);
|
|
// 同步考生
|
|
// 同步考生
|
|
@@ -179,11 +190,11 @@ public class DataSyncServiceImpl implements DataSyncService {
|
|
saveStudent(schoolId, thirdRelateId, syncExamStudentDtoList);
|
|
saveStudent(schoolId, thirdRelateId, syncExamStudentDtoList);
|
|
}
|
|
}
|
|
|
|
|
|
- // 同步题卡
|
|
|
|
// 同步题卡(只上传当前卷型)
|
|
// 同步题卡(只上传当前卷型)
|
|
cardUpload(schoolId, thirdRelateId, examTask, paperType);
|
|
cardUpload(schoolId, thirdRelateId, examTask, paperType);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
errorMsg = e.getMessage();
|
|
errorMsg = e.getMessage();
|
|
|
|
+ errorMsgSet.add(errorMsg);
|
|
taskSyncStatusEnum = ExamTaskSyncStatusEnum.FAIL;
|
|
taskSyncStatusEnum = ExamTaskSyncStatusEnum.FAIL;
|
|
} finally {
|
|
} finally {
|
|
examTaskSync.setErrorMsg(errorMsg);
|
|
examTaskSync.setErrorMsg(errorMsg);
|
|
@@ -192,10 +203,9 @@ public class DataSyncServiceImpl implements DataSyncService {
|
|
}
|
|
}
|
|
examTaskSync.setSyncEndTime(System.currentTimeMillis());
|
|
examTaskSync.setSyncEndTime(System.currentTimeMillis());
|
|
examTaskSyncService.saveOrUpdate(examTaskSync);
|
|
examTaskSyncService.saveOrUpdate(examTaskSync);
|
|
-
|
|
|
|
- if (StringUtils.isNotBlank(errorMsg)) {
|
|
|
|
- throw ExceptionResultEnum.ERROR.exception(errorMsg);
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+ if (!CollectionUtils.isEmpty(errorMsgSet)) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(String.join(";", errorMsgSet));
|
|
}
|
|
}
|
|
// 任务结果
|
|
// 任务结果
|
|
result = TaskResultEnum.SUCCESS;
|
|
result = TaskResultEnum.SUCCESS;
|