|
@@ -142,6 +142,7 @@ public class DataSyncServiceImpl implements DataSyncService {
|
|
|
int subjects = Integer.parseInt(String.valueOf(examSyncStudentTemps.stream().map(ExamSyncStudentTemp::getKch).filter(StringUtils::isNotBlank).distinct().count()));
|
|
|
int students = examSyncStudentTemps.size();
|
|
|
ExamSyncTotal examSyncTotal = new ExamSyncTotal(syncDate, schoolId, schoolName, semesterId, semesterName, examTypeId, examTypeName, colleges, subjects, students, txtFileMd5);
|
|
|
+ examSyncTotal.setId(examSyncTotalId);
|
|
|
examSyncTotalService.save(examSyncTotal);
|
|
|
// 生成excel文件
|
|
|
File excelFile = createExcel(schoolId, examSyncStudents);
|
|
@@ -198,7 +199,6 @@ public class DataSyncServiceImpl implements DataSyncService {
|
|
|
Map<String, String> mapSource = new HashMap<>();
|
|
|
mapSource.put("examId", String.valueOf(examId));
|
|
|
int totalCount = cloudMarkingUtil.getStudentCount(mapSource);
|
|
|
- log.info("云阅卷:考试成绩考生数量查询接口调用,返回数量:{}", totalCount);
|
|
|
List<CloudMarkingScore> cloudMarkingScoreList = new ArrayList<>();
|
|
|
if (totalCount > 0) {
|
|
|
int pageSize = SystemConstant.PAGE_SIZE;
|
|
@@ -224,13 +224,13 @@ public class DataSyncServiceImpl implements DataSyncService {
|
|
|
cloudMarkingScore.setClassName(m.getString("className"));
|
|
|
cloudMarkingScore.setTeacher(m.getString("teacher"));
|
|
|
cloudMarkingScore.setStatus(m.getInteger("status"));
|
|
|
- cloudMarkingScore.setSheetUrls(m.getString("sheetUrls"));
|
|
|
+// cloudMarkingScore.setSheetUrls(m.getString("sheetUrls"));
|
|
|
cloudMarkingScore.setTotalScore(m.getString("totalScore"));
|
|
|
cloudMarkingScore.setObjectiveScore(m.getString("objectiveScore"));
|
|
|
cloudMarkingScore.setSubjectiveScore(m.getString("subjectiveScore"));
|
|
|
- cloudMarkingScore.setObjectiveScoreDetail(m.getString("objectiveScoreDetail"));
|
|
|
- cloudMarkingScore.setSubjectiveScoreDetail(m.getString("subjectiveScoreDetail"));
|
|
|
- cloudMarkingScore.setMarkTags(m.getString("markTags"));
|
|
|
+// cloudMarkingScore.setObjectiveScoreDetail(m.getString("objectiveScoreDetail"));
|
|
|
+// cloudMarkingScore.setSubjectiveScoreDetail(m.getString("subjectiveScoreDetail"));
|
|
|
+// cloudMarkingScore.setMarkTags(m.getString("markTags"));
|
|
|
return cloudMarkingScore;
|
|
|
}).collect(Collectors.toList());
|
|
|
cloudMarkingScoreList.addAll(cloudMarkingScores);
|
|
@@ -295,23 +295,32 @@ public class DataSyncServiceImpl implements DataSyncService {
|
|
|
.eq(ExamSyncTotal::getDownloadStatus, true)
|
|
|
.orderByDesc(ExamSyncTotal::getSyncDate);
|
|
|
List<ExamSyncTotal> examSyncTotalList = examSyncTotalService.list(totalQueryWrapper);
|
|
|
- if (examSyncTotalList.isEmpty()) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("未找到考务数据汇总数据");
|
|
|
- }
|
|
|
- ExamSyncTotal examSyncTotal = examSyncTotalList.get(0);
|
|
|
- List<ExamSyncStudent> examSyncStudents = examSyncStudentService.listByExamSyncTotalId(examSyncTotal.getId());
|
|
|
List<CloudMarkingScoreForeign> cloudMarkingScoreForeigns = new ArrayList<>();
|
|
|
- for (CloudMarkingScore cloudMarkingScore : cloudMarkingScoreList) {
|
|
|
- Optional<ExamSyncStudent> optional = examSyncStudents.stream().filter(s -> s.getJxbmc().equals(cloudMarkingScore.getClassName()) && s.getKch().equals(cloudMarkingScore.getSubjectCode()) && s.getXh().equals(cloudMarkingScore.getStudentCode())).findFirst();
|
|
|
- if (!optional.isPresent()) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception(String.format("未匹配到教学班%s,课程号%s,学号%s的考务数据", cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getStudentCode()));
|
|
|
+ if (!examSyncTotalList.isEmpty()) {
|
|
|
+ ExamSyncTotal examSyncTotal = examSyncTotalList.get(0);
|
|
|
+ List<ExamSyncStudent> examSyncStudents = examSyncStudentService.listByExamSyncTotalId(examSyncTotal.getId());
|
|
|
+ for (CloudMarkingScore cloudMarkingScore : cloudMarkingScoreList) {
|
|
|
+ Optional<ExamSyncStudent> optional = examSyncStudents.stream().filter(s -> s.getJxbmc().equals(cloudMarkingScore.getClassName()) && s.getKch().equals(cloudMarkingScore.getSubjectCode()) && s.getXh().equals(cloudMarkingScore.getStudentCode())).findFirst();
|
|
|
+ if (!optional.isPresent()) {
|
|
|
+ cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, null, null, cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getSubjectName(), cloudMarkingScore.getStudentCode(), cloudMarkingScore.getTotalScore()));
|
|
|
+ } else {
|
|
|
+ ExamSyncStudent examSyncStudent = optional.get();
|
|
|
+ cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, examSyncStudent.getXnm(), examSyncStudent.getXqm(), examSyncStudent.getJxbId(), examSyncStudent.getKch(), examSyncStudent.getKcmc(), examSyncStudent.getXh(), cloudMarkingScore.getTotalScore()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (CloudMarkingScore cloudMarkingScore : cloudMarkingScoreList) {
|
|
|
+ cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, null, null, cloudMarkingScore.getClassName(), cloudMarkingScore.getSubjectCode(), cloudMarkingScore.getSubjectName(), cloudMarkingScore.getStudentCode(), cloudMarkingScore.getTotalScore()));
|
|
|
}
|
|
|
- ExamSyncStudent examSyncStudent = optional.get();
|
|
|
- cloudMarkingScoreForeigns.add(new CloudMarkingScoreForeign(schoolId, semesterId, examTypeId, examId, examSyncStudent.getXnm(), examSyncStudent.getXqm(), examSyncStudent.getJxbId(), examSyncStudent.getKch(), examSyncStudent.getKcmc(), examSyncStudent.getXh(), cloudMarkingScore.getTotalScore()));
|
|
|
}
|
|
|
|
|
|
// 删除全量数据
|
|
|
- cloudMarkingScoreForeignService.remove(new UpdateWrapper<>());
|
|
|
+ UpdateWrapper<CloudMarkingScoreForeign> updateWrapper = new UpdateWrapper<>();
|
|
|
+ updateWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, schoolId)
|
|
|
+ .eq(CloudMarkingScoreForeign::getSemesterId, semesterId)
|
|
|
+ .eq(CloudMarkingScoreForeign::getExamTypeId, examTypeId)
|
|
|
+ .eq(CloudMarkingScoreForeign::getExamId, examId);
|
|
|
+ cloudMarkingScoreForeignService.remove(updateWrapper);
|
|
|
|
|
|
List<CloudMarkingScoreForeign> foreignData = new ArrayList<>();
|
|
|
//1000条提交一次
|