|
@@ -10,9 +10,8 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.enums.CourseLevel;
|
|
import cn.com.qmth.examcloud.core.oe.admin.dao.enums.IsSuccess;
|
|
import cn.com.qmth.examcloud.core.oe.admin.dao.enums.IsSuccess;
|
|
import cn.com.qmth.examcloud.core.oe.admin.dao.enums.SelectType;
|
|
import cn.com.qmth.examcloud.core.oe.admin.dao.enums.SelectType;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.ExamRecordAlreadyAuditService;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.ExamRecordAlreadyAuditService;
|
|
|
|
+import cn.com.qmth.examcloud.core.oe.admin.service.ExportTaskService;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.IllegallyTypeService;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.IllegallyTypeService;
|
|
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditEntityConvert;
|
|
|
|
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditExcel;
|
|
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditInfo;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditInfo;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditQuery;
|
|
import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditQuery;
|
|
import cn.com.qmth.examcloud.support.cache.CacheHelper;
|
|
import cn.com.qmth.examcloud.support.cache.CacheHelper;
|
|
@@ -44,6 +43,9 @@ public class ExamRecordAlreadyAuditServiceImpl implements ExamRecordAlreadyAudit
|
|
@Autowired
|
|
@Autowired
|
|
private IllegallyTypeService illegallyTypeService;
|
|
private IllegallyTypeService illegallyTypeService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ExportTaskService exportTaskService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private JdbcTemplate jdbcTemplate;
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
@@ -80,24 +82,41 @@ public class ExamRecordAlreadyAuditServiceImpl implements ExamRecordAlreadyAudit
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public List<ExamAuditExcel> getExamRecordAlreadyAuditListForExport(ExamAuditQuery query, UserDataRule courseRule, UserDataRule orgRule) {
|
|
|
|
|
|
+ public List<ExamAuditInfo> getExamRecordAlreadyAuditListForExport(ExamAuditQuery query, UserDataRule courseRule, UserDataRule orgRule) {
|
|
Check.isNull(query, "请求参数不能为空!");
|
|
Check.isNull(query, "请求参数不能为空!");
|
|
Check.isNull(query.getExamId(), "请先选择考试!");
|
|
Check.isNull(query.getExamId(), "请先选择考试!");
|
|
- query.setSelectType(SelectType.EXPORT);
|
|
|
|
|
|
|
|
if (courseRule.assertEmptyQueryResult() || orgRule.assertEmptyQueryResult()) {
|
|
if (courseRule.assertEmptyQueryResult() || orgRule.assertEmptyQueryResult()) {
|
|
return new ArrayList<>();
|
|
return new ArrayList<>();
|
|
}
|
|
}
|
|
|
|
|
|
- // 仅导出结果
|
|
|
|
- String querySql = this.queryExamRecordAlreadyAuditListSql(query, false, courseRule, orgRule);
|
|
|
|
- log.debug(querySql);
|
|
|
|
- List<ExamAuditInfo> list = jdbcTemplate.query(querySql, new BeanPropertyRowMapper(ExamAuditInfo.class));
|
|
|
|
|
|
+ query.setSelectType(SelectType.EXPORT);
|
|
|
|
+ query.setPageNo(1);
|
|
|
|
+ query.setPageSize(1000);
|
|
|
|
+
|
|
|
|
+ List<ExamAuditInfo> result = new ArrayList<>();
|
|
|
|
+ while (true) {
|
|
|
|
+ // 检查是否终止导出
|
|
|
|
+ exportTaskService.checkStopExportTaskById(query.getTaskId());
|
|
|
|
+
|
|
|
|
+ int offset = (query.getPageNo() - 1) * query.getPageSize();
|
|
|
|
+ String querySql = this.queryExamRecordAlreadyAuditListSql(query, false, courseRule, orgRule);
|
|
|
|
+ String pageSql = querySql + " limit " + offset + "," + query.getPageSize();
|
|
|
|
+ log.warn("导出监考已审:{}", pageSql);
|
|
|
|
+
|
|
|
|
+ List<ExamAuditInfo> list = jdbcTemplate.query(pageSql, new BeanPropertyRowMapper(ExamAuditInfo.class));
|
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ result.addAll(list);
|
|
|
|
+ query.setPageNo(query.getPageNo() + 1);
|
|
|
|
+ }
|
|
|
|
|
|
// 填充其它信息
|
|
// 填充其它信息
|
|
- this.fillOtherInfo(list, query.getExamId());
|
|
|
|
|
|
+ this.fillOtherInfo(result, query.getExamId());
|
|
|
|
|
|
- return ExamAuditEntityConvert.ofExcel(list);
|
|
|
|
|
|
+ return result;
|
|
}
|
|
}
|
|
|
|
|
|
private void fillOtherInfo(List<ExamAuditInfo> list, Long examId) {
|
|
private void fillOtherInfo(List<ExamAuditInfo> list, Long examId) {
|
|
@@ -294,8 +313,9 @@ public class ExamRecordAlreadyAuditServiceImpl implements ExamRecordAlreadyAudit
|
|
if (!isCount) {
|
|
if (!isCount) {
|
|
sql.append(" group by rd.id");
|
|
sql.append(" group by rd.id");
|
|
|
|
|
|
- if (SelectType.EXPORT != query.getSelectType()) {
|
|
|
|
- // sql.append(" order by rd.id desc");
|
|
|
|
|
|
+ if (SelectType.EXPORT == query.getSelectType()) {
|
|
|
|
+ sql.append(" order by rd.id desc");
|
|
|
|
+ } else {
|
|
sql.append(" order by rd.update_time desc");
|
|
sql.append(" order by rd.update_time desc");
|
|
}
|
|
}
|
|
}
|
|
}
|