|
@@ -29,6 +29,7 @@ import com.xjrsoft.module.evaluate.mapper.EvaluateExecuterMapper;
|
|
|
import com.xjrsoft.module.evaluate.mapper.EvaluateManageMapper;
|
|
|
import com.xjrsoft.module.evaluate.mapper.EvaluateObjectMapper;
|
|
|
import com.xjrsoft.module.evaluate.service.IEvaluateObjectService;
|
|
|
+import com.xjrsoft.module.evaluate.vo.ClassTeachersListVo;
|
|
|
import com.xjrsoft.module.evaluate.vo.EvaluateExecuterVo;
|
|
|
import com.xjrsoft.module.evaluate.vo.EvaluateManageVo;
|
|
|
import com.xjrsoft.module.evaluate.vo.EvaluateObjectGradeListVo;
|
|
@@ -46,6 +47,7 @@ import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Random;
|
|
|
+import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -226,21 +228,21 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
|
|
|
|
|
|
for (EvaluateObjectListVo objectListVo : newObjectList) {
|
|
|
List<EvaluateExecuterVo> dataList = new ArrayList<>();
|
|
|
- /*for (EvaluateExecuterVo executerVo : newExecuterList) {
|
|
|
+ for (EvaluateExecuterVo executerVo : newExecuterList) {
|
|
|
if(!executerVo.getClassId().equals(objectListVo.getClassId())){
|
|
|
continue;
|
|
|
}
|
|
|
dataList.add(executerVo);
|
|
|
- }*/
|
|
|
+ }
|
|
|
List<EvaluateExecuterVo> executerList = new ArrayList<>();
|
|
|
if(evaluateExecuterVoMap.get(objectListVo.getClassId()) != null){
|
|
|
dataList.addAll(evaluateExecuterVoMap.get(objectListVo.getClassId()));
|
|
|
- if("random15".equals(dto.getExecuterCount()) && dataList.size() > 0){
|
|
|
+ if("random15".equals(dto.getExecuterCount()) && !dataList.isEmpty()){
|
|
|
List<Integer> randomList = new ArrayList<>();
|
|
|
Random random = new Random();
|
|
|
while(randomList.size() < 15){
|
|
|
int nextInt = random.nextInt(dataList.size());
|
|
|
- if(!randomList.contains(nextInt) && nextInt >= 0){
|
|
|
+ if(!randomList.contains(nextInt)){
|
|
|
randomList.add(nextInt);
|
|
|
}
|
|
|
}
|
|
@@ -254,7 +256,8 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
|
|
|
objectListVo.setExecuterCount(executerList.size());
|
|
|
objectListVo.setExecuterList(executerList);
|
|
|
}
|
|
|
- }else if(dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode())) {//入参评价类型是教官评价班级
|
|
|
+ }
|
|
|
+ else if(dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode())) {//入参评价类型是教官评价班级
|
|
|
newObjectList = evaluateObjectMapper.getNewObjectList(dto);
|
|
|
List<EvaluateExecuterVo> newExecuterList = evaluateObjectMapper.getNewExecuterList(dto);
|
|
|
|
|
@@ -262,7 +265,8 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
|
|
|
objectListVo.setExecuterCount(newExecuterList.size());
|
|
|
objectListVo.setExecuterList(newExecuterList);
|
|
|
}
|
|
|
- }else if(dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.TEACHER_EVALUATE_CLASS.getCode())) {//任课教师对班级评价
|
|
|
+ }
|
|
|
+ else if(dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.TEACHER_EVALUATE_CLASS.getCode())) {//任课教师对班级评价
|
|
|
EvaluateManage manage = evaluateManageMapper.selectById(dto.getEvaluateManageId());
|
|
|
newObjectList = evaluateObjectMapper.getNewObjectList(dto);
|
|
|
|
|
@@ -302,6 +306,75 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
|
|
|
objectListVo.setExecuterList(currentExecuterList);
|
|
|
}
|
|
|
}
|
|
|
+ else if(dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_COURSE_TEACHER.getCode())) {//入参评价类型是学生评价教师
|
|
|
+ EvaluateManage manage = evaluateManageMapper.selectById(dto.getEvaluateManageId());
|
|
|
+ //查询这个年级的所有学生
|
|
|
+ List<EvaluateExecuterVo> newExecuterList = evaluateObjectMapper.getNewExecuterList(dto);
|
|
|
+ Map<String, List<EvaluateExecuterVo>> classExcuterMap = newExecuterList.stream().collect(Collectors.groupingBy(EvaluateExecuterVo::getClassId));
|
|
|
+
|
|
|
+ //查询每个班级的任课教师
|
|
|
+ dto.setStartTime(manage.getStartTime());
|
|
|
+ dto.setEndTime(manage.getEndTime());
|
|
|
+ List<ClassTeachersListVo> classTeachers = evaluateObjectMapper.getClassTeachers(dto);
|
|
|
+ List<ClassTeachersListVo> collect = classTeachers.stream().filter(p -> StrUtil.isNotEmpty(p.getTeacherId())).collect(Collectors.collectingAndThen(
|
|
|
+ Collectors.toMap(
|
|
|
+ ClassTeachersListVo::getUniqueKey,
|
|
|
+ p -> p,
|
|
|
+ (existing, replacement) -> existing
|
|
|
+ ),
|
|
|
+ map -> new ArrayList<>(map.values())
|
|
|
+ ));
|
|
|
+ Map<String, List<ClassTeachersListVo>> classTeacherMap = collect.stream().collect(Collectors.groupingBy(ClassTeachersListVo::getTeacherId));
|
|
|
+
|
|
|
+ List<User> userList = userService.list(
|
|
|
+ new MPJLambdaWrapper<User>()
|
|
|
+ .select(User::getId)
|
|
|
+ .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
|
|
|
+ .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId)
|
|
|
+ );
|
|
|
+ Map<Long, String> userMap = userList.stream().collect(Collectors.toMap(User::getId, User::getName));
|
|
|
+
|
|
|
+ for (String teacherId : classTeacherMap.keySet()) {
|
|
|
+ if(!userMap.containsKey(Long.parseLong(teacherId.trim()))){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if("15331003902918".equals(teacherId)){
|
|
|
+ System.out.println(teacherId);
|
|
|
+ }
|
|
|
+ EvaluateObjectListVo objectListVo = new EvaluateObjectListVo();
|
|
|
+
|
|
|
+ Set<Long> classIds = classTeacherMap.get(teacherId).stream().map(ClassTeachersListVo::getClassId).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ List<EvaluateExecuterVo> currentExecuterList = new ArrayList<>();
|
|
|
+ for (Long classId : classIds) {
|
|
|
+ List<EvaluateExecuterVo> studentList = classExcuterMap.get(classId.toString());
|
|
|
+ if(studentList == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if("random15".equals(dto.getExecuterCount()) && !studentList.isEmpty()){
|
|
|
+ List<Integer> randomList = new ArrayList<>();
|
|
|
+ Random random = new Random();
|
|
|
+ while(randomList.size() < 15){
|
|
|
+ int nextInt = random.nextInt(studentList.size());
|
|
|
+ if(!randomList.contains(nextInt)){
|
|
|
+ randomList.add(nextInt);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (Integer i : randomList) {
|
|
|
+ currentExecuterList.add(studentList.get(i));
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ currentExecuterList.addAll(studentList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ objectListVo.setObjectId(teacherId.trim());
|
|
|
+ objectListVo.setObjectName(userMap.get(Long.parseLong(teacherId.trim())));
|
|
|
+ objectListVo.setExecuterCount(currentExecuterList.size());
|
|
|
+ objectListVo.setExecuterList(currentExecuterList);
|
|
|
+ newObjectList.add(objectListVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
return newObjectList;
|
|
|
}
|