|
|
@@ -14,6 +14,7 @@ import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.module.base.entity.BaseGrade;
|
|
|
import com.xjrsoft.module.courseTable.dto.ClassTeacherDto;
|
|
|
import com.xjrsoft.module.courseTable.mapper.CourseTableMapper;
|
|
|
+import com.xjrsoft.module.courseTable.service.ICourseTableService;
|
|
|
import com.xjrsoft.module.courseTable.vo.ClassTeacherVo;
|
|
|
import com.xjrsoft.module.evaluate.dto.*;
|
|
|
import com.xjrsoft.module.evaluate.entity.EvaluateExecuter;
|
|
|
@@ -27,6 +28,11 @@ import com.xjrsoft.module.evaluate.service.IEvaluateObjectService;
|
|
|
import com.xjrsoft.module.evaluate.vo.*;
|
|
|
import com.xjrsoft.module.organization.entity.User;
|
|
|
import com.xjrsoft.module.organization.service.IUserService;
|
|
|
+import com.xjrsoft.module.schedule.dto.CourseTableDto;
|
|
|
+import com.xjrsoft.module.schedule.vo.CurrentWeekVo;
|
|
|
+import com.xjrsoft.module.student.dto.BaseStudentUserPageDto;
|
|
|
+import com.xjrsoft.module.student.service.IBaseStudentService;
|
|
|
+import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
|
|
|
import com.xjrsoft.module.teacher.entity.BaseTeacher;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -51,6 +57,8 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
|
|
|
private final EvaluateExecuterMapper evaluateExecuterMapper;
|
|
|
private final CourseTableMapper courseTableMapper;
|
|
|
private final IUserService userService;
|
|
|
+ private final IBaseStudentService studentService;
|
|
|
+ private final ICourseTableService courseTableService;
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -242,7 +250,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);
|
|
|
|
|
|
@@ -250,15 +259,16 @@ 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())) {//任课教师对班级评价
|
|
|
- EvaluateManage manage = evaluateManageMapper.selectById(dto.getEvaluateManageId());
|
|
|
+ }
|
|
|
+ else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.TEACHER_EVALUATE_CLASS.getCode())) {//任课教师对班级评价
|
|
|
+ CurrentWeekVo currentWeek = courseTableService.getCurrentWeek(new CourseTableDto());
|
|
|
newObjectList = evaluateObjectMapper.getNewObjectList(dto);
|
|
|
|
|
|
List<ClassTeacherVo> classTeacher = courseTableMapper.getClassTeacherIds(
|
|
|
new ClassTeacherDto() {{
|
|
|
- setStartDate(manage.getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
|
|
|
+ setStartDate(currentWeek.getStartDate());
|
|
|
setGradeId(dto.getGradeId());
|
|
|
- setEndDate(manage.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
|
|
|
+ setEndDate(currentWeek.getEndDate());
|
|
|
}}
|
|
|
);
|
|
|
|
|
|
@@ -278,18 +288,21 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
|
|
|
|
|
|
String[] teacherIds = executerVo.getTeacherId().split(",");
|
|
|
for (String teacherId : teacherIds) {
|
|
|
+ if("0".equals(teacherId)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
EvaluateExecuterVo evaluateExecuterVo = new EvaluateExecuterVo();
|
|
|
evaluateExecuterVo.setExecuterId(teacherId);
|
|
|
evaluateExecuterVo.setEvaluateObjectId(objectListVo.getObjectId());
|
|
|
evaluateExecuterVo.setExecuterName(userMap.get(Long.parseLong(teacherId.trim())));
|
|
|
- evaluateExecuterVo.setEvaluateManageId(dto.getEvaluateManageId().toString());
|
|
|
currentExecuterList.add(evaluateExecuterVo);
|
|
|
}
|
|
|
}
|
|
|
objectListVo.setExecuterCount(currentExecuterList.size());
|
|
|
objectListVo.setExecuterList(currentExecuterList);
|
|
|
}
|
|
|
- } else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_COURSE_TEACHER.getCode())) {//入参评价类型是学生评价教师
|
|
|
+ }
|
|
|
+ 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);
|
|
|
@@ -358,6 +371,144 @@ public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObject
|
|
|
newObjectList.add(objectListVo);
|
|
|
}
|
|
|
}
|
|
|
+ else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.STU_SELF_EVALUATE.getCode())){//学生自评
|
|
|
+ BaseStudentUserPageDto studentUserPageDto = new BaseStudentUserPageDto();
|
|
|
+ studentUserPageDto.setGradeId(dto.getGradeId());
|
|
|
+ if(dto.getClassId() != null){
|
|
|
+ List<Long> classIds = new ArrayList<>();
|
|
|
+ classIds.add(dto.getClassId());
|
|
|
+ studentUserPageDto.setClassIds(classIds);
|
|
|
+ }
|
|
|
+ List<BaseStudentUserPageVo> studentList = studentService.getStudentList(studentUserPageDto);
|
|
|
+
|
|
|
+ for (BaseStudentUserPageVo student : studentList) {
|
|
|
+ EvaluateObjectListVo object = new EvaluateObjectListVo();
|
|
|
+ object.setObjectName(student.getName());
|
|
|
+ object.setObjectId(student.getId());
|
|
|
+ object.setGradeId(student.getGradeId().toString());
|
|
|
+ object.setGradeName(student.getGradeName());
|
|
|
+ object.setClassId(student.getClassId().toString());
|
|
|
+
|
|
|
+ List<EvaluateExecuterVo> executerList = new ArrayList<>();
|
|
|
+
|
|
|
+ EvaluateExecuterVo executerVo = new EvaluateExecuterVo();
|
|
|
+ executerVo.setEvaluateObjectId(student.getId());
|
|
|
+ executerVo.setExecuterName(student.getName());
|
|
|
+ executerVo.setExecuterId(student.getId());
|
|
|
+ executerVo.setGradeId(student.getGradeId().toString());
|
|
|
+ executerVo.setClassId(student.getClassId().toString());
|
|
|
+
|
|
|
+ executerList.add(executerVo);
|
|
|
+ object.setExecuterList(executerList);
|
|
|
+ object.setExecuterCount(executerList.size());
|
|
|
+
|
|
|
+ newObjectList.add(object);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.CLASS_STU_EVALUATE.getCode())){//班级学生交叉互评
|
|
|
+ BaseStudentUserPageDto studentUserPageDto = new BaseStudentUserPageDto();
|
|
|
+ studentUserPageDto.setGradeId(dto.getGradeId());
|
|
|
+ if(dto.getClassId() != null){
|
|
|
+ List<Long> classIds = new ArrayList<>();
|
|
|
+ classIds.add(dto.getClassId());
|
|
|
+ studentUserPageDto.setClassIds(classIds);
|
|
|
+ }
|
|
|
+ List<BaseStudentUserPageVo> studentList = studentService.getStudentList(studentUserPageDto);
|
|
|
+ Map<Long, List<BaseStudentUserPageVo>> classStudentMap = studentList.stream().collect(Collectors.groupingBy(BaseStudentUserPageVo::getClassId));
|
|
|
+ for (BaseStudentUserPageVo student : studentList) {
|
|
|
+ EvaluateObjectListVo object = new EvaluateObjectListVo();
|
|
|
+ object.setObjectName(student.getName());
|
|
|
+ object.setObjectId(student.getId());
|
|
|
+ object.setGradeId(student.getGradeId().toString());
|
|
|
+ object.setGradeName(student.getGradeName());
|
|
|
+ object.setClassId(student.getClassId().toString());
|
|
|
+
|
|
|
+ List<BaseStudentUserPageVo> classStudentList = classStudentMap.get(student.getClassId());
|
|
|
+
|
|
|
+ List<EvaluateExecuterVo> executerList = new ArrayList<>();
|
|
|
+ if(classStudentList != null){
|
|
|
+ for (BaseStudentUserPageVo otherStudent : classStudentList) {
|
|
|
+ if(otherStudent.getId().equals(student.getId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ EvaluateExecuterVo executerVo = new EvaluateExecuterVo();
|
|
|
+ executerVo.setEvaluateObjectId(student.getId());
|
|
|
+ executerVo.setExecuterName(otherStudent.getName());
|
|
|
+ executerVo.setExecuterId(otherStudent.getId());
|
|
|
+ executerVo.setGradeId(otherStudent.getGradeId().toString());
|
|
|
+ executerVo.setClassId(otherStudent.getClassId().toString());
|
|
|
+
|
|
|
+ executerList.add(executerVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ object.setExecuterList(executerList);
|
|
|
+ object.setExecuterCount(executerList.size());
|
|
|
+ newObjectList.add(object);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.TEA_EVALUATE_STU.getCode())){//教师评价班级学生
|
|
|
+ BaseStudentUserPageDto studentUserPageDto = new BaseStudentUserPageDto();
|
|
|
+ studentUserPageDto.setGradeId(dto.getGradeId());
|
|
|
+ if(dto.getClassId() != null){
|
|
|
+ List<Long> classIds = new ArrayList<>();
|
|
|
+ classIds.add(dto.getClassId());
|
|
|
+ studentUserPageDto.setClassIds(classIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<BaseStudentUserPageVo> studentList = studentService.getStudentList(studentUserPageDto);
|
|
|
+
|
|
|
+ for (BaseStudentUserPageVo student : studentList) {
|
|
|
+ EvaluateObjectListVo object = new EvaluateObjectListVo();
|
|
|
+ object.setObjectName(student.getName());
|
|
|
+ object.setObjectId(student.getId());
|
|
|
+ object.setGradeId(student.getGradeId().toString());
|
|
|
+ object.setGradeName(student.getGradeName());
|
|
|
+ object.setClassId(student.getClassId().toString());
|
|
|
+ newObjectList.add(object);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ CurrentWeekVo currentWeek = courseTableService.getCurrentWeek(new CourseTableDto());
|
|
|
+ List<ClassTeacherVo> classTeacher = courseTableMapper.getClassTeacherIds(
|
|
|
+ new ClassTeacherDto() {{
|
|
|
+ setStartDate(currentWeek.getStartDate());
|
|
|
+ setGradeId(dto.getGradeId());
|
|
|
+ setEndDate(currentWeek.getEndDate());
|
|
|
+ }}
|
|
|
+ );
|
|
|
+
|
|
|
+ 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 (EvaluateObjectListVo objectListVo : newObjectList) {
|
|
|
+ List<EvaluateExecuterVo> currentExecuterList = new ArrayList<>();
|
|
|
+ for (ClassTeacherVo executerVo : classTeacher) {
|
|
|
+ if (!objectListVo.getClassId().equals(executerVo.getClassId().toString())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ String[] teacherIds = executerVo.getTeacherId().split(",");
|
|
|
+ for (String teacherId : teacherIds) {
|
|
|
+ if("0".equals(teacherId)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ EvaluateExecuterVo evaluateExecuterVo = new EvaluateExecuterVo();
|
|
|
+ evaluateExecuterVo.setExecuterId(teacherId);
|
|
|
+ evaluateExecuterVo.setEvaluateObjectId(objectListVo.getObjectId());
|
|
|
+ evaluateExecuterVo.setExecuterName(userMap.get(Long.parseLong(teacherId.trim())));
|
|
|
+ currentExecuterList.add(evaluateExecuterVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ objectListVo.setExecuterCount(currentExecuterList.size());
|
|
|
+ objectListVo.setExecuterList(currentExecuterList);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
return newObjectList;
|
|
|
}
|