|
@@ -413,14 +413,14 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
if (StringUtils.isNotBlank(examTask.getPaperNumber())) {
|
|
|
QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
|
|
|
- taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getPaperNumber, examTask.getPaperNumber());
|
|
|
+ taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getExamId, examId).eq(ExamTask::getPaperNumber, examTask.getPaperNumber());
|
|
|
ExamTask task = this.getOne(taskQueryWrapper);
|
|
|
if (task != null) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("试卷编号已存在");
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("试卷编号在当前考试下已存在");
|
|
|
}
|
|
|
} else {
|
|
|
// 试卷编号生成规则:年月日(例如:20100419)+0000(例如:0001)顺序编号
|
|
|
- String paperNumber = printCommonService.createPaperNumber(schoolId);
|
|
|
+ String paperNumber = printCommonService.createPaperNumber(schoolId, examId);
|
|
|
examTask.setPaperNumber(paperNumber);
|
|
|
}
|
|
|
examTask.setPaperNumberId(SystemConstant.getDbUuid());
|
|
@@ -500,7 +500,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
if (courseCodePaperNumberMap.containsKey(userImportDto.getCourseCode())) {
|
|
|
String paperNumber = courseCodePaperNumberMap.get(userImportDto.getCourseCode());
|
|
|
if (paperNumber != null && paperNumber.equals(userImportDto.getPaperNumber())) {
|
|
|
- excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程代码]与[试卷编号]不唯一"));
|
|
|
+ excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程代码]与[试卷编号]有相同数据"));
|
|
|
}
|
|
|
} else {
|
|
|
courseCodePaperNumberMap.put(userImportDto.getCourseCode(), userImportDto.getPaperNumber());
|
|
@@ -597,15 +597,15 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
stringJoiner.add(error);
|
|
|
continue;
|
|
|
}
|
|
|
- QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
|
|
|
- taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getPaperNumber, examTaskTemp.getPaperNumber());
|
|
|
- ExamTask task1 = this.getOne(taskQueryWrapper);
|
|
|
- if (task1 != null) {
|
|
|
- // 试卷编号已存在,直接跳过
|
|
|
- String error = examTaskTemp.getPaperNumber() + "已存在";
|
|
|
- stringJoiner.add(error);
|
|
|
- continue;
|
|
|
- }
|
|
|
+// QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
|
|
|
+// taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getPaperNumber, examTaskTemp.getPaperNumber());
|
|
|
+// ExamTask task1 = this.getOne(taskQueryWrapper);
|
|
|
+// if (task1 != null) {
|
|
|
+// // 试卷编号已存在,直接跳过
|
|
|
+// String error = examTaskTemp.getPaperNumber() + "已存在";
|
|
|
+// stringJoiner.add(error);
|
|
|
+// continue;
|
|
|
+// }
|
|
|
paperNumbers.add(examTaskTemp.getPaperNumber());
|
|
|
}
|
|
|
|
|
@@ -717,6 +717,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
Set<String> paperNumbers = new HashSet<>();
|
|
|
List<Map<String, String>> userList = task.getUsers();
|
|
|
|
|
|
+ StringJoiner stringJoiner = new StringJoiner(",");
|
|
|
for (Map<String, String> userMap : userList) {
|
|
|
String courseCode = userMap.get("courseCode");
|
|
|
// 配置信息
|
|
@@ -737,21 +738,23 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
|
|
|
if (StringUtils.isNotBlank(userMap.get("paperNumber"))) {
|
|
|
if (paperNumbers.contains(userMap.get("paperNumber"))) {
|
|
|
+ stringJoiner.add(String.format("试卷编号[%s]在文件内重复", userMap.get("paperNumber")));
|
|
|
// 试卷编号在文件内重复,跳过
|
|
|
continue;
|
|
|
}
|
|
|
QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
|
|
|
- taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getPaperNumber, userMap.get("paperNumber"));
|
|
|
+ taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getExamId, examId).eq(ExamTask::getPaperNumber, userMap.get("paperNumber"));
|
|
|
ExamTask task1 = this.getOne(taskQueryWrapper);
|
|
|
if (task1 != null) {
|
|
|
-// throw ExceptionResultEnum.ERROR.exception("试卷编号已存在");
|
|
|
- // 试卷编号已存在,直接跳过
|
|
|
+// throw ExceptionResultEnum.ERROR.exception("试卷编号在当前考试下已存在");
|
|
|
+ stringJoiner.add(String.format("试卷编号[%s]在当前考试下已存在", userMap.get("paperNumber")));
|
|
|
+// // 试卷编号已存在,直接跳过
|
|
|
continue;
|
|
|
}
|
|
|
paperNumbers.add(userMap.get("paperNumber"));
|
|
|
} else {
|
|
|
// 试卷编号生成规则:年月日(例如:20100419)+0000(例如:0001)顺序编号
|
|
|
- String paperNumber = printCommonService.createPaperNumber(schoolId);
|
|
|
+ String paperNumber = printCommonService.createPaperNumber(schoolId, examId);
|
|
|
userMap.put("paperNumber", paperNumber);
|
|
|
}
|
|
|
examTask.setPaperNumber(userMap.get("paperNumber"));
|
|
@@ -783,6 +786,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
examTask.setReview(basicPrintConfig.getReview());
|
|
|
list.add(examTask);
|
|
|
}
|
|
|
+
|
|
|
+ // 有异常,抛出
|
|
|
+ if (stringJoiner.toString().length() > 0) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(stringJoiner.toString());
|
|
|
+ }
|
|
|
this.saveBatch(list);
|
|
|
for (ExamTask examTask : list) {
|
|
|
if (Objects.nonNull(examTask.getReview()) && examTask.getReview() && Objects.nonNull(examTask.getUserId()) && Objects.isNull(examTask.getFlowId())) {
|
|
@@ -1140,9 +1148,10 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ExamTask getByCourseCodeAndPaperNumber(Long schoolId, String courseCode, String paperNumber) {
|
|
|
+ public ExamTask getByCourseCodeAndPaperNumber(Long schoolId, Long examId, String courseCode, String paperNumber) {
|
|
|
QueryWrapper<ExamTask> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId)
|
|
|
+ .eq(ExamTask::getExamId, examId)
|
|
|
.eq(ExamTask::getCourseCode, courseCode)
|
|
|
.eq(ExamTask::getPaperNumber, paperNumber);
|
|
|
return this.getOne(queryWrapper);
|
|
@@ -1167,9 +1176,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public void verifyCourseCodeByPaperNumber(Long schoolId, String paperNumber, String courseCode) {
|
|
|
+ public void verifyCourseCodeByPaperNumber(Long schoolId, Long examId, String paperNumber, String courseCode) {
|
|
|
List<ExamTask> examTaskList = this.list(new QueryWrapper<ExamTask>().lambda()
|
|
|
- .eq(ExamTask::getPaperNumber, paperNumber).eq(ExamTask::getSchoolId, schoolId));
|
|
|
+ .eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getExamId, examId).eq(ExamTask::getPaperNumber, paperNumber));
|
|
|
if (examTaskList.size() > 1) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("异常 :[试卷编号]" + paperNumber + "有多条命题任务记录");
|
|
|
} else if (examTaskList.size() == 1) {
|
|
@@ -1183,8 +1192,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void checkDataByExamination(Long examDetailId, SysUser user) throws IOException {
|
|
|
+ public void checkDataByExamination(Long printPlanId, Long examDetailId, SysUser user) throws IOException {
|
|
|
boolean judge = true;
|
|
|
+ ExamPrintPlan examPrintPlan = examPrintPlanService.getById(printPlanId);
|
|
|
ExamDetail examDetail = examDetailService.getById(examDetailId);
|
|
|
if (Objects.isNull(examDetail)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("考务-考场不存在");
|
|
@@ -1201,6 +1211,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
Long schoolId = examDetailCourse.getSchoolId();
|
|
|
ExamTask examTask = this.getOne(new QueryWrapper<ExamTask>().lambda()
|
|
|
.eq(ExamTask::getSchoolId, schoolId)
|
|
|
+ .eq(ExamTask::getExamId, examPrintPlan.getExamId())
|
|
|
.eq(ExamTask::getCourseCode, courseCode)
|
|
|
.eq(ExamTask::getPaperNumber, paperNumber));
|
|
|
if (examTask == null) {
|
|
@@ -1426,8 +1437,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<ExamTask> findByFlowStatus(Long schoolId, String courseCode, String courseName, String paperNumber, FlowStatusEnum flowStatus) {
|
|
|
- return examTaskMapper.findByFlowStatus(schoolId, courseCode, courseName, paperNumber, Objects.nonNull(flowStatus) ? flowStatus.name() : null);
|
|
|
+ public List<ExamTask> findByFlowStatus(Long schoolId, Long examId, String courseCode, String courseName, String paperNumber, FlowStatusEnum flowStatus) {
|
|
|
+ return examTaskMapper.findByFlowStatus(schoolId, examId, courseCode, courseName, paperNumber, Objects.nonNull(flowStatus) ? flowStatus.name() : null);
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
@@ -1476,7 +1487,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
}
|
|
|
} else {
|
|
|
// 试卷编号生成规则:年月日(例如:20100419)+0000(例如:0001)顺序编号
|
|
|
- String paperNumber = printCommonService.createPaperNumber(schoolId);
|
|
|
+ String paperNumber = printCommonService.createPaperNumber(schoolId, examId);
|
|
|
examTask.setPaperNumber(paperNumber);
|
|
|
}
|
|
|
if (Objects.nonNull(examTask.getId())) {
|
|
@@ -1617,7 +1628,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
}
|
|
|
} else {
|
|
|
// 试卷编号生成规则:年月日(例如:20100419)+0000(例如:0001)顺序编号
|
|
|
- String paperNumber = printCommonService.createPaperNumber(schoolId);
|
|
|
+ String paperNumber = printCommonService.createPaperNumber(schoolId, examTask.getExamId());
|
|
|
examTask.setPaperNumber(paperNumber);
|
|
|
}
|
|
|
|
|
@@ -1732,14 +1743,13 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
examDetail.setSchoolId(schoolId);
|
|
|
examDetail.setOrgId(sysUser.getOrgId());
|
|
|
examDetail.setPrintPlanId(examPrintPlan.getId());
|
|
|
+ examDetail.setExamId(examPrintPlan.getExamId());
|
|
|
examDetail.setPrintPlanName(examPrintPlan.getName());
|
|
|
examDetail.setExamPlace(examDetailList.getExamPlace()); // 无默认值
|
|
|
examDetail.setExamRoom(examDetailList.getExamRoom()); // 无默认值
|
|
|
examDetail.setStatus(ExamDetailStatusEnum.NEW);
|
|
|
examDetail.setExamStartTime(examDetailParams.getExamStartTime());
|
|
|
examDetail.setExamEndTime(examDetailParams.getExamEndTime());
|
|
|
-
|
|
|
-
|
|
|
examDetail.setTotalSubjects(count);
|
|
|
examDetail.setExamDataSource(ExamDataSourceEnum.EXAM_TASK);
|
|
|
examDetail.setNormal(true);
|
|
@@ -1791,6 +1801,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
examDetail.setOrgId(sysUser.getOrgId());
|
|
|
examDetail.setPrintPlanId(examPrintPlan.getId());
|
|
|
examDetail.setPrintPlanName(examPrintPlan.getName());
|
|
|
+ examDetail.setExamId(examPrintPlan.getExamId());
|
|
|
examDetail.setExamPlace("考点1"); // 默认填充班级所在校区
|
|
|
examDetail.setExamRoom("考场1"); // 默认填充班级
|
|
|
examDetail.setStatus(ExamDetailStatusEnum.NEW);
|
|
@@ -1946,9 +1957,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public ExamObjectDto findExamObjectDtoByPaperNumber(String paperNumber) {
|
|
|
+ public ExamObjectDto findExamObjectDtoByPaperNumber(Long examId, String paperNumber) {
|
|
|
Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
- ExamTask examTask = examTaskService.getOne(new QueryWrapper<ExamTask>().lambda().eq(ExamTask::getPaperNumber, paperNumber).eq(ExamTask::getSchoolId, schoolId));
|
|
|
+ ExamTask examTask = examTaskService.getOne(new QueryWrapper<ExamTask>().lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getExamId, examId).eq(ExamTask::getPaperNumber, paperNumber));
|
|
|
if (Objects.isNull(examTask)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("未找到命题任务");
|
|
|
}
|