EvaluateObjectServiceImpl.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452
  1. package com.xjrsoft.module.evaluate.service.impl;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.github.yulichang.base.MPJBaseServiceImpl;
  6. import com.github.yulichang.wrapper.MPJLambdaWrapper;
  7. import com.xjrsoft.common.enums.DeleteMark;
  8. import com.xjrsoft.common.enums.EnabledMark;
  9. import com.xjrsoft.common.enums.EvaluateTypeEnum;
  10. import com.xjrsoft.common.exception.MyException;
  11. import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
  12. import com.xjrsoft.common.utils.VoToColumnUtil;
  13. import com.xjrsoft.module.base.entity.BaseGrade;
  14. import com.xjrsoft.module.courseTable.dto.ClassTeacherDto;
  15. import com.xjrsoft.module.courseTable.mapper.CourseTableMapper;
  16. import com.xjrsoft.module.courseTable.vo.ClassTeacherVo;
  17. import com.xjrsoft.module.evaluate.dto.*;
  18. import com.xjrsoft.module.evaluate.entity.EvaluateExecuter;
  19. import com.xjrsoft.module.evaluate.entity.EvaluateManage;
  20. import com.xjrsoft.module.evaluate.entity.EvaluateObject;
  21. import com.xjrsoft.module.evaluate.entity.EvaluateTemplate;
  22. import com.xjrsoft.module.evaluate.mapper.EvaluateExecuterMapper;
  23. import com.xjrsoft.module.evaluate.mapper.EvaluateManageMapper;
  24. import com.xjrsoft.module.evaluate.mapper.EvaluateObjectMapper;
  25. import com.xjrsoft.module.evaluate.service.IEvaluateObjectService;
  26. import com.xjrsoft.module.evaluate.vo.*;
  27. import com.xjrsoft.module.organization.entity.User;
  28. import com.xjrsoft.module.organization.service.IUserService;
  29. import com.xjrsoft.module.student.dto.BaseStudentUserPageDto;
  30. import com.xjrsoft.module.student.service.IBaseStudentService;
  31. import com.xjrsoft.module.student.vo.BaseStudentUserPageVo;
  32. import com.xjrsoft.module.teacher.entity.BaseTeacher;
  33. import lombok.AllArgsConstructor;
  34. import org.springframework.stereotype.Service;
  35. import org.springframework.transaction.annotation.Transactional;
  36. import java.time.ZoneId;
  37. import java.util.*;
  38. import java.util.stream.Collectors;
  39. /**
  40. * @title: 评价管理
  41. * @Author dzx
  42. * @Date: 2024-01-16
  43. * @Version 1.0
  44. */
  45. @Service
  46. @AllArgsConstructor
  47. public class EvaluateObjectServiceImpl extends MPJBaseServiceImpl<EvaluateObjectMapper, EvaluateObject> implements IEvaluateObjectService {
  48. private final EvaluateManageMapper evaluateManageMapper;
  49. private final EvaluateObjectMapper evaluateObjectMapper;
  50. private final EvaluateExecuterMapper evaluateExecuterMapper;
  51. private final CourseTableMapper courseTableMapper;
  52. private final IUserService userService;
  53. private final IBaseStudentService studentService;
  54. @Override
  55. public List<EvaluateObjectListVo> getObjectList(EvaluateObjectListDto dto) {
  56. List<EvaluateObjectListVo> objectList = evaluateObjectMapper.getObjectList(dto);
  57. List<EvaluateExecuterVo> allExecuterList = evaluateObjectMapper.getExecuterList(dto);
  58. // Map<String, List<EvaluateExecuterVo>> groupEvaluateExecuterByEvaluateObjectId = allExecuterList.stream()
  59. // .collect(Collectors.groupingBy(EvaluateExecuterVo::getEvaluateObjectId));
  60. for (EvaluateObjectListVo objectVo : objectList) {
  61. // List<EvaluateExecuterVo> executerVoList = groupEvaluateExecuterByEvaluateObjectId.get(objectVo.getId());
  62. // objectVo.setExecuterCount(executerVoList.size());
  63. // objectVo.setExecuterList(executerVoList);
  64. List<EvaluateExecuterVo> executerList = new ArrayList<>();
  65. for (EvaluateExecuterVo executerVo : allExecuterList) {
  66. if (objectVo.getId().equals(executerVo.getEvaluateObjectId())) {
  67. executerList.add(executerVo);
  68. }
  69. }
  70. objectVo.setExecuterCount(executerList.size());
  71. objectVo.setExecuterList(executerList);
  72. }
  73. return objectList;
  74. }
  75. @Override
  76. public List<EvaluateObjectGradeListVo> getObjectGradeList(EvaluateObjectGradeListDto dto) {
  77. /*SELECT
  78. count(t1.id),
  79. t1.base_grade_id,
  80. t2.name,
  81. count(t4.id)
  82. FROM evaluate_object t1
  83. LEFT JOIN base_grade t2 ON t2.id = t1.base_grade_id
  84. LEFT JOIN evaluate_executer t4 ON t4.evaluate_object_id = t1.id
  85. WHERE t1.delete_mark = 0 and t1.evaluate_manage_id = 1747177686090969089
  86. group by t1.base_grade_id;*/
  87. MPJLambdaWrapper<EvaluateObject> evaluateObjectMPJLambdaWrapper = new MPJLambdaWrapper<>();
  88. evaluateObjectMPJLambdaWrapper
  89. .selectAs(EvaluateObject::getEvaluateManageId, EvaluateObjectGradeListVo::getEvaluateManageId)
  90. .select("count(distinct t.id) as objectCount")
  91. .selectAs(EvaluateObject::getBaseGradeId, EvaluateObjectGradeListVo::getGradeId)
  92. .selectAs(BaseGrade::getName, EvaluateObjectGradeListVo::getGradeName)
  93. .selectCount(EvaluateExecuter::getId, EvaluateObjectGradeListVo::getExecuterCount)
  94. .leftJoin(BaseGrade.class, BaseGrade::getId, EvaluateObject::getBaseGradeId)
  95. .leftJoin(EvaluateExecuter.class, EvaluateExecuter::getEvaluateObjectId, EvaluateObject::getId)
  96. .eq(EvaluateObject::getEvaluateManageId, dto.getEvaluateManageId())
  97. .groupBy(EvaluateObject::getBaseGradeId)
  98. .disableSubLogicDel();
  99. return this.selectJoinList(EvaluateObjectGradeListVo.class, evaluateObjectMPJLambdaWrapper);
  100. }
  101. @Override
  102. @Transactional
  103. public Boolean objectGradeDelete(ObjectGradeDeleteDto dto) {
  104. //获取当前评价管理的类型
  105. LambdaQueryWrapper<EvaluateManage> evaluateManageMPJLambdaWrapper = new LambdaQueryWrapper<>();
  106. evaluateManageMPJLambdaWrapper
  107. .eq(EvaluateManage::getId, dto.getEvaluateManageId());
  108. EvaluateManage evaluateManage = evaluateManageMapper.selectOne(evaluateManageMPJLambdaWrapper);
  109. if (evaluateManage == null) {
  110. throw new MyException("该评价管理已经失效");
  111. }
  112. if (evaluateManage.getStatus() != -1) {
  113. throw new MyException("该评价管理正在使用");
  114. }
  115. evaluateObjectMapper.objectGradeDeleteExecuter(dto);
  116. evaluateObjectMapper.objectGradeDeleteObject(dto);
  117. return true;
  118. }
  119. @Override
  120. @Transactional
  121. public Boolean save(SaveEvaluateObjectDto dto) {
  122. //获取当前评价管理的类型
  123. MPJLambdaWrapper<EvaluateManage> evaluateManageMPJLambdaWrapper = new MPJLambdaWrapper<>();
  124. evaluateManageMPJLambdaWrapper
  125. .select(EvaluateManage::getId)
  126. .selectAs(EvaluateTemplate::getEvaluateType, EvaluateManageVo::getEvaluateType)
  127. .select(EvaluateManage.class, x -> VoToColumnUtil.fieldsToColumns(EvaluateManageVo.class).contains(x.getProperty()))
  128. .innerJoin(EvaluateTemplate.class, EvaluateTemplate::getId, EvaluateManage::getEvaluateTemplateId)
  129. .eq(EvaluateManage::getId, dto.getEvaluateManageId())
  130. .disableSubLogicDel();
  131. EvaluateManageVo evaluateManageVo = evaluateManageMapper.selectJoinOne(EvaluateManageVo.class, evaluateManageMPJLambdaWrapper);
  132. if (evaluateManageVo == null) {
  133. throw new MyException("未查询到信息,evaluateManageId不正确");
  134. }
  135. if (evaluateManageVo.getStatus() != -1) {
  136. throw new MyException("该评价正在使用");
  137. }
  138. //清空原有数据
  139. String delSql = "DELETE FROM evaluate_executer WHERE evaluate_object_id IN (" +
  140. " SELECT id FROM evaluate_object WHERE evaluate_manage_id = #{dto.evaluateManageId}";
  141. if (dto.getObjectList() != null && !dto.getObjectList().isEmpty()) {
  142. List<String> gradeIds = dto.getObjectList().stream().map(AddEvaluateObjectDto::getGradeId).collect(Collectors.toList());
  143. delSql += " and base_grade_id in (" + gradeIds.toString().replace("[", "").replace("]", "") + ")";
  144. }
  145. delSql += ")";
  146. SqlRunnerAdapter.db().delete(delSql);
  147. delSql = "DELETE FROM evaluate_object WHERE evaluate_manage_id = " + dto.getEvaluateManageId();
  148. if (dto.getObjectList() != null && !dto.getObjectList().isEmpty()) {
  149. List<String> gradeIds = dto.getObjectList().stream().map(AddEvaluateObjectDto::getGradeId).collect(Collectors.toList());
  150. delSql += " and base_grade_id in (" + gradeIds.toString().replace("[", "").replace("]", "") + ")";
  151. }
  152. SqlRunnerAdapter.db().delete(delSql);
  153. //保存新数据
  154. Date createDate = new Date();
  155. long createUserId = StpUtil.getLoginIdAsLong();
  156. for (AddEvaluateObjectDto objectDto : dto.getObjectList()) {
  157. if (StrUtil.isEmpty(objectDto.getObjectId())) {
  158. continue;
  159. }
  160. EvaluateObject evaluateObject = new EvaluateObject();
  161. evaluateObject.setObjectId(Long.parseLong(objectDto.getObjectId()));
  162. evaluateObject.setEvaluateManageId(Long.parseLong(dto.getEvaluateManageId()));
  163. evaluateObject.setDeleteMark(DeleteMark.NODELETE.getCode());
  164. evaluateObject.setCreateDate(createDate);
  165. evaluateObject.setCreateUserId(createUserId);
  166. evaluateObject.setEnabledMark(EnabledMark.ENABLED.getCode());
  167. evaluateObject.setBaseGradeId(Long.parseLong(objectDto.getGradeId()));
  168. if (evaluateManageVo.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode())) {
  169. evaluateObject.setObjectType("class");
  170. }
  171. if (evaluateManageVo.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_HEAD_TEACHER.getCode())) {
  172. evaluateObject.setObjectType("teacher");
  173. }
  174. evaluateObjectMapper.insert(evaluateObject);
  175. for (AddEvaluateExecuterDto executerDto : objectDto.getExecuterList()) {
  176. EvaluateExecuter executer = new EvaluateExecuter();
  177. executer.setCreateDate(createDate);
  178. executer.setCreateUserId(createUserId);
  179. executer.setEvaluateManageId(Long.parseLong(dto.getEvaluateManageId()));
  180. executer.setEvaluateObjectId(evaluateObject.getId());
  181. executer.setUserId(Long.parseLong(executerDto.getExecuterId().trim()));
  182. executer.setStatus(0);
  183. evaluateExecuterMapper.insert(executer);
  184. }
  185. }
  186. return true;
  187. }
  188. @Override
  189. public List<EvaluateObjectListVo> getNewObjectList(EvaluateObjectListDto dto) {
  190. List<EvaluateObjectListVo> newObjectList = new ArrayList<>();
  191. //入参评价类型是学生评价班主任
  192. if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_HEAD_TEACHER.getCode())) {
  193. newObjectList = evaluateObjectMapper.getNewObjectList(dto);
  194. List<EvaluateExecuterVo> newExecuterList = evaluateObjectMapper.getNewExecuterList(dto);
  195. //将学生按照班级处理成map
  196. Map<String, List<EvaluateExecuterVo>> evaluateExecuterVoMap = newExecuterList.stream()
  197. .collect(Collectors.groupingBy(EvaluateExecuterVo::getClassId));
  198. for (EvaluateObjectListVo objectListVo : newObjectList) {
  199. List<EvaluateExecuterVo> dataList = new ArrayList<>();
  200. for (EvaluateExecuterVo executerVo : newExecuterList) {
  201. if (!executerVo.getClassId().equals(objectListVo.getClassId())) {
  202. continue;
  203. }
  204. dataList.add(executerVo);
  205. }
  206. List<EvaluateExecuterVo> executerList = new ArrayList<>();
  207. if (evaluateExecuterVoMap.get(objectListVo.getClassId()) != null) {
  208. dataList.addAll(evaluateExecuterVoMap.get(objectListVo.getClassId()));
  209. if ("random15".equals(dto.getExecuterCount()) && !dataList.isEmpty()) {
  210. List<Integer> randomList = new ArrayList<>();
  211. Random random = new Random();
  212. while (randomList.size() < 15) {
  213. int nextInt = random.nextInt(dataList.size());
  214. if (!randomList.contains(nextInt)) {
  215. randomList.add(nextInt);
  216. }
  217. }
  218. for (Integer i : randomList) {
  219. executerList.add(dataList.get(i));
  220. }
  221. } else {
  222. executerList.addAll(dataList);
  223. }
  224. }
  225. objectListVo.setExecuterCount(executerList.size());
  226. objectListVo.setExecuterList(executerList);
  227. }
  228. }
  229. else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.DRILLMASTER_EVALUATE_CLASS.getCode())) {//入参评价类型是教官评价班级
  230. newObjectList = evaluateObjectMapper.getNewObjectList(dto);
  231. List<EvaluateExecuterVo> newExecuterList = evaluateObjectMapper.getNewExecuterList(dto);
  232. for (EvaluateObjectListVo objectListVo : newObjectList) {
  233. objectListVo.setExecuterCount(newExecuterList.size());
  234. objectListVo.setExecuterList(newExecuterList);
  235. }
  236. }
  237. else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.TEACHER_EVALUATE_CLASS.getCode())) {//任课教师对班级评价
  238. EvaluateManage manage = evaluateManageMapper.selectById(dto.getEvaluateManageId());
  239. newObjectList = evaluateObjectMapper.getNewObjectList(dto);
  240. List<ClassTeacherVo> classTeacher = courseTableMapper.getClassTeacherIds(
  241. new ClassTeacherDto() {{
  242. setStartDate(manage.getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
  243. setGradeId(dto.getGradeId());
  244. setEndDate(manage.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
  245. }}
  246. );
  247. List<User> userList = userService.list(
  248. new MPJLambdaWrapper<User>()
  249. .select(User::getId)
  250. .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
  251. .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId)
  252. );
  253. Map<Long, String> userMap = userList.stream().collect(Collectors.toMap(User::getId, User::getName));
  254. for (EvaluateObjectListVo objectListVo : newObjectList) {
  255. List<EvaluateExecuterVo> currentExecuterList = new ArrayList<>();
  256. for (ClassTeacherVo executerVo : classTeacher) {
  257. if (!objectListVo.getObjectId().equals(executerVo.getClassId().toString())) {
  258. continue;
  259. }
  260. String[] teacherIds = executerVo.getTeacherId().split(",");
  261. for (String teacherId : teacherIds) {
  262. EvaluateExecuterVo evaluateExecuterVo = new EvaluateExecuterVo();
  263. evaluateExecuterVo.setExecuterId(teacherId);
  264. evaluateExecuterVo.setEvaluateObjectId(objectListVo.getObjectId());
  265. evaluateExecuterVo.setExecuterName(userMap.get(Long.parseLong(teacherId.trim())));
  266. evaluateExecuterVo.setEvaluateManageId(dto.getEvaluateManageId().toString());
  267. currentExecuterList.add(evaluateExecuterVo);
  268. }
  269. }
  270. objectListVo.setExecuterCount(currentExecuterList.size());
  271. objectListVo.setExecuterList(currentExecuterList);
  272. }
  273. }
  274. else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.STUDENT_EVALUATE_COURSE_TEACHER.getCode())) {//入参评价类型是学生评价教师
  275. EvaluateManage manage = evaluateManageMapper.selectById(dto.getEvaluateManageId());
  276. //查询这个年级的所有学生
  277. List<EvaluateExecuterVo> newExecuterList = evaluateObjectMapper.getNewExecuterList(dto);
  278. Map<String, List<EvaluateExecuterVo>> classExcuterMap = newExecuterList.stream().collect(Collectors.groupingBy(EvaluateExecuterVo::getClassId));
  279. //查询每个班级的任课教师
  280. dto.setStartTime(manage.getStartTime());
  281. dto.setEndTime(manage.getEndTime());
  282. List<ClassTeachersListVo> classTeachers = evaluateObjectMapper.getClassTeachers(dto);
  283. List<ClassTeachersListVo> collect = classTeachers.stream().filter(p -> StrUtil.isNotEmpty(p.getTeacherId())).collect(Collectors.collectingAndThen(
  284. Collectors.toMap(
  285. ClassTeachersListVo::getUniqueKey,
  286. p -> p,
  287. (existing, replacement) -> existing
  288. ),
  289. map -> new ArrayList<>(map.values())
  290. ));
  291. Map<String, List<ClassTeachersListVo>> classTeacherMap = collect.stream().collect(Collectors.groupingBy(ClassTeachersListVo::getTeacherId));
  292. List<User> userList = userService.list(
  293. new MPJLambdaWrapper<User>()
  294. .select(User::getId)
  295. .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
  296. .innerJoin(BaseTeacher.class, BaseTeacher::getUserId, User::getId)
  297. );
  298. Map<Long, String> userMap = userList.stream().collect(Collectors.toMap(User::getId, User::getName));
  299. for (String teacherId : classTeacherMap.keySet()) {
  300. if (!userMap.containsKey(Long.parseLong(teacherId.trim()))) {
  301. continue;
  302. }
  303. if ("15331003902918".equals(teacherId)) {
  304. System.out.println(teacherId);
  305. }
  306. EvaluateObjectListVo objectListVo = new EvaluateObjectListVo();
  307. Set<Long> classIds = classTeacherMap.get(teacherId).stream().map(ClassTeachersListVo::getClassId).collect(Collectors.toSet());
  308. List<EvaluateExecuterVo> currentExecuterList = new ArrayList<>();
  309. for (Long classId : classIds) {
  310. List<EvaluateExecuterVo> studentList = classExcuterMap.get(classId.toString());
  311. if (studentList == null) {
  312. continue;
  313. }
  314. if ("random15".equals(dto.getExecuterCount()) && !studentList.isEmpty()) {
  315. List<Integer> randomList = new ArrayList<>();
  316. Random random = new Random();
  317. while (randomList.size() < 15) {
  318. int nextInt = random.nextInt(studentList.size());
  319. if (!randomList.contains(nextInt)) {
  320. randomList.add(nextInt);
  321. }
  322. }
  323. for (Integer i : randomList) {
  324. currentExecuterList.add(studentList.get(i));
  325. }
  326. } else {
  327. currentExecuterList.addAll(studentList);
  328. }
  329. }
  330. objectListVo.setObjectId(teacherId.trim());
  331. objectListVo.setObjectName(userMap.get(Long.parseLong(teacherId.trim())));
  332. objectListVo.setExecuterCount(currentExecuterList.size());
  333. objectListVo.setExecuterList(currentExecuterList);
  334. newObjectList.add(objectListVo);
  335. }
  336. }
  337. else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.STU_SELF_EVALUATE.getCode())){//学生自评
  338. BaseStudentUserPageDto studentUserPageDto = new BaseStudentUserPageDto();
  339. studentUserPageDto.setGradeId(dto.getGradeId());
  340. List<Long> classIds = new ArrayList<>();
  341. classIds.add(dto.getClassId());
  342. studentUserPageDto.setClassIds(classIds);
  343. List<BaseStudentUserPageVo> studentList = studentService.getStudentList(studentUserPageDto);
  344. for (BaseStudentUserPageVo student : studentList) {
  345. EvaluateObjectListVo object = new EvaluateObjectListVo();
  346. object.setObjectName(student.getName());
  347. object.setObjectId(student.getId());
  348. object.setGradeId(student.getGradeId().toString());
  349. object.setGradeName(student.getGradeName());
  350. object.setClassId(student.getClassId().toString());
  351. List<EvaluateExecuterVo> executerList = new ArrayList<>();
  352. EvaluateExecuterVo executerVo = new EvaluateExecuterVo();
  353. executerVo.setEvaluateObjectId(student.getId());
  354. executerVo.setExecuterName(student.getName());
  355. executerVo.setExecuterId(student.getId());
  356. executerVo.setGradeId(student.getGradeId().toString());
  357. executerVo.setClassId(student.getClassId().toString());
  358. executerList.add(executerVo);
  359. object.setExecuterList(executerList);
  360. object.setExecuterCount(executerList.size());
  361. newObjectList.add(object);
  362. }
  363. }
  364. else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.CLASS_STU_EVALUATE.getCode())){//班级学生交叉互评
  365. BaseStudentUserPageDto studentUserPageDto = new BaseStudentUserPageDto();
  366. studentUserPageDto.setGradeId(dto.getGradeId());
  367. List<Long> classIds = new ArrayList<>();
  368. classIds.add(dto.getClassId());
  369. studentUserPageDto.setClassIds(classIds);
  370. List<BaseStudentUserPageVo> studentList = studentService.getStudentList(studentUserPageDto);
  371. Map<Long, List<BaseStudentUserPageVo>> classStudentMap = studentList.stream().collect(Collectors.groupingBy(BaseStudentUserPageVo::getClassId));
  372. for (BaseStudentUserPageVo student : studentList) {
  373. EvaluateObjectListVo object = new EvaluateObjectListVo();
  374. object.setObjectName(student.getName());
  375. object.setObjectId(student.getId());
  376. object.setGradeId(student.getGradeId().toString());
  377. object.setGradeName(student.getGradeName());
  378. object.setClassId(student.getClassId().toString());
  379. List<BaseStudentUserPageVo> classStudentList = classStudentMap.get(student.getClassId());
  380. List<EvaluateExecuterVo> executerList = new ArrayList<>();
  381. if(classStudentList != null){
  382. for (BaseStudentUserPageVo otherStudent : classStudentList) {
  383. if(otherStudent.getId().equals(student.getId())){
  384. continue;
  385. }
  386. EvaluateExecuterVo executerVo = new EvaluateExecuterVo();
  387. executerVo.setEvaluateObjectId(student.getId());
  388. executerVo.setExecuterName(otherStudent.getName());
  389. executerVo.setExecuterId(otherStudent.getId());
  390. executerVo.setGradeId(otherStudent.getGradeId().toString());
  391. executerVo.setClassId(otherStudent.getClassId().toString());
  392. executerList.add(executerVo);
  393. }
  394. }
  395. object.setExecuterList(executerList);
  396. object.setExecuterCount(executerList.size());
  397. newObjectList.add(object);
  398. }
  399. }
  400. else if (dto.getEvaluateType() != null && dto.getEvaluateType().equals(EvaluateTypeEnum.TEA_EVALUATE_STU.getCode())){//教师评价班级学生
  401. BaseStudentUserPageDto studentUserPageDto = new BaseStudentUserPageDto();
  402. studentUserPageDto.setGradeId(dto.getGradeId());
  403. List<Long> classIds = new ArrayList<>();
  404. classIds.add(dto.getClassId());
  405. studentUserPageDto.setClassIds(classIds);
  406. List<BaseStudentUserPageVo> studentList = studentService.getStudentList(studentUserPageDto);
  407. }
  408. return newObjectList;
  409. }
  410. }