|
@@ -43,7 +43,7 @@ import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implements ExamStudentService {
|
|
public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implements ExamStudentService {
|
|
-
|
|
|
|
|
|
+ private static String[] objectiveAnswer=new String[] {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","?"};
|
|
@PersistenceContext
|
|
@PersistenceContext
|
|
private EntityManager entityManager;
|
|
private EntityManager entityManager;
|
|
|
|
|
|
@@ -717,6 +717,25 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
|
|
predicates.add(cb.and(sub));
|
|
predicates.add(cb.and(sub));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (query.getObjectiveFill()!=null) {
|
|
|
|
+ if(query.getObjectiveFill()){
|
|
|
|
+ Predicate[] sub = new Predicate[objectiveAnswer.length];
|
|
|
|
+ for (int i = 0; i < objectiveAnswer.length; i++) {
|
|
|
|
+ sub[i] = cb.like(root.get("answers"), "%"+objectiveAnswer[i]+"%");
|
|
|
|
+ }
|
|
|
|
+ predicates.add(cb.or(sub));
|
|
|
|
+ }else {
|
|
|
|
+ Predicate[] orp = new Predicate[3];
|
|
|
|
+ orp[0]=cb.isNull(root.get("answers"));
|
|
|
|
+ orp[1]=cb.equal(root.get("answers"),"");
|
|
|
|
+ Predicate[] sub = new Predicate[objectiveAnswer.length];
|
|
|
|
+ for (int i = 0; i < objectiveAnswer.length; i++) {
|
|
|
|
+ sub[i] = cb.notLike(root.get("answers"), "%"+objectiveAnswer[i]+"%");
|
|
|
|
+ }
|
|
|
|
+ orp[2]=cb.and(sub);
|
|
|
|
+ predicates.add(cb.or(orp));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (StringUtils.isNotBlank(query.getPaperType())) {
|
|
if (StringUtils.isNotBlank(query.getPaperType())) {
|
|
predicates.add(cb.equal(root.get("paperType"), query.getPaperType()));
|
|
predicates.add(cb.equal(root.get("paperType"), query.getPaperType()));
|
|
}
|
|
}
|