diff --git a/src/main/java/cn/teammodel/controller/admin/controller/TeacherController.java b/src/main/java/cn/teammodel/controller/admin/controller/TeacherController.java index 5b80c65..22900ae 100644 --- a/src/main/java/cn/teammodel/controller/admin/controller/TeacherController.java +++ b/src/main/java/cn/teammodel/controller/admin/controller/TeacherController.java @@ -2,6 +2,7 @@ package cn.teammodel.controller.admin.controller; import cn.teammodel.common.R; import cn.teammodel.controller.admin.service.TeacherService; +import cn.teammodel.model.dto.admin.common.RecordDto; import cn.teammodel.model.dto.admin.teacher.CoreUser; import cn.teammodel.model.dto.admin.teacher.GpTeacherDto; import cn.teammodel.model.dto.admin.teacher.GpTeacherRequest; @@ -154,4 +155,10 @@ public class TeacherController { teacherService.saveFiveScores(teacherDto,request); return R.success("保存成功"); } + @PostMapping("getStudentRecords") + @ApiOperation("获取学生所有评价记录") + public R> getTeacherRecord(@Valid @RequestBody RecordDto recordDto, HttpServletRequest request) { + Map res = teacherService.getTeacherRecord(recordDto,request); + return R.success(res); + } } diff --git a/src/main/java/cn/teammodel/controller/admin/service/TeacherService.java b/src/main/java/cn/teammodel/controller/admin/service/TeacherService.java index d1ce266..65178c9 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/TeacherService.java +++ b/src/main/java/cn/teammodel/controller/admin/service/TeacherService.java @@ -1,5 +1,7 @@ package cn.teammodel.controller.admin.service; +import cn.teammodel.model.dto.admin.Moral.MoralDto; +import cn.teammodel.model.dto.admin.common.RecordDto; import cn.teammodel.model.dto.admin.teacher.CoreUser; import cn.teammodel.model.dto.admin.teacher.GpTeacherDto; import cn.teammodel.model.dto.admin.teacher.GpTeacherRequest; @@ -7,6 +9,7 @@ import cn.teammodel.model.dto.admin.teacher.TeacherDto; import cn.teammodel.model.entity.school.Teacher; import cn.teammodel.model.entity.teacher.PtTeacherInfo; import cn.teammodel.model.vo.admin.GpTeacherVo; +import cn.teammodel.model.vo.appraise.RecordVo; import javax.servlet.http.HttpServletRequest; import java.util.LinkedHashMap; @@ -34,4 +37,5 @@ public interface TeacherService { void dataSync(GpTeacherRequest gpTeacherRequest, HttpServletRequest request); List > getPtTeacher(TeacherDto teacherDto, HttpServletRequest request); void saveFiveScores(TeacherDto teacherDto, HttpServletRequest request); + Map getTeacherRecord(RecordDto recordDto, HttpServletRequest request); } diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/FiveEducationServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/FiveEducationServiceImpl.java index cd54f6f..7a4db48 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/FiveEducationServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/FiveEducationServiceImpl.java @@ -25,6 +25,8 @@ public class FiveEducationServiceImpl implements FiveEducationService { @Autowired private MoralEducationService moralLaborService; @Autowired + private TeacherService teacherService; + @Autowired private ArtService artService; @Override public Map getAnalysis(FiveDto dto, HttpServletRequest request) { @@ -60,6 +62,12 @@ public class FiveEducationServiceImpl implements FiveEducationService { integratedResult.put("laborAnalysis", moralLaborService.getAnalysis(dto.getLaborDto(), request)); }, executor)); } + // 5. 学生评价记录(异步执行) + if (dto.getRecordDto() != null) { + futures.add(CompletableFuture.runAsync(() -> { + integratedResult.put("studentRecord", teacherService.getTeacherRecord(dto.getRecordDto(), request)); + })); + } // 等待所有异步任务完成 CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java index 18a7389..d47d3a6 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/LaborEducationServiceImpl.java @@ -202,15 +202,6 @@ public class LaborEducationServiceImpl implements LaborEducationService { resMap.put("rightCount", rightCount);//表扬评价数 resMap.put("wrongCount", wrongCount);//待改进评价数 resMap.put("uniqueTargetIdCount", uniqueTargetIdCount);//评价学生数 - //处理单个学生评价内容列表信息 - List studentAppraise = new ArrayList<>(); - if (laborDto.getStudentId() != null) { - studentAppraise = res.stream() - .filter(record -> record.getTargetId().equals(laborDto.getStudentId())) - .collect(Collectors.toList()); - resMap.put("studentAppraise", studentAppraise);//学生评价内容 - //res= appraiseRecordRepository.getRecords(String.format(PK.PK_APPRAISE_RECORD, laborDto.getCode()),laborDto.getAcademicYearId(), laborDto.getClassId(), laborDto.getStudentId(),"德育"); - } Appraise appraise = appraiseRepository.findAppraiseBySchoolIdAndPeriodIdAndCode(schoolId, periodId, PK.PK_APPRAISE); if (appraise != null) { appraise = evaluationService.buildTree(appraise); diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/MoralEducationServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/MoralEducationServiceImpl.java index 57c0d77..c3f831b 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/MoralEducationServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/MoralEducationServiceImpl.java @@ -201,16 +201,6 @@ public class MoralEducationServiceImpl implements MoralEducationService { resMap.put("rightCount", rightCount);//表扬评价数 resMap.put("wrongCount", wrongCount);//待改进评价数 resMap.put("uniqueTargetIdCount", uniqueTargetIdCount);//评价学生数 - - //处理单个学生评价内容列表信息 - List studentAppraise = new ArrayList<>(); - if (moralDto.getStudentId() != null) { - studentAppraise = res.stream() - .filter(record -> record.getTargetId().equals(moralDto.getStudentId())) - .collect(Collectors.toList()); - resMap.put("studentAppraise", studentAppraise);//学生评价内容 - //res= appraiseRecordRepository.getRecords(String.format(PK.PK_APPRAISE_RECORD, laborDto.getCode()),laborDto.getAcademicYearId(), laborDto.getClassId(), laborDto.getStudentId(),"德育"); - } Appraise appraise = appraiseRepository.findAppraiseBySchoolIdAndPeriodIdAndCode(schoolId, periodId, PK.PK_APPRAISE); if (appraise != null) { appraise = evaluationService.buildTree(appraise); diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java index b899dae..1e285b6 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java @@ -4,8 +4,11 @@ import cn.teammodel.common.ErrorCode; import cn.teammodel.common.PK; import cn.teammodel.config.exception.ServiceException; import cn.teammodel.controller.admin.service.TeacherService; +import cn.teammodel.model.dto.admin.Moral.MoralDto; +import cn.teammodel.model.dto.admin.common.RecordDto; import cn.teammodel.model.dto.admin.teacher.*; import cn.teammodel.model.entity.User; +import cn.teammodel.model.entity.common.Exam; import cn.teammodel.model.entity.common.GroupList; import cn.teammodel.model.entity.school.*; import cn.teammodel.model.entity.teacher.HonorInfo; @@ -13,6 +16,7 @@ import cn.teammodel.model.entity.teacher.PtTeacherInfo; import cn.teammodel.model.vo.admin.GpTeacherVo; import cn.teammodel.model.vo.admin.SugVo; import cn.teammodel.model.vo.admin.TeacherGradeVo; +import cn.teammodel.model.vo.appraise.RecordVo; import cn.teammodel.repository.*; import cn.teammodel.security.utils.SecurityUtil; import cn.teammodel.test.AsyncTeacherService; @@ -65,6 +69,8 @@ public class TeacherServiceImpl implements TeacherService { private PtTeacherRepository ptTeacherRepository; @Resource private TeacherRepository teacherRepository; + @Resource + private AppraiseRecordRepository appraiseRecordRepository; /** * 学校试卷 */ @@ -2450,6 +2456,26 @@ public class TeacherServiceImpl implements TeacherService { } } + @Override + public Map getTeacherRecord(RecordDto recordDto, HttpServletRequest request) { + Map resMap = new HashMap<>(); + List res; + List classIds = new ArrayList<>(); + try { + classIds.add(recordDto.getClassId()); + res= appraiseRecordRepository.latestRecords(String.format(PK.PK_APPRAISE_RECORD, recordDto.getCode()),recordDto.getAcademicYearId(), recordDto.getStartTime(), recordDto.getEndTime(),null,classIds); + if(recordDto.getStudentId() != null) { + res = res.stream() + .filter(record -> record.getTargetId().equals(recordDto.getStudentId())) + .collect(Collectors.toList()); + } + resMap.put("res", res); + }catch (Exception e){ + throw new ServiceException(ErrorCode.SYSTEM_ERROR.getCode(), "数据查询异常"); + } + return resMap; + } + private Double parseScore(Object obj, double defaultValue) { if (obj instanceof Number) { return ((Number) obj).doubleValue(); diff --git a/src/main/java/cn/teammodel/model/dto/admin/common/FiveDto.java b/src/main/java/cn/teammodel/model/dto/admin/common/FiveDto.java index b481c98..eeb7dfc 100644 --- a/src/main/java/cn/teammodel/model/dto/admin/common/FiveDto.java +++ b/src/main/java/cn/teammodel/model/dto/admin/common/FiveDto.java @@ -12,5 +12,6 @@ public class FiveDto { private LaborDto laborDto; private MoralDto moralDto; private ArtAnalysisDto artAnalysisDto; + private RecordDto recordDto; } diff --git a/src/main/java/cn/teammodel/model/dto/admin/common/RecordDto.java b/src/main/java/cn/teammodel/model/dto/admin/common/RecordDto.java new file mode 100644 index 0000000..d2c3398 --- /dev/null +++ b/src/main/java/cn/teammodel/model/dto/admin/common/RecordDto.java @@ -0,0 +1,16 @@ +package cn.teammodel.model.dto.admin.common; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class RecordDto { + + @ApiModelProperty("学校编码") + public String code; + public Long startTime; + public Long endTime; + private String academicYearId; + private String classId; + private String studentId; +}