|
@@ -105,19 +105,13 @@ public class WhuDataSyncServiceImpl implements WhuDataSyncService {
|
|
|
// 调用接口获取数据
|
|
|
List<ExamSyncStudentTemp> examSyncStudentTemps = whuUtils.getKwData(schoolId, token);
|
|
|
|
|
|
- String txtFileMd5 = null;
|
|
|
-
|
|
|
long syncDate = System.currentTimeMillis();
|
|
|
|
|
|
SyncLog syncLog = new SyncLog();
|
|
|
syncLog.setSyncDate(DateUtil.formatDateTime(new Date(syncDate)));
|
|
|
|
|
|
- if(StringUtils.isBlank(examSyncTotal.getDataMd5())){
|
|
|
- txtFileMd5 = md5DataText(schoolId, examSyncStudentTemps);
|
|
|
- }
|
|
|
-
|
|
|
// 校验数据是否变动,若变动,需要新增
|
|
|
- if (StringUtils.isBlank(examSyncTotal.getDataMd5()) || examSyncStudentTemps.size() != examSyncTotal.getStudents() || !examSyncTotal.getDataMd5().equals(txtFileMd5 = md5DataText(schoolId, examSyncStudentTemps))) {
|
|
|
+ if (canAddTotal(examSyncTotal, examSyncStudentTemps)){
|
|
|
List<ExamSyncStudent> examSyncStudentList = examSyncStudentService.listByExamSyncTotalId(examSyncTotal);
|
|
|
|
|
|
Long examSyncTotalId = examSyncTotal.getId();
|
|
@@ -170,7 +164,6 @@ public class WhuDataSyncServiceImpl implements WhuDataSyncService {
|
|
|
int students = examSyncStudents.size();
|
|
|
examSyncTotal.setStudents(students);
|
|
|
|
|
|
- examSyncTotal.setDataMd5(txtFileMd5);
|
|
|
// 生成excel文件
|
|
|
File excelFile = createExcel(examSyncTotal, examSyncStudents);
|
|
|
|
|
@@ -183,7 +176,7 @@ public class WhuDataSyncServiceImpl implements WhuDataSyncService {
|
|
|
|
|
|
// 下载过学校+学期+考试类型 文件的实施人员发送短信
|
|
|
basicMessageService.sendTeachDataChangeNotice(schoolId, semesterId, examTypeId);
|
|
|
- } else {
|
|
|
+ } else{
|
|
|
syncLog.setLogDetail("数据无变动");
|
|
|
syncLogList.add(syncLog);
|
|
|
examSyncTotal.setSyncLog(JSON.toJSONString(syncLogList));
|
|
@@ -218,6 +211,23 @@ public class WhuDataSyncServiceImpl implements WhuDataSyncService {
|
|
|
return s1;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 判断考务数据是否有变动
|
|
|
+ *
|
|
|
+ * @param examSyncTotal 生成汇总数据
|
|
|
+ * @param examSyncStudentTemps 同步考生数据
|
|
|
+ */
|
|
|
+ private boolean canAddTotal(ExamSyncTotal examSyncTotal, List<ExamSyncStudentTemp> examSyncStudentTemps) {
|
|
|
+ String txtFileMd5 = md5DataText(examSyncTotal.getSchoolId(), examSyncStudentTemps);
|
|
|
+ // 首次新增或者数据有变动
|
|
|
+ if (StringUtils.isBlank(examSyncTotal.getDataMd5())
|
|
|
+ || !txtFileMd5.equals(examSyncTotal.getDataMd5())) {
|
|
|
+ examSyncTotal.setDataMd5(txtFileMd5);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
private boolean compareStudent(ExamSyncStudent s1, ExamSyncStudentTemp s2) {
|
|
|
String s1String = spliceParam(s1.getJxbId(), s1.getJxbmc(), s1.getKcmc(), s1.getJgh(), s1.getXm(), s1.getKkbm(), s1.getXf(), s1.getXsxm(), s1.getJgmc(), s1.getZymc(), s1.getCxbj(), s1.getNjdmId(), s1.getZwh(), s1.getCdmc(), s1.getKsbz());
|
|
|
String s2String = spliceParam(s2.getJxbId(), s2.getJxbmc(), s2.getKcmc(), s2.getJgh(), s2.getXm(), s2.getKkbm(), s2.getXf(), s2.getXsxm(), s2.getJgmc(), s2.getZymc(), s2.getCxbj(), s2.getNjdmId(), s2.getZwh(), s2.getCdmc(), s2.getKsbz());
|