宋悦 7 жил өмнө
parent
commit
47d8ef226b

+ 78 - 3
exam-work-api/src/main/java/cn/com/qmth/examcloud/service/examwork/service/ExamStudentService.java

@@ -87,7 +87,7 @@ public class ExamStudentService {
 //        Example<ExamStudent> examExamStudentple = Example.of(examStudentSearch, exampleMatcher);
 //		Page<ExamStudent> examStudents = examStudentRepo.findAll(examExamStudentple,pageable);
 //        return examStudents;
-    	Specification<ExamStudent> specification = getSpecification(examCriteria);
+    	Specification<ExamStudent> specification = getPageSpecification(examCriteria);
 		Page<ExamStudent> examStudents = examStudentRepo.findAll(specification,pageable);
         return examStudents;
     }
@@ -321,7 +321,6 @@ public class ExamStudentService {
 	private Specification<ExamStudent> getSpecification(ExamStudentDTO examCriteria) {
 		Specification<ExamStudent> specification = (root, query, cb) -> {
 		    List<Predicate> predicates = new ArrayList<>();
-//			predicates.add(cb.equal(root.get("exam").get("enable"),true));
 			if(!StringUtils.isEmpty(examCriteria.getStudentId())){
 				predicates.add(cb.equal(root.get("studentId"),examCriteria.getStudentId()));
 			}
@@ -355,6 +354,82 @@ public class ExamStudentService {
 		    if(!StringUtils.isEmpty(examCriteria.getFinished())){
 		    	predicates.add(cb.equal(root.get("finished"),examCriteria.getFinished()));
 		    }
+			if(!StringUtils.isEmpty(examCriteria.getExamSite())){
+				predicates.add(cb.like(root.get("examSite"),"%"+examCriteria.getExamSite()+"%"));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getIdentityNumber())){
+				predicates.add(cb.equal(root.get("identityNumber"),examCriteria.getIdentityNumber()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getSpecialtyName())){
+				predicates.add(cb.like(root.get("specialtyName"),"%"+examCriteria.getSpecialtyName()+"%"));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getPaperType())){
+				predicates.add(cb.equal(root.get("paperType"),examCriteria.getPaperType()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getDegree())){
+				predicates.add(cb.equal(root.get("degree"),examCriteria.getDegree()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getRepair())){
+				predicates.add(cb.equal(root.get("repair"),examCriteria.getRepair()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getGraduated())){
+				predicates.add(cb.equal(root.get("graduated"),examCriteria.getGraduated()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getGrade())){
+				predicates.add(cb.like(root.get("grade"),"%"+examCriteria.getGrade()+"%"));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getExamNumber())){
+				predicates.add(cb.like(root.get("examNumber"),"%"+examCriteria.getExamNumber()+"%"));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getInfoCollector())){
+				predicates.add(cb.like(root.get("infoCollector"),"%"+examCriteria.getInfoCollector()+"%"));
+			}
+		    return cb.and(predicates.toArray(new Predicate[predicates.size()]));
+		};
+		return specification;
+	}
+
+	/**
+	 * 生成查询条件
+	 * @param examCriteria
+	 * @return
+	 */
+	private Specification<ExamStudent> getPageSpecification(ExamStudentDTO examCriteria) {
+		Specification<ExamStudent> specification = (root, query, cb) -> {
+			List<Predicate> predicates = new ArrayList<>();
+			if(!StringUtils.isEmpty(examCriteria.getStudentId())){
+				predicates.add(cb.equal(root.get("studentId"),examCriteria.getStudentId()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getRootOrgId())){
+				predicates.add(cb.equal(root.get("rootOrgId"),examCriteria.getRootOrgId()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getOrgId())){
+				predicates.add(cb.equal(root.get("orgId"),examCriteria.getOrgId()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getOrgName())){
+				predicates.add(cb.like(root.get("orgName"),"%"+examCriteria.getOrgName()+"%"));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getExamId())){
+				predicates.add(cb.equal(root.get("exam").get("id"),examCriteria.getExamId()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getName())){
+				predicates.add(cb.like(root.get("name"),"%"+examCriteria.getName()+"%"));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getStudentCode())){
+				predicates.add(cb.like(root.get("studentCode"),"%"+examCriteria.getStudentCode()+"%"));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getCourseCode())){
+				predicates.add(cb.equal(root.get("courseCode"),examCriteria.getCourseCode()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getCourseLevel())){
+				predicates.add(cb.equal(root.get("courseLevel"),examCriteria.getCourseLevel()));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getCourseName())){
+				predicates.add(cb.like(root.get("courseName"),"%"+examCriteria.getCourseName()+"%"));
+			}
+			if(!StringUtils.isEmpty(examCriteria.getFinished())){
+				predicates.add(cb.equal(root.get("finished"),examCriteria.getFinished()));
+			}
 
 			if(!StringUtils.isEmpty(examCriteria.getExamSite())){
 				predicates.add(cb.like(root.get("examSite"),"%"+examCriteria.getExamSite()+"%"));
@@ -386,7 +461,7 @@ public class ExamStudentService {
 			if(!StringUtils.isEmpty(examCriteria.getInfoCollector())){
 				predicates.add(cb.like(root.get("infoCollector"),"%"+examCriteria.getInfoCollector()+"%"));
 			}
-		    return cb.and(predicates.toArray(new Predicate[predicates.size()]));
+			return cb.and(predicates.toArray(new Predicate[predicates.size()]));
 		};
 		return specification;
 	}