|
@@ -842,9 +842,13 @@ public class ImportLogicServiceImpl implements ImportLogicService {
|
|
|
throw ExceptionResultEnum.ERROR.exception("仅针对模式4的考试可以导入");
|
|
|
}
|
|
|
// 课程编号名称校验
|
|
|
- Map<String, String> courseCheckMap = basicCourseService.list(
|
|
|
- new QueryWrapper<BasicCourse>().lambda().eq(BasicCourse::getSchoolId, schoolId)).stream()
|
|
|
- .collect(Collectors.toMap(BasicCourse::getCode, BasicCourse::getName));
|
|
|
+ Map<String, Set<String>> courseCheckMap = basicCourseService.list(
|
|
|
+ new QueryWrapper<BasicCourse>().lambda().eq(BasicCourse::getSchoolId, schoolId)).stream().collect(
|
|
|
+ Collectors.toMap(BasicCourse::getCode, v -> new HashSet<>(Collections.singletonList(v.getName())), (Set<String> v1, Set<String> v2) -> {
|
|
|
+ v1.addAll(v2);
|
|
|
+ return v1;
|
|
|
+ }));
|
|
|
+
|
|
|
List<MarkPaper> markPaperList = markPaperService.findMarkPaperListByExamId(examId);
|
|
|
// 题号重复校验
|
|
|
// 导入的客观题题号集合
|
|
@@ -880,9 +884,10 @@ public class ImportLogicServiceImpl implements ImportLogicService {
|
|
|
|
|
|
// 1.题号重复校验
|
|
|
if (SystemConstant.strNotNull(paperNumber) && mainNumber != null && subNumber != null) {
|
|
|
- logicErrorCommonNotice = String.format("课程代码为[%s],试卷编号为[%s],大题号为[%s],小题号为[%s]的数据异常 : ", courseCode, paperNumber, mainNumber,
|
|
|
- subNumber);
|
|
|
- String questionNumberKey = courseCode + SystemConstant.HYPHEN + paperNumber + SystemConstant.HYPHEN + mainNumber + SystemConstant.HYPHEN + subNumber;
|
|
|
+ logicErrorCommonNotice = String.format("课程代码为[%s],试卷编号为[%s],大题号为[%s],小题号为[%s]的数据异常 : ", courseCode,
|
|
|
+ paperNumber, mainNumber, subNumber);
|
|
|
+ String questionNumberKey =
|
|
|
+ courseCode + SystemConstant.HYPHEN + paperNumber + SystemConstant.HYPHEN + mainNumber + SystemConstant.HYPHEN + subNumber;
|
|
|
if (questionNumberCheckSet.contains(questionNumberKey)) {
|
|
|
logicErrorList.add("excel中题号重复");
|
|
|
} else {
|
|
@@ -905,10 +910,11 @@ public class ImportLogicServiceImpl implements ImportLogicService {
|
|
|
if (SystemConstant.strNotNull(courseCode) && SystemConstant.strNotNull(courseName) && SystemConstant.strNotNull(paperNumber)) {
|
|
|
if (!courseCheckMap.containsKey(courseCode)) {
|
|
|
logicErrorList.add("课程编号不存在");
|
|
|
- } else if (!courseCheckMap.get(courseCode).equals(courseName)) {
|
|
|
+ } else if (!courseCheckMap.get(courseCode).contains(courseName)) {
|
|
|
logicErrorList.add("课程编号名称不匹配");
|
|
|
}
|
|
|
- if (markPaperList.stream().noneMatch(m -> m.getPaperNumber().equals(paperNumber) && m.getCourseCode().equals(courseCode))) {
|
|
|
+ if (markPaperList.stream().noneMatch(
|
|
|
+ m -> m.getPaperNumber().equals(paperNumber) && m.getCourseCode().equals(courseCode) && m.getCourseName().equals(courseName))) {
|
|
|
logicErrorList.add("考试课程中不存在该试卷,请先创建试卷");
|
|
|
}
|
|
|
}
|
|
@@ -946,20 +952,20 @@ public class ImportLogicServiceImpl implements ImportLogicService {
|
|
|
// 4.判断答案是否符合题型
|
|
|
if (questionType != null && SystemConstant.strNotNull(answer)) {
|
|
|
switch (questionType) {
|
|
|
- case 1:
|
|
|
- if (answer.length() > 1) {
|
|
|
- logicErrorList.add("单选题答案只能有一个");
|
|
|
- }
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- if (optionCount != 2) {
|
|
|
- logicErrorList.add("判断题[选项个数]只能为2");
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- logicErrorList.add("[题型(1-单选,2-多选,3-判断)]必须从1、2、3中填写");
|
|
|
+ case 1:
|
|
|
+ if (answer.length() > 1) {
|
|
|
+ logicErrorList.add("单选题答案只能有一个");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ if (optionCount != 2) {
|
|
|
+ logicErrorList.add("判断题[选项个数]只能为2");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ logicErrorList.add("[题型(1-单选,2-多选,3-判断)]必须从1、2、3中填写");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1029,9 +1035,13 @@ public class ImportLogicServiceImpl implements ImportLogicService {
|
|
|
}
|
|
|
|
|
|
// 课程编号名称校验
|
|
|
- Map<String, String> courseCheckMap = basicCourseService.list(
|
|
|
- new QueryWrapper<BasicCourse>().lambda().eq(BasicCourse::getSchoolId, schoolId)).stream()
|
|
|
- .collect(Collectors.toMap(BasicCourse::getCode, BasicCourse::getName));
|
|
|
+ Map<String, Set<String>> courseCheckMap = basicCourseService.list(
|
|
|
+ new QueryWrapper<BasicCourse>().lambda().eq(BasicCourse::getSchoolId, schoolId)).stream().collect(
|
|
|
+ Collectors.toMap(BasicCourse::getCode, v -> new HashSet<>(Collections.singletonList(v.getName())),
|
|
|
+ (Set<String> v1, Set<String> v2) -> {
|
|
|
+ v1.addAll(v2);
|
|
|
+ return v1;
|
|
|
+ }));
|
|
|
List<MarkPaper> markPaperList = markPaperService.findMarkPaperListByExamId(examId);
|
|
|
// 题号重复校验
|
|
|
// 导入的客观题题号集合
|
|
@@ -1061,9 +1071,10 @@ public class ImportLogicServiceImpl implements ImportLogicService {
|
|
|
|
|
|
// 1.题号重复校验
|
|
|
if (SystemConstant.strNotNull(paperNumber) && mainNumber != null && subNumber != null) {
|
|
|
- excelErrorCommonNotice = String.format("课程代码为[%s],试卷编号为[%s],大题号为[%s],小题号为[%s]的数据异常 : ", courseCode, paperNumber, mainNumber,
|
|
|
- subNumber);
|
|
|
- String questionNumberKey = courseCode + SystemConstant.HYPHEN + paperNumber + SystemConstant.HYPHEN + mainNumber + SystemConstant.HYPHEN + subNumber;
|
|
|
+ excelErrorCommonNotice = String.format("课程代码为[%s],试卷编号为[%s],大题号为[%s],小题号为[%s]的数据异常 : ", courseCode,
|
|
|
+ paperNumber, mainNumber, subNumber);
|
|
|
+ String questionNumberKey =
|
|
|
+ courseCode + SystemConstant.HYPHEN + paperNumber + SystemConstant.HYPHEN + mainNumber + SystemConstant.HYPHEN + subNumber;
|
|
|
if (questionNumberCheckSet.contains(questionNumberKey)) {
|
|
|
excelErrorList.add("excel中题号重复");
|
|
|
} else {
|
|
@@ -1078,10 +1089,11 @@ public class ImportLogicServiceImpl implements ImportLogicService {
|
|
|
if (SystemConstant.strNotNull(courseCode) && SystemConstant.strNotNull(courseName) && SystemConstant.strNotNull(paperNumber)) {
|
|
|
if (!courseCheckMap.containsKey(courseCode)) {
|
|
|
excelErrorList.add("课程代码不存在");
|
|
|
- } else if (!courseCheckMap.get(courseCode).equals(courseName)) {
|
|
|
+ } else if (!courseCheckMap.get(courseCode).contains(courseName)) {
|
|
|
excelErrorList.add("课程代码名称不匹配");
|
|
|
}
|
|
|
- if (markPaperList.stream().noneMatch(m -> m.getPaperNumber().equals(paperNumber) && m.getCourseCode().equals(courseCode))) {
|
|
|
+ if (markPaperList.stream().noneMatch(
|
|
|
+ m -> m.getPaperNumber().equals(paperNumber) && m.getCourseCode().equals(courseCode) && m.getCourseName().equals(courseName))) {
|
|
|
excelErrorList.add("考试课程中不存在该试卷,请先创建试卷");
|
|
|
}
|
|
|
}
|
|
@@ -1220,7 +1232,7 @@ public class ImportLogicServiceImpl implements ImportLogicService {
|
|
|
userSaveParams.setPassword(SystemConstant.DEFAULT_PASSWORD);
|
|
|
userSaveParams.setOrgId(orgId);
|
|
|
userSaveParams.setEnable(true);
|
|
|
- userSaveParams.setRoleIds(new Long[]{markerRole.getId()});
|
|
|
+ userSaveParams.setRoleIds(new Long[] { markerRole.getId() });
|
|
|
try {
|
|
|
markUser.setUserId(sysUserService.saveUser(userSaveParams));
|
|
|
markUser.setName(markerCode);
|