|
@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.qmth.boot.api.constant.ApiConstant;
|
|
|
-import com.qmth.distributed.print.business.bean.dto.ExaminationImportDto;
|
|
|
import com.qmth.teachcloud.common.bean.params.UserSaveParams;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
import com.qmth.teachcloud.common.entity.BasicCourse;
|
|
@@ -19,6 +18,7 @@ import com.qmth.teachcloud.common.service.SysOrgService;
|
|
|
import com.qmth.teachcloud.common.service.SysRoleService;
|
|
|
import com.qmth.teachcloud.common.service.SysUserService;
|
|
|
import com.qmth.teachcloud.common.util.ExcelUtil;
|
|
|
+import com.qmth.teachcloud.common.util.Result;
|
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
|
import com.qmth.teachcloud.report.business.bean.dto.excel.*;
|
|
|
import com.qmth.teachcloud.report.business.bean.dto.query.*;
|
|
@@ -27,10 +27,7 @@ import com.qmth.teachcloud.report.business.enums.AssignEnum;
|
|
|
import com.qmth.teachcloud.report.business.enums.ExamCloudDataEnum;
|
|
|
import com.qmth.teachcloud.report.business.enums.NumberTypeEnum;
|
|
|
import com.qmth.teachcloud.report.business.service.*;
|
|
|
-import com.qmth.teachcloud.common.util.Result;
|
|
|
-import io.netty.handler.codec.http.HttpRequest;
|
|
|
import io.swagger.annotations.*;
|
|
|
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.LinkedMultiValueMap;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@@ -38,16 +35,13 @@ import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
-import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|
|
-import org.springframework.web.util.WebUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import javax.crypto.ExemptionMechanism;
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
import java.io.IOException;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
|
* @Description: 基础数据导入系统基础表控制类
|
|
@@ -104,6 +98,8 @@ public class BasicDatasourceController {
|
|
|
private AnalyzeForReportService analyzeForReportService;
|
|
|
@Resource
|
|
|
private TBExaminationService tbExaminationService;
|
|
|
+ @Resource
|
|
|
+ private TBExaminationRelationService tbExaminationRelationService;
|
|
|
|
|
|
@ApiOperation(value = "试卷数据导入")
|
|
|
@RequestMapping(value = "/paper/import", method = RequestMethod.POST)
|
|
@@ -454,7 +450,8 @@ public class BasicDatasourceController {
|
|
|
TBExam tbExam = tbExamService.findByCloudExamId(id);
|
|
|
Long examId = tbExam.getId();
|
|
|
Long schoolId = tbExamService.getById(examId).getSchoolId();
|
|
|
- if (schoolId != pSchoolId){
|
|
|
+
|
|
|
+ if (!schoolId.equals(pSchoolId)){
|
|
|
throw ExceptionResultEnum.ERROR.exception("学校id不匹配");
|
|
|
}
|
|
|
|
|
@@ -492,14 +489,26 @@ public class BasicDatasourceController {
|
|
|
}
|
|
|
this.saveCollegeInfo(tbSchoolCollegeDtoList);
|
|
|
// TODO: 2021/6/2 筛选并创建学校教师表
|
|
|
+ // 查询考务关系
|
|
|
+ List<TBExaminationRelation> tbExaminationRelationList = tbExaminationRelationService.list(new QueryWrapper<TBExaminationRelation>().lambda()
|
|
|
+ .eq(TBExaminationRelation::getExamId,examId));
|
|
|
+
|
|
|
List<TBSchoolTeacherDto> tbSchoolTeacherDtoList = new ArrayList<>();
|
|
|
List<String> teacherList = finalList.stream()
|
|
|
.map(e -> String.valueOf(e.get(ExamCloudDataEnum.TEACHER.getName())))
|
|
|
.distinct().collect(Collectors.toList());
|
|
|
for (String teacherInfo : teacherList) {
|
|
|
+ List<String> teacherCodeList = tbExaminationRelationList.stream()
|
|
|
+ .filter(e -> teacherInfo.equals(e.getTeacherName()))
|
|
|
+ .map(TBExaminationRelation::getTeacherCode)
|
|
|
+ .distinct().collect(Collectors.toList());
|
|
|
+ if (teacherCodeList.size() != 1){
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("不能通过云阅卷中教师名称找到对应考务数据的教师");
|
|
|
+ }
|
|
|
+
|
|
|
TBSchoolTeacherDto tbSchoolTeacherDto = new TBSchoolTeacherDto();
|
|
|
tbSchoolTeacherDto.setSchoolId(schoolId);
|
|
|
- tbSchoolTeacherDto.setTeacherCode(teacherInfo);
|
|
|
+ tbSchoolTeacherDto.setTeacherCode(teacherCodeList.get(0));
|
|
|
tbSchoolTeacherDto.setTeacherName(teacherInfo);
|
|
|
tbSchoolTeacherDtoList.add(tbSchoolTeacherDto);
|
|
|
}
|
|
@@ -579,6 +588,8 @@ public class BasicDatasourceController {
|
|
|
TBExamCourse tbExamCourse = needDisposeList.get(0);
|
|
|
String courseCode = tbExamCourse.getCourseCode();
|
|
|
String courseName = tbExamCourse.getCourseName();
|
|
|
+ // 开课学院id
|
|
|
+ Long teachCollegeId = tbExamCourse.getTeachCollegeId();
|
|
|
if (tbExamCourseService.verifyExamCourseCantRun(examId, schoolId, courseCode, courseName)) {
|
|
|
continue;
|
|
|
}
|
|
@@ -599,7 +610,7 @@ public class BasicDatasourceController {
|
|
|
tbExamStudent.setStudentCode(studentCode);
|
|
|
tbExamStudent.setCourseCode(courseCode);
|
|
|
tbExamStudent.setCourseName(courseName);
|
|
|
- tbExamStudent.setTeachCollegeId(0L);
|
|
|
+ tbExamStudent.setTeachCollegeId(teachCollegeId);
|
|
|
tbExamStudent.setInspectCollegeId(tbSchoolCollege.getId());
|
|
|
tbExamStudent.setClazzId(tbSchoolClazz.getId());
|
|
|
tbExamStudent.setMajorId(0L);
|
|
@@ -842,9 +853,12 @@ public class BasicDatasourceController {
|
|
|
@RequestMapping(value = "/course/create", method = RequestMethod.POST)
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
|
|
|
- public Result courseCreate(@RequestParam Long schoolId, @RequestParam String examId, @RequestParam String courseCode,@RequestParam String courseName) {
|
|
|
+ public Result courseCreate(@RequestParam Long schoolId, @RequestParam String examId, @RequestParam String courseCode,@RequestParam String courseName,@RequestParam(required = false) String examinationCourseCode,@RequestParam(required = false) String teachCollegeName) {
|
|
|
+ if ((!SystemConstant.strNotNull(examinationCourseCode) && !SystemConstant.strNotNull(teachCollegeName)) || (SystemConstant.strNotNull(examinationCourseCode) && SystemConstant.strNotNull(teachCollegeName))){
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("参数异常 : 考务课程编号和课程授课学院不能全不传或全传");
|
|
|
+ }
|
|
|
basicCourseService.createCourse(schoolId,courseCode,courseName);
|
|
|
- tbExamCourseService.createCourse(schoolId,SystemConstant.convertIdToLong(examId),courseCode,courseName);
|
|
|
+ tbExamCourseService.createCourse(schoolId,SystemConstant.convertIdToLong(examId),courseCode,courseName,examinationCourseCode,teachCollegeName);
|
|
|
|
|
|
return ResultUtil.ok(Collections.singletonMap(SystemConstant.SUCCESS, true));
|
|
|
}
|
|
@@ -912,8 +926,37 @@ public class BasicDatasourceController {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ List<Map<String,Object>> tbExaminationRelationMapList = tbExaminationList.stream().flatMap(e -> {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("schoolId",e.getSchoolId());
|
|
|
+ map.put("examId",e.getExamId());
|
|
|
+ map.put("examinationCourseCode",e.getExaminationCourseCode());
|
|
|
+ map.put("courseName",e.getCourseName());
|
|
|
+ map.put("teachCollegeName",e.getTeachCollegeName());
|
|
|
+ map.put("teacherCode",e.getTeacherCode());
|
|
|
+ map.put("teacherName",e.getTeacherName());
|
|
|
+ return Stream.of(map);
|
|
|
+ }).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<TBExaminationRelation> tbExaminationRelationList = new ArrayList<>();
|
|
|
+ for (Map<String, Object> map : tbExaminationRelationMapList) {
|
|
|
+ TBExaminationRelation tbExaminationRelation = new TBExaminationRelation();
|
|
|
+ tbExaminationRelation.setId(SystemConstant.getDbUuid());
|
|
|
+ tbExaminationRelation.setSchoolId(SystemConstant.convertIdToLong(String.valueOf(map.get("schoolId"))));
|
|
|
+ tbExaminationRelation.setExamId(SystemConstant.convertIdToLong(String.valueOf(map.get("examId"))));
|
|
|
+ tbExaminationRelation.setExaminationCourseCode(String.valueOf(map.get("examinationCourseCode")));
|
|
|
+ tbExaminationRelation.setCourseName(String.valueOf(map.get("courseName")));
|
|
|
+ tbExaminationRelation.setTeachCollegeName(String.valueOf(map.get("teachCollegeName")));
|
|
|
+ tbExaminationRelation.setTeacherCode(String.valueOf(map.get("teacherCode")));
|
|
|
+ tbExaminationRelation.setTeacherName(String.valueOf(map.get("teacherName")));
|
|
|
+ tbExaminationRelationList.add(tbExaminationRelation);
|
|
|
+ }
|
|
|
+
|
|
|
tbExaminationService.remove(new QueryWrapper<TBExamination>().lambda().eq(TBExamination::getExamId,examId));
|
|
|
+ tbExaminationRelationService.remove(new QueryWrapper<TBExaminationRelation>().lambda().eq(TBExaminationRelation::getExamId,examId));
|
|
|
+
|
|
|
tbExaminationService.saveBatch(tbExaminationList);
|
|
|
+ tbExaminationRelationService.saveBatch(tbExaminationRelationList);
|
|
|
return ResultUtil.ok(Collections.singletonMap(SystemConstant.SUCCESS, true));
|
|
|
}
|
|
|
|