|
@@ -118,6 +118,112 @@ public class ExamAuditServiceImpl implements ExamAuditService {
|
|
Check.isNull(query.getExamId(), "请先选择考试批次!");
|
|
Check.isNull(query.getExamId(), "请先选择考试批次!");
|
|
//封装查询条件
|
|
//封装查询条件
|
|
Pageable pageable = SpecUtils.buildPageable(query.getPageNo(), query.getPageSize());
|
|
Pageable pageable = SpecUtils.buildPageable(query.getPageNo(), query.getPageSize());
|
|
|
|
+
|
|
|
|
+ final String columns = ExamAuditMapper.defaultColumns();
|
|
|
|
+ SqlWrapper wrapper = getSqlWrapper(query);
|
|
|
|
+
|
|
|
|
+ long totalSize = 0;
|
|
|
|
+ //查询总记录数
|
|
|
|
+ if (query.getSelectType() == null || query.getSelectType() != SelectType.EXPORT) {
|
|
|
|
+ final String count = "count(0)";
|
|
|
|
+ final String leftJoin = "LEFT JOIN ec_oe_exam_process_record AS process ON record.id = process.exam_record_data_id";
|
|
|
|
+ String countSql = wrapper.build().replace(columns, count).replace(leftJoin," ");
|
|
|
|
+ Query countQuery = entityManager.createNativeQuery(countSql);
|
|
|
|
+ BigInteger element = (BigInteger) countQuery.getSingleResult();
|
|
|
|
+ totalSize = element.longValue();
|
|
|
|
+ if (totalSize == 0) {
|
|
|
|
+ return new PageImpl<>(Lists.newArrayList(), pageable, totalSize);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ wrapper.groupBy("record.id ");
|
|
|
|
+ //查询分页记录
|
|
|
|
+ wrapper.orderBy("record.update_time", true);//需求调整20200816:按审核时间排序
|
|
|
|
+ Query dataQuery = entityManager.createNativeQuery(wrapper.build());
|
|
|
|
+
|
|
|
|
+// dataQuery.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(HashMap.class));
|
|
|
|
+ dataQuery.unwrap(NativeQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
|
|
|
|
+ if (query.getSelectType() == null || query.getSelectType() != SelectType.EXPORT) {
|
|
|
|
+ dataQuery.setFirstResult((int) pageable.getOffset());
|
|
|
|
+ dataQuery.setMaxResults(pageable.getPageSize());
|
|
|
|
+ }
|
|
|
|
+ List resultList = dataQuery.getResultList();
|
|
|
|
+
|
|
|
|
+ List<ExamAuditInfo> list = ExamAuditEntityConvert.of(resultList);
|
|
|
|
+
|
|
|
|
+ for (ExamAuditInfo examAuditInfo : list) {
|
|
|
|
+ OrgCacheBean orgBean = gainBaseDataService.getOrgBean(examAuditInfo.getOrgId());
|
|
|
|
+ examAuditInfo.setOrgName(orgBean.getName());
|
|
|
|
+
|
|
|
|
+ //将违纪类型重赋值为文本,万恶的历史原因,不该这么做的。TODO 待优化
|
|
|
|
+ if (StringUtils.isNotEmpty(examAuditInfo.getDisciplineType())) {
|
|
|
|
+ IllegallyTypeEntity illegallyType = illegallyTypeService.getIllegallyType(orgBean.getRootId(), examAuditInfo.getDisciplineType());
|
|
|
|
+ examAuditInfo.setDisciplineType(illegallyType.getName());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ CourseCacheBean courseBean = ExamCacheTransferHelper.getCachedCourse(examAuditInfo.getCourseId());
|
|
|
|
+ examAuditInfo.setCourseName(courseBean.getName());
|
|
|
|
+ examAuditInfo.setCourseCode(courseBean.getCode());
|
|
|
|
+ examAuditInfo.setCourseLevel(CourseLevel.getCourseLevel(courseBean.getLevel()).getTitle());
|
|
|
|
+
|
|
|
|
+ //考试名称
|
|
|
|
+ ExamSettingsCacheBean examBean = ExamCacheTransferHelper.getDefaultCachedExam(query.getExamId());
|
|
|
|
+ examAuditInfo.setExamName(examBean.getName());
|
|
|
|
+
|
|
|
|
+ //客观分
|
|
|
|
+ ExamScoreEntity examScore = examScoreRepo.findByExamRecordDataId(examAuditInfo.getExamRecordDataId());
|
|
|
|
+ examAuditInfo.setObjectiveScore(String.valueOf(examScore.getObjectiveScore()));
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return new PageImpl<ExamAuditInfo>(list, pageable, totalSize);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<ExamAuditInfo> getExamAudit(ExamAuditQuery query) {
|
|
|
|
+ Check.isNull(query, "查询参数不能为空!");
|
|
|
|
+ Check.isNull(query.getExamId(), "请先选择考试批次!");
|
|
|
|
+
|
|
|
|
+ SqlWrapper wrapper = getSqlWrapper(query);
|
|
|
|
+
|
|
|
|
+ wrapper.groupBy("record.id ");
|
|
|
|
+ //查询分页记录
|
|
|
|
+ wrapper.orderBy("record.update_time", true);//需求调整20200816:按审核时间排序
|
|
|
|
+ Query dataQuery = entityManager.createNativeQuery(wrapper.build());
|
|
|
|
+
|
|
|
|
+ List resultList = dataQuery.getResultList();
|
|
|
|
+
|
|
|
|
+ List<ExamAuditInfo> list = ExamAuditEntityConvert.of(resultList);
|
|
|
|
+
|
|
|
|
+ for (ExamAuditInfo examAuditInfo : list) {
|
|
|
|
+ OrgCacheBean orgBean = gainBaseDataService.getOrgBean(examAuditInfo.getOrgId());
|
|
|
|
+ examAuditInfo.setOrgName(orgBean.getName());
|
|
|
|
+
|
|
|
|
+ //将违纪类型重赋值为文本,万恶的历史原因,不该这么做的。TODO 待优化
|
|
|
|
+ if (StringUtils.isNotEmpty(examAuditInfo.getDisciplineType())) {
|
|
|
|
+ IllegallyTypeEntity illegallyType = illegallyTypeService.getIllegallyType(orgBean.getRootId(), examAuditInfo.getDisciplineType());
|
|
|
|
+ examAuditInfo.setDisciplineType(illegallyType.getName());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ CourseCacheBean courseBean = ExamCacheTransferHelper.getCachedCourse(examAuditInfo.getCourseId());
|
|
|
|
+ examAuditInfo.setCourseName(courseBean.getName());
|
|
|
|
+ examAuditInfo.setCourseCode(courseBean.getCode());
|
|
|
|
+ examAuditInfo.setCourseLevel(CourseLevel.getCourseLevel(courseBean.getLevel()).getTitle());
|
|
|
|
+
|
|
|
|
+ //考试名称
|
|
|
|
+ ExamSettingsCacheBean examBean = ExamCacheTransferHelper.getDefaultCachedExam(query.getExamId());
|
|
|
|
+ examAuditInfo.setExamName(examBean.getName());
|
|
|
|
+
|
|
|
|
+ //客观分
|
|
|
|
+ ExamScoreEntity examScore = examScoreRepo.findByExamRecordDataId(examAuditInfo.getExamRecordDataId());
|
|
|
|
+ examAuditInfo.setObjectiveScore(String.valueOf(examScore.getObjectiveScore()));
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private SqlWrapper getSqlWrapper(ExamAuditQuery query){
|
|
final String columns = ExamAuditMapper.defaultColumns();
|
|
final String columns = ExamAuditMapper.defaultColumns();
|
|
SqlWrapper wrapper = new SqlWrapper()
|
|
SqlWrapper wrapper = new SqlWrapper()
|
|
.select(columns).from("ec_oe_exam_audit").as("audit")
|
|
.select(columns).from("ec_oe_exam_audit").as("audit")
|
|
@@ -177,62 +283,7 @@ public class ExamAuditServiceImpl implements ExamAuditService {
|
|
wrapper.and().gte("audit.update_time", query.getAuditStartTime());
|
|
wrapper.and().gte("audit.update_time", query.getAuditStartTime());
|
|
wrapper.and().lte("audit.update_time", query.getAuditEndTime());
|
|
wrapper.and().lte("audit.update_time", query.getAuditEndTime());
|
|
}
|
|
}
|
|
-
|
|
|
|
- long totalSize = 0;
|
|
|
|
- //查询总记录数
|
|
|
|
- if (query.getSelectType() == null || query.getSelectType() != SelectType.EXPORT) {
|
|
|
|
- final String count = "count(0)";
|
|
|
|
- final String leftJoin = "LEFT JOIN ec_oe_exam_process_record AS process ON record.id = process.exam_record_data_id";
|
|
|
|
- String countSql = wrapper.build().replace(columns, count).replace(leftJoin," ");
|
|
|
|
- Query countQuery = entityManager.createNativeQuery(countSql);
|
|
|
|
- BigInteger element = (BigInteger) countQuery.getSingleResult();
|
|
|
|
- totalSize = element.longValue();
|
|
|
|
- if (totalSize == 0) {
|
|
|
|
- return new PageImpl<>(Lists.newArrayList(), pageable, totalSize);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- wrapper.groupBy("record.id ");
|
|
|
|
- //查询分页记录
|
|
|
|
- wrapper.orderBy("record.update_time", true);//需求调整20200816:按审核时间排序
|
|
|
|
- Query dataQuery = entityManager.createNativeQuery(wrapper.build());
|
|
|
|
-
|
|
|
|
-// dataQuery.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(HashMap.class));
|
|
|
|
- dataQuery.unwrap(NativeQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
|
|
|
|
- if (query.getSelectType() == null || query.getSelectType() != SelectType.EXPORT) {
|
|
|
|
- dataQuery.setFirstResult((int) pageable.getOffset());
|
|
|
|
- dataQuery.setMaxResults(pageable.getPageSize());
|
|
|
|
- }
|
|
|
|
- List resultList = dataQuery.getResultList();
|
|
|
|
-
|
|
|
|
- List<ExamAuditInfo> list = ExamAuditEntityConvert.of(resultList);
|
|
|
|
-
|
|
|
|
- for (ExamAuditInfo examAuditInfo : list) {
|
|
|
|
- OrgCacheBean orgBean = gainBaseDataService.getOrgBean(examAuditInfo.getOrgId());
|
|
|
|
- examAuditInfo.setOrgName(orgBean.getName());
|
|
|
|
-
|
|
|
|
- //将违纪类型重赋值为文本,万恶的历史原因,不该这么做的。TODO 待优化
|
|
|
|
- if (StringUtils.isNotEmpty(examAuditInfo.getDisciplineType())) {
|
|
|
|
- IllegallyTypeEntity illegallyType = illegallyTypeService.getIllegallyType(orgBean.getRootId(), examAuditInfo.getDisciplineType());
|
|
|
|
- examAuditInfo.setDisciplineType(illegallyType.getName());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- CourseCacheBean courseBean = ExamCacheTransferHelper.getCachedCourse(examAuditInfo.getCourseId());
|
|
|
|
- examAuditInfo.setCourseName(courseBean.getName());
|
|
|
|
- examAuditInfo.setCourseCode(courseBean.getCode());
|
|
|
|
- examAuditInfo.setCourseLevel(CourseLevel.getCourseLevel(courseBean.getLevel()).getTitle());
|
|
|
|
-
|
|
|
|
- //考试名称
|
|
|
|
- ExamSettingsCacheBean examBean = ExamCacheTransferHelper.getDefaultCachedExam(query.getExamId());
|
|
|
|
- examAuditInfo.setExamName(examBean.getName());
|
|
|
|
-
|
|
|
|
- //客观分
|
|
|
|
- ExamScoreEntity examScore = examScoreRepo.findByExamRecordDataId(examAuditInfo.getExamRecordDataId());
|
|
|
|
- examAuditInfo.setObjectiveScore(String.valueOf(examScore.getObjectiveScore()));
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- return new PageImpl<ExamAuditInfo>(list, pageable, totalSize);
|
|
|
|
|
|
+ return wrapper;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|