|
@@ -245,6 +245,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
@Override
|
|
|
public ExamTaskImportDto importFile(MultipartFile file) throws IOException, NoSuchFieldException {
|
|
|
List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(ExamTaskTempDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
|
|
|
+ Map<String,String> courseCodePaperNumberMap = new HashMap<>();
|
|
|
List<ExcelError> excelErrorTemp = new ArrayList<>();
|
|
|
// 只允许导入一个sheet
|
|
|
if (finalExcelList.size() > 1) {
|
|
@@ -271,6 +272,14 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
} else if (!course.getName().equals(userImportDto.getCourseName())) {
|
|
|
excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程名称]与系统中不匹配"));
|
|
|
}
|
|
|
+ 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) + "行[课程代码]与[试卷编号]不唯一"));
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ courseCodePaperNumberMap.put(userImportDto.getCourseCode(),userImportDto.getPaperNumber());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (excelErrorTemp.size() > 0) {
|
|
@@ -344,7 +353,13 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
if (sysUser1 == null) {
|
|
|
examTaskDto.setUsers(listUsers(examTaskTemp.getCourseCode(), null));
|
|
|
} else {
|
|
|
- examTaskDto.setUsers(listUsers(examTaskTemp.getCourseCode(), String.valueOf(sysUser1.getId())));
|
|
|
+ List<BlurryUserDto> blurryUserDtoList = listUsers(examTaskTemp.getCourseCode(), String.valueOf(sysUser1.getId()));
|
|
|
+
|
|
|
+ if (blurryUserDtoList.size() == 0){
|
|
|
+ //如果没有查询到模糊用户数据 可能是excel中命题老师没有该课程权限,则舍弃该用户再次查询该科目-试卷的模糊用户
|
|
|
+ blurryUserDtoList = listUsers(examTaskTemp.getCourseCode(), null);
|
|
|
+ }
|
|
|
+ examTaskDto.setUsers(blurryUserDtoList);
|
|
|
}
|
|
|
}
|
|
|
tasks.add(examTaskDto);
|
|
@@ -410,7 +425,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
// 试卷编号生成规则:年月日(例如:20100419)+0000(例如:0001)顺序编号
|
|
|
String date = DateUtil.today().replace("-", "");
|
|
|
String paperNumber = convertUtil.getIncre(date, "paperNumber" + schoolId, 5);
|
|
|
- examTask.setPaperNumber(paperNumber);
|
|
|
+ examTaskTemp.setPaperNumber(paperNumber);
|
|
|
}
|
|
|
examTask.setPaperNumber(examTaskTemp.getPaperNumber());
|
|
|
examTask.setStartTime(task.getStartTime());
|
|
@@ -431,7 +446,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
|
|
|
for (Map<String, String> user : task.getUsers()) {
|
|
|
String ucourseCode = user.get("courseCode");
|
|
|
String upaperNumber = user.get("paperNumber");
|
|
|
- if (examTaskTemp.getCourseCode().equals(ucourseCode) && examTaskTemp.getPaperNumber().equals(upaperNumber)) {
|
|
|
+ if (examTaskTemp.getCourseCode().equals(ucourseCode)) {
|
|
|
userId = user.get("userId");
|
|
|
specialty = user.get("specialty");
|
|
|
}
|