|
@@ -2089,13 +2089,15 @@ public class TaskLogicServiceImpl implements TaskLogicService {
|
|
|
|
|
|
List<BasicExamStudent> dbData = basicExamStudentService.list(new QueryWrapper<BasicExamStudent>().lambda()
|
|
List<BasicExamStudent> dbData = basicExamStudentService.list(new QueryWrapper<BasicExamStudent>().lambda()
|
|
.select(BasicExamStudent::getId, BasicExamStudent::getExamId, BasicExamStudent::getCourseCode,
|
|
.select(BasicExamStudent::getId, BasicExamStudent::getExamId, BasicExamStudent::getCourseCode,
|
|
- BasicExamStudent::getStudentCode).eq(BasicExamStudent::getSchoolId, schoolId)
|
|
|
|
- .eq(BasicExamStudent::getExamId, examId));
|
|
|
|
|
|
+ BasicExamStudent::getStudentCode, BasicExamStudent::getPaperNumber).eq(BasicExamStudent::getSchoolId, schoolId).eq(BasicExamStudent::getExamId, examId));
|
|
|
|
|
|
// 数据库中学生学号和id对应关系
|
|
// 数据库中学生学号和id对应关系
|
|
Map<String, Long> studentCodeIdMap = dbData.stream().collect(Collectors.toMap(
|
|
Map<String, Long> studentCodeIdMap = dbData.stream().collect(Collectors.toMap(
|
|
k -> k.getExamId() + SystemConstant.HYPHEN + k.getCourseCode() + SystemConstant.HYPHEN + k.getStudentCode(),
|
|
k -> k.getExamId() + SystemConstant.HYPHEN + k.getCourseCode() + SystemConstant.HYPHEN + k.getStudentCode(),
|
|
BaseEntity::getId));
|
|
BaseEntity::getId));
|
|
|
|
+ Map<String, String> paperNumberCourseCodeMap = dbData.stream().filter(e -> SystemConstant.strNotNull(e.getPaperNumber())).collect(
|
|
|
|
+ Collectors.toMap(BasicExamStudent::getPaperNumber, BasicExamStudent::getCourseCode, (o1, o2) -> o1));
|
|
|
|
+
|
|
// excel中学生学号和学生字典对象关系
|
|
// excel中学生学号和学生字典对象关系
|
|
Map<String, BasicExamStudent> studentCodeObjMap = new HashMap<>();
|
|
Map<String, BasicExamStudent> studentCodeObjMap = new HashMap<>();
|
|
AtomicInteger successInteger = new AtomicInteger(0);
|
|
AtomicInteger successInteger = new AtomicInteger(0);
|
|
@@ -2104,11 +2106,9 @@ public class TaskLogicServiceImpl implements TaskLogicService {
|
|
ExcelResult<BasicExamStudentDto> excelResult = ConvertUtil.analyzeExcel(inputStream, BasicExamStudentDto.class,
|
|
ExcelResult<BasicExamStudentDto> excelResult = ConvertUtil.analyzeExcel(inputStream, BasicExamStudentDto.class,
|
|
true, 1);
|
|
true, 1);
|
|
List<BasicExamStudentDto> basicExamStudentDtoList = excelResult.getDatasource();
|
|
List<BasicExamStudentDto> basicExamStudentDtoList = excelResult.getDatasource();
|
|
- boolean success = excelResult.isSuccess();
|
|
|
|
for (BasicExamStudentDto basicExamStudentDto : basicExamStudentDtoList) {
|
|
for (BasicExamStudentDto basicExamStudentDto : basicExamStudentDtoList) {
|
|
List<String> errorMsgList = new ArrayList<>();
|
|
List<String> errorMsgList = new ArrayList<>();
|
|
// 行索引
|
|
// 行索引
|
|
- String courseName = basicExamStudentDto.getCourseName();
|
|
|
|
String courseCode = basicExamStudentDto.getCourseCode();
|
|
String courseCode = basicExamStudentDto.getCourseCode();
|
|
String studentName = basicExamStudentDto.getStudentName();
|
|
String studentName = basicExamStudentDto.getStudentName();
|
|
String studentCode = basicExamStudentDto.getStudentCode();
|
|
String studentCode = basicExamStudentDto.getStudentCode();
|
|
@@ -2135,6 +2135,17 @@ public class TaskLogicServiceImpl implements TaskLogicService {
|
|
errorMsgList.add(e.getMessage());
|
|
errorMsgList.add(e.getMessage());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (SystemConstant.strNotNull(paperNumber) && SystemConstant.strNotNull(courseCode)) {
|
|
|
|
+ if (paperNumberCourseCodeMap.containsKey(paperNumber)) {
|
|
|
|
+ if (!Objects.equals(paperNumberCourseCodeMap.get(paperNumber), courseCode)) {
|
|
|
|
+ errorMsgList.add(String.format("试卷编号和课程编号不匹配:试卷编号[%s]已经存在于课程[%s]下", paperNumber,
|
|
|
|
+ paperNumberCourseCodeMap.get(paperNumber)));
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ paperNumberCourseCodeMap.put(paperNumber, courseCode);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
String key = examId + SystemConstant.HYPHEN + courseCode + SystemConstant.HYPHEN + studentCode;
|
|
String key = examId + SystemConstant.HYPHEN + courseCode + SystemConstant.HYPHEN + studentCode;
|
|
Long id = null;
|
|
Long id = null;
|
|
if (studentCodeIdMap.containsKey(key)) {
|
|
if (studentCodeIdMap.containsKey(key)) {
|
|
@@ -2194,9 +2205,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public Map<String, Object> executeImportMarkStudentLogic(Map<String, Object> map) throws Exception {
|
|
public Map<String, Object> executeImportMarkStudentLogic(Map<String, Object> map) throws Exception {
|
|
- SysUser requestUser = (SysUser) map.get(SystemConstant.USER);
|
|
|
|
InputStream inputStream = (InputStream) map.get("inputStream");
|
|
InputStream inputStream = (InputStream) map.get("inputStream");
|
|
- Long examId = SystemConstant.convertIdToLong(String.valueOf(map.get("examId")));
|
|
|
|
// 检验课程编号和课程名称对应
|
|
// 检验课程编号和课程名称对应
|
|
Map<String, String> courseCodeNameCheckMap = new HashMap<>();
|
|
Map<String, String> courseCodeNameCheckMap = new HashMap<>();
|
|
// 检验学号在课程下唯一
|
|
// 检验学号在课程下唯一
|
|
@@ -2423,7 +2432,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
|
|
optionScope.add(code);
|
|
optionScope.add(code);
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- throw ExceptionResultEnum.ERROR.exception(logicErrorCommonNotice + "[选项个数]不能超过26");
|
|
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(e.getMessage());
|
|
}
|
|
}
|
|
|
|
|
|
// 答案选项越界校验
|
|
// 答案选项越界校验
|
|
@@ -2457,8 +2466,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
|
|
case 2:
|
|
case 2:
|
|
break;
|
|
break;
|
|
case 3:
|
|
case 3:
|
|
- if (!OptionsEnum.A.getCode().equals(answer) && !OptionsEnum.B.getCode().equals(answer)) {
|
|
|
|
- logicErrorList.add("判断题答案只能为A&B");
|
|
|
|
|
|
+ if (optionCount != 2) {
|
|
|
|
+ logicErrorList.add("判断题[选项个数]只能为2");
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|