|
@@ -1,10 +1,15 @@
|
|
package cn.com.qmth.stmms.biz.report.service.impl;
|
|
package cn.com.qmth.stmms.biz.report.service.impl;
|
|
|
|
|
|
-import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
|
|
-import cn.com.qmth.stmms.biz.report.dao.ReportSubjectQuestionDao;
|
|
|
|
-import cn.com.qmth.stmms.biz.report.model.ReportSubjectQuestion;
|
|
|
|
-import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
|
|
|
|
-import cn.com.qmth.stmms.biz.report.service.ReportSubjectQuestionService;
|
|
|
|
|
|
+import java.util.Collections;
|
|
|
|
+import java.util.Comparator;
|
|
|
|
+import java.util.LinkedList;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+import javax.persistence.criteria.CriteriaBuilder;
|
|
|
|
+import javax.persistence.criteria.CriteriaQuery;
|
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
|
+import javax.persistence.criteria.Root;
|
|
|
|
+
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
@@ -14,12 +19,11 @@ import org.springframework.data.jpa.domain.Specification;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import javax.persistence.criteria.CriteriaBuilder;
|
|
|
|
-import javax.persistence.criteria.CriteriaQuery;
|
|
|
|
-import javax.persistence.criteria.Predicate;
|
|
|
|
-import javax.persistence.criteria.Root;
|
|
|
|
-import java.util.LinkedList;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import cn.com.qmth.stmms.biz.common.BaseQueryService;
|
|
|
|
+import cn.com.qmth.stmms.biz.report.dao.ReportSubjectQuestionDao;
|
|
|
|
+import cn.com.qmth.stmms.biz.report.model.ReportSubjectQuestion;
|
|
|
|
+import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
|
|
|
|
+import cn.com.qmth.stmms.biz.report.service.ReportSubjectQuestionService;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 客、主观题分析 service 实现
|
|
* 客、主观题分析 service 实现
|
|
@@ -70,30 +74,30 @@ public class ReportSubjectQuestionServiceImpl extends BaseQueryService<ReportSub
|
|
if (query.getMainNumber() != null) {
|
|
if (query.getMainNumber() != null) {
|
|
predicates.add(cb.equal(root.get("mainNumber"), query.getMainNumber()));
|
|
predicates.add(cb.equal(root.get("mainNumber"), query.getMainNumber()));
|
|
}
|
|
}
|
|
- if (query.getSubNumber() != null) {
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(query.getSubNumber())) {
|
|
predicates.add(cb.equal(root.get("subNumber"), query.getSubNumber()));
|
|
predicates.add(cb.equal(root.get("subNumber"), query.getSubNumber()));
|
|
}
|
|
}
|
|
if (query.getObjective() != null) {
|
|
if (query.getObjective() != null) {
|
|
predicates.add(cb.equal(root.get("objective"), query.getObjective()));
|
|
predicates.add(cb.equal(root.get("objective"), query.getObjective()));
|
|
}
|
|
}
|
|
- if (query.getObjective() != null && query.getObjective() && StringUtils
|
|
|
|
- .isNotBlank(query.getPaperType())) {
|
|
|
|
|
|
+ if (query.getObjective() != null && query.getObjective()
|
|
|
|
+ && StringUtils.isNotBlank(query.getPaperType())) {
|
|
predicates.add(cb.equal(root.get("paperType"), query.getPaperType()));
|
|
predicates.add(cb.equal(root.get("paperType"), query.getPaperType()));
|
|
}
|
|
}
|
|
if (query.getNullPaperType() != null && query.getNullPaperType().booleanValue()) {
|
|
if (query.getNullPaperType() != null && query.getNullPaperType().booleanValue()) {
|
|
predicates.add(cb.isNull(root.get("paperType")));
|
|
predicates.add(cb.isNull(root.get("paperType")));
|
|
}
|
|
}
|
|
- return predicates.isEmpty() ?
|
|
|
|
- cb.conjunction() :
|
|
|
|
- cb.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
|
|
|
+ return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates
|
|
|
|
+ .toArray(new Predicate[predicates.size()]));
|
|
}
|
|
}
|
|
}, query);
|
|
}, query);
|
|
- return result.getContent();
|
|
|
|
|
|
+ List<ReportSubjectQuestion> list = result.getContent();
|
|
|
|
+ return list;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public ReportSubjectQuestion findOne(Integer examId, String subjectCode, boolean objective, String paperType,
|
|
public ReportSubjectQuestion findOne(Integer examId, String subjectCode, boolean objective, String paperType,
|
|
- Integer mainNumber, Integer subNumber) {
|
|
|
|
|
|
+ Integer mainNumber, String subNumber) {
|
|
ReportSubjectQuery query = new ReportSubjectQuery();
|
|
ReportSubjectQuery query = new ReportSubjectQuery();
|
|
query.setExamId(examId);
|
|
query.setExamId(examId);
|
|
query.setSubjectCode(subjectCode);
|
|
query.setSubjectCode(subjectCode);
|
|
@@ -108,9 +112,20 @@ public class ReportSubjectQuestionServiceImpl extends BaseQueryService<ReportSub
|
|
@Override
|
|
@Override
|
|
public List<ReportSubjectQuestion> findByExamIdAndSubjectCodeAndObjectiveAndPaperType(Integer examId,
|
|
public List<ReportSubjectQuestion> findByExamIdAndSubjectCodeAndObjectiveAndPaperType(Integer examId,
|
|
String subjectCode, boolean objective, String paperType) {
|
|
String subjectCode, boolean objective, String paperType) {
|
|
- return reportSubjectQuestionDao
|
|
|
|
- .findByExamIdAndSubjectCodeAndObjectiveAndPaperType(examId, subjectCode, objective, paperType,
|
|
|
|
- new Sort(Direction.ASC, "mainNumber", "subNumber"));
|
|
|
|
|
|
+ List<ReportSubjectQuestion> list = reportSubjectQuestionDao.findByExamIdAndSubjectCodeAndObjectiveAndPaperType(
|
|
|
|
+ examId, subjectCode, objective, paperType, new Sort(Direction.ASC, "mainNumber", "subNumber"));
|
|
|
|
+ Collections.sort(list, new Comparator<ReportSubjectQuestion>() {
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public int compare(ReportSubjectQuestion o1, ReportSubjectQuestion o2) {
|
|
|
|
+ int i = o1.getMainNumber() - o2.getMainNumber();
|
|
|
|
+ if (i == 0) {
|
|
|
|
+ return Integer.parseUnsignedInt(o1.getSubNumber()) - Integer.parseUnsignedInt(o2.getSubNumber());
|
|
|
|
+ }
|
|
|
|
+ return i;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ return list;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|