|
|
@@ -142,6 +142,15 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
|
|
|
throw new MyException("未能查询到该任务,无法自动分班");
|
|
|
}
|
|
|
//1、查询需要分班的学生信息
|
|
|
+ List<BandingTaskClassStudent> classStudents = classStudentService.selectJoinList(BandingTaskClassStudent.class,
|
|
|
+ new MPJLambdaWrapper<BandingTaskClassStudent>()
|
|
|
+ .select(BandingTaskClassStudent::getId)
|
|
|
+ .select(BandingTaskClassStudent.class, x -> VoToColumnUtil.fieldsToColumns(BandingTaskClassStudent.class).contains(x.getProperty()))
|
|
|
+ .leftJoin(BandingTaskClass.class, BandingTaskClass::getId, BandingTaskClassStudent::getBandingTaskClassId)
|
|
|
+ .eq(BandingTaskClass::getStatus, 0)
|
|
|
+ );
|
|
|
+ List<Long> studentIds = classStudents.stream().map(BandingTaskClassStudent::getNewStudentId).collect(Collectors.toList());
|
|
|
+
|
|
|
List<String> orderColumn = new ArrayList();
|
|
|
orderColumn.add("score");
|
|
|
List<BaseNewStudent> baseNewStudents = newStudentService.selectJoinList(BaseNewStudent.class,
|
|
|
@@ -152,6 +161,7 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
|
|
|
.eq(EnrollmentPlan::getGradeId, bandingTask.getGradeId())
|
|
|
.eq(EnrollmentPlan::getEnrollType, bandingTask.getEnrollType())
|
|
|
.eq(BaseNewStudent::getStatus, 0)
|
|
|
+ .notIn(!studentIds.isEmpty(), BaseNewStudent::getId, studentIds)
|
|
|
.orderByDescStr(orderColumn)
|
|
|
);
|
|
|
//2、查询所有班级信息
|