|
@@ -21,6 +21,7 @@ import com.qmth.teachcloud.mark.dto.mark.score.StudentObjectiveAnswerDto;
|
|
import com.qmth.teachcloud.mark.dto.mark.score.StudentPaperDetailDto;
|
|
import com.qmth.teachcloud.mark.dto.mark.score.StudentPaperDetailDto;
|
|
import com.qmth.teachcloud.mark.entity.*;
|
|
import com.qmth.teachcloud.mark.entity.*;
|
|
import com.qmth.teachcloud.mark.enums.CardSource;
|
|
import com.qmth.teachcloud.mark.enums.CardSource;
|
|
|
|
+import org.apache.commons.codec.digest.DigestUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
@@ -66,7 +67,7 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
|
|
|
|
|
|
// log.info("开始处理3.4.3历史数据,数据归档;时间:" + DateFormatUtils.format(new Date(), DATE_PATTERN));
|
|
// log.info("开始处理3.4.3历史数据,数据归档;时间:" + DateFormatUtils.format(new Date(), DATE_PATTERN));
|
|
// 执行历史数据归档
|
|
// 执行历史数据归档
|
|
-// this.execDataArchive(jdbcTemplate);
|
|
|
|
|
|
+ this.execDataArchive(jdbcTemplate);
|
|
// log.info("结束处理3.4.3历史数据,数据归档;时间:" + DateFormatUtils.format(new Date(), DATE_PATTERN));
|
|
// log.info("结束处理3.4.3历史数据,数据归档;时间:" + DateFormatUtils.format(new Date(), DATE_PATTERN));
|
|
|
|
|
|
// 归档后中间数据重命名,创建新表
|
|
// 归档后中间数据重命名,创建新表
|
|
@@ -109,7 +110,7 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
|
|
markArchiveStudent.setSheetUrls(buildSheetUrls(jdbcTemplate, markStudent));
|
|
markArchiveStudent.setSheetUrls(buildSheetUrls(jdbcTemplate, markStudent));
|
|
markArchiveStudent.setSubjectiveQuestions(buildSubjectiveQuestions(jdbcTemplate, markStudent, markQuestionList, sysUserMap));
|
|
markArchiveStudent.setSubjectiveQuestions(buildSubjectiveQuestions(jdbcTemplate, markStudent, markQuestionList, sysUserMap));
|
|
markArchiveStudent.setObjectiveQuestions(buildObjectiveQuestions(objectiveQuestionMap, markStudent));
|
|
markArchiveStudent.setObjectiveQuestions(buildObjectiveQuestions(objectiveQuestionMap, markStudent));
|
|
- markArchiveStudent.setCardContent(getCardContent(jdbcTemplate, markStudent, basicExam));
|
|
|
|
|
|
+ markArchiveStudent.setArchiveCardId(getArchiveCardId(jdbcTemplate, markStudent, basicExam));
|
|
markArchiveStudent.setCreateTime(System.currentTimeMillis());
|
|
markArchiveStudent.setCreateTime(System.currentTimeMillis());
|
|
markArchiveStudents.add(markArchiveStudent);
|
|
markArchiveStudents.add(markArchiveStudent);
|
|
}
|
|
}
|
|
@@ -134,6 +135,19 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
|
|
/**
|
|
/**
|
|
* 电子卡格式信息
|
|
* 电子卡格式信息
|
|
*/
|
|
*/
|
|
|
|
+ private String getArchiveCardId(JdbcTemplate jdbcTemplate, MarkStudent markStudent, BasicExam basicExam) {
|
|
|
|
+ String cardContent = getCardContent(jdbcTemplate, markStudent, basicExam);
|
|
|
|
+ if (StringUtils.isBlank(cardContent)) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ String md5 = this.md5String(cardContent);
|
|
|
|
+ int count = this.getMarkArchiveStudentCard(jdbcTemplate, md5);
|
|
|
|
+ if (count == 0) {
|
|
|
|
+ this.insertMarkArchiveStudentCard(jdbcTemplate, md5, cardContent);
|
|
|
|
+ }
|
|
|
|
+ return md5;
|
|
|
|
+ }
|
|
|
|
+
|
|
private String getCardContent(JdbcTemplate jdbcTemplate, MarkStudent markStudent, BasicExam basicExam) {
|
|
private String getCardContent(JdbcTemplate jdbcTemplate, MarkStudent markStudent, BasicExam basicExam) {
|
|
if (markStudent.getCardNumber() != null) {
|
|
if (markStudent.getCardNumber() != null) {
|
|
ScanAnswerCard scanAnswerCard = this.getScanAnswerCard(jdbcTemplate, markStudent.getExamId(), markStudent.getCardNumber());
|
|
ScanAnswerCard scanAnswerCard = this.getScanAnswerCard(jdbcTemplate, markStudent.getExamId(), markStudent.getCardNumber());
|
|
@@ -171,6 +185,13 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private String md5String(String content) {
|
|
|
|
+ if (StringUtils.isBlank(content)) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ return DigestUtils.md5Hex(content);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 客观题信息
|
|
* 客观题信息
|
|
*/
|
|
*/
|
|
@@ -355,6 +376,17 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
|
|
return t;
|
|
return t;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private <T> T getCount(JdbcTemplate jdbcTemplate, String sql, Class<T> tClass) {
|
|
|
|
+ //将查询的语句封装到List集合中,集合中存储每一个员工实体
|
|
|
|
+ T t = null;
|
|
|
|
+ try {
|
|
|
|
+ t = jdbcTemplate.queryForObject(sql, tClass);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("查询失败:" + e.getMessage());
|
|
|
|
+ }
|
|
|
|
+ return t;
|
|
|
|
+ }
|
|
|
|
+
|
|
private <T> List<T> listData(JdbcTemplate jdbcTemplate, String sql, Class<T> tClass) {
|
|
private <T> List<T> listData(JdbcTemplate jdbcTemplate, String sql, Class<T> tClass) {
|
|
//将查询的语句封装到List集合中,集合中存储每一个员工实体
|
|
//将查询的语句封装到List集合中,集合中存储每一个员工实体
|
|
List<T> list = new ArrayList<>();
|
|
List<T> list = new ArrayList<>();
|
|
@@ -566,18 +598,28 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
|
|
return this.getOne(jdbcTemplate, sql, ExamCardModelFour.class);
|
|
return this.getOne(jdbcTemplate, sql, ExamCardModelFour.class);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private int getMarkArchiveStudentCard(JdbcTemplate jdbcTemplate, String id) {
|
|
|
|
+ String sql = "select count(1) from mark_archive_student_card where id = '" + id + "'";
|
|
|
|
+ return this.getCount(jdbcTemplate, sql, Integer.class);
|
|
|
|
+ }
|
|
|
|
+
|
|
private int updateMarkPaperArchive(JdbcTemplate jdbcTemplate, Long id) {
|
|
private int updateMarkPaperArchive(JdbcTemplate jdbcTemplate, Long id) {
|
|
String sql = "update mark_paper set archive = 1 where id = " + id;
|
|
String sql = "update mark_paper set archive = 1 where id = " + id;
|
|
return this.update(jdbcTemplate, sql);
|
|
return this.update(jdbcTemplate, sql);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private int insertMarkArchiveStudentCard(JdbcTemplate jdbcTemplate, String id, String cardContent) {
|
|
|
|
+ String sql = "insert into mark_archive_student_card values ('" + id + "','" + cardContent + "')";
|
|
|
|
+ return this.update(jdbcTemplate, sql);
|
|
|
|
+ }
|
|
|
|
+
|
|
private int deleteMarkArchiveStudentByExamIdAndPaperNumber(JdbcTemplate jdbcTemplate, Long examId, String paperNumber) {
|
|
private int deleteMarkArchiveStudentByExamIdAndPaperNumber(JdbcTemplate jdbcTemplate, Long examId, String paperNumber) {
|
|
String sql = "delete from mark_archive_student where exam_id = " + examId + " and paper_number = '" + paperNumber + "'";
|
|
String sql = "delete from mark_archive_student where exam_id = " + examId + " and paper_number = '" + paperNumber + "'";
|
|
return this.update(jdbcTemplate, sql);
|
|
return this.update(jdbcTemplate, sql);
|
|
}
|
|
}
|
|
|
|
|
|
private long batchInsert(JdbcTemplate jdbcTemplate, List<MarkArchiveStudent> markArchiveStudents) {
|
|
private long batchInsert(JdbcTemplate jdbcTemplate, List<MarkArchiveStudent> markArchiveStudents) {
|
|
- String sql = "insert into mark_archive_student(student_id, exam_id, paper_number, student_code, basic_student_id, sheet_urls, subjective_questions, objective_questions, card_content, create_time) values (?,?,?,?,?,?,?,?,?,?)";
|
|
|
|
|
|
+ String sql = "insert into mark_archive_student(student_id, exam_id, paper_number, student_code, basic_student_id, sheet_urls, subjective_questions, objective_questions, archive_card_id, create_time) values (?,?,?,?,?,?,?,?,?,?)";
|
|
int[] ints = jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
|
|
int[] ints = jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
|
|
@Override
|
|
@Override
|
|
public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
|
|
public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
|
|
@@ -623,8 +665,8 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
|
|
} else {
|
|
} else {
|
|
preparedStatement.setNull(8, Types.VARCHAR);
|
|
preparedStatement.setNull(8, Types.VARCHAR);
|
|
}
|
|
}
|
|
- if (StringUtils.isNotBlank(mas.getCardContent())) {
|
|
|
|
- preparedStatement.setString(9, mas.getCardContent());
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(mas.getArchiveCardId())) {
|
|
|
|
+ preparedStatement.setString(9, mas.getArchiveCardId());
|
|
} else {
|
|
} else {
|
|
preparedStatement.setNull(9, Types.VARCHAR);
|
|
preparedStatement.setNull(9, Types.VARCHAR);
|
|
}
|
|
}
|