|
@@ -0,0 +1,817 @@
|
|
|
+package com.ssj.service.kmt.correctsys;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.LinkedHashMap;
|
|
|
+import java.util.LinkedList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.ssj.bean.sys.homework.domain.HomeworkPicture;
|
|
|
+import com.ssj.bean.sys.homework.domain.HomeworkPictureCorrect;
|
|
|
+import com.ssj.bean.sys.homework.domain.HomeworkPictureErrorCheck;
|
|
|
+import com.ssj.bean.sys.homework.domain.HomeworkPictureVagueRecord;
|
|
|
+import com.ssj.bean.sys.homework.domain.SconTeacherCorrectRecord;
|
|
|
+import com.ssj.bean.weixin.libmy.domain.TbLibManager;
|
|
|
+import com.ssj.bean.weixin.zyb.domain.ZuoybStudentPush;
|
|
|
+import com.ssj.conch.push.util.PushConstants;
|
|
|
+import com.ssj.dao.kmt.correctsys.CorrectSysQueryDao;
|
|
|
+import com.ssj.enums.XinGePushBusinessTypeEnum;
|
|
|
+import com.ssj.enums.XinGePushMessageTypeEnum;
|
|
|
+import com.ssj.framework.core.util.ResponseConstant;
|
|
|
+import com.ssj.framework.core.util.ResponseEntity;
|
|
|
+import com.ssj.framework.core.util.StringUtil;
|
|
|
+import com.ssj.framework.weixin.util.DateUtil;
|
|
|
+import com.ssj.service.conch.schoolmaster.util.Constant;
|
|
|
+import com.ssj.service.kmt.constant.KnowledgeVersion;
|
|
|
+import com.ssj.service.kmt.correctsys.dto.HomeworkCheckDto;
|
|
|
+import com.ssj.service.kmt.correctsys.dto.HomeworkCheckKnowDetailDto;
|
|
|
+import com.ssj.service.kmt.correctsys.dto.HomeworkCheckStudentDto;
|
|
|
+import com.ssj.service.kmt.correctsys.dto.HomeworkCheckSubjectDto;
|
|
|
+import com.ssj.service.kmt.correctsys.dto.HomeworkExerciseQuestionsDto;
|
|
|
+import com.ssj.service.kmt.correctsys.dto.HomeworkPictureCheckDto;
|
|
|
+import com.ssj.service.kmt.correctsys.dto.HomeworkPictureCheckHowDetailDto;
|
|
|
+import com.ssj.service.kmt.correctsys.dto.HomeworkPictureDto;
|
|
|
+import com.ssj.service.kmt.correctsys.request.CorrectCheckReq;
|
|
|
+import com.ssj.service.kmt.correctsys.service.KmtCorrectSysService;
|
|
|
+import com.ssj.service.kmt.dto.ExerciseQuestionAnswer4CorrectDTO;
|
|
|
+import com.ssj.service.kmt.dto.ExerciseQuestionAnswerDto;
|
|
|
+import com.ssj.service.kmt.dto.ExerciseQuestionDto;
|
|
|
+import com.ssj.service.sys.homework.service.HomeworkPictureCorrectService;
|
|
|
+import com.ssj.service.sys.homework.service.HomeworkPictureErrorCheckService;
|
|
|
+import com.ssj.service.sys.homework.service.HomeworkPictureService;
|
|
|
+import com.ssj.service.sys.homework.service.HomeworkPictureVagueRecordService;
|
|
|
+import com.ssj.service.sys.homework.service.SconTeacherCorrectRecordService;
|
|
|
+import com.ssj.service.sys.homework.vo.KnowledgeHowDetailPointDto;
|
|
|
+import com.ssj.service.sys.homework.vo.KnowledgeHowDetailsDto;
|
|
|
+import com.ssj.service.sys.homework.vo.KnowledgeHowDto;
|
|
|
+import com.ssj.service.sys.push.service.SconXingeService;
|
|
|
+import com.ssj.service.sys.template.CommentTemplateMapperService;
|
|
|
+import com.ssj.service.weixin.library.service.IBookManagerService;
|
|
|
+import com.ssj.service.weixin.zuoyb.service.ZuoybStudentPushSerivce;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author Mount Liu
|
|
|
+ * @date 2019/5/17
|
|
|
+ */
|
|
|
+@Service
|
|
|
+@Transactional
|
|
|
+public class KmtCorrectSysServiceImpl implements KmtCorrectSysService {
|
|
|
+ final static int SUCCESS = 1;
|
|
|
+ final static int FAIL = 2;
|
|
|
+ final static String SUPER_MANAGE = "superManager";
|
|
|
+ final static String MANAGE = "manager";
|
|
|
+ @Autowired
|
|
|
+ private IBookManagerService managerService;
|
|
|
+ @Autowired
|
|
|
+ private CorrectSysQueryDao correctSysQueryDao;
|
|
|
+ @Autowired
|
|
|
+ private HomeworkPictureService homeworkPictureService;
|
|
|
+ @Autowired
|
|
|
+ private ZuoybStudentPushSerivce pushService;
|
|
|
+ @Autowired
|
|
|
+ private KnowledgeVersion knowledgeVersion;
|
|
|
+ @Autowired
|
|
|
+ private HomeworkPictureVagueRecordService homeworkPictureVagueRecordService;
|
|
|
+ @Autowired
|
|
|
+ private HomeworkPictureCorrectService homeworkPictureCorrectService;
|
|
|
+ @Autowired
|
|
|
+ private SconXingeService sconXingeService;
|
|
|
+ @Autowired
|
|
|
+ private CommentTemplateMapperService commentTemplateMapperService;
|
|
|
+ @Autowired
|
|
|
+ private SconTeacherCorrectRecordService sconTeacherCorrectRecordService;
|
|
|
+ @Autowired
|
|
|
+ private HomeworkPictureErrorCheckService homeworkPictureErrorCheckService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<HomeworkPictureCheckDto> findCheckHomeworkPictureList(String homeworkId, String teacherId) {
|
|
|
+ int teacherType = managerService.findCorrectOrKnowRoleByUserId(teacherId);
|
|
|
+ List<HomeworkPictureCheckDto> result = null;
|
|
|
+ if (teacherType == Constant.CORRECT_KNOW_TYPE) {
|
|
|
+ result = this.findKnowledgeCheckHomeworkPictureList(homeworkId, teacherId);
|
|
|
+ } else if (teacherType == Constant.KMT_122_TEACHER_TYPE) {
|
|
|
+ result = this.findCorrectCheckHomeworkPictureList(homeworkId, teacherId);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 对象转换
|
|
|
+ *
|
|
|
+ * @param homeworkPictureDto
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private HomeworkPicture copyHomeworkPictureDto2HomeworkPicture(HomeworkPictureDto homeworkPictureDto) {
|
|
|
+ HomeworkPicture homeworkPicture = null;
|
|
|
+ if (homeworkPictureDto != null) {
|
|
|
+ homeworkPicture = new HomeworkPicture();
|
|
|
+ homeworkPicture.setId(homeworkPictureDto.getId());
|
|
|
+ homeworkPicture.setIsNeedingKnow(homeworkPictureDto.getIsNeedingKnow());
|
|
|
+ homeworkPicture.setIsKnowFeedback(homeworkPictureDto.getIsKnowFeedback());
|
|
|
+ homeworkPicture.setHomeworkRecordId(homeworkPictureDto.getHomeworkRecordId());
|
|
|
+ homeworkPicture.setErrorReason(homeworkPictureDto.getErrorReason());
|
|
|
+ homeworkPicture.setChecker(homeworkPictureDto.getChecker());
|
|
|
+ homeworkPicture.setCheckDate(homeworkPictureDto.getCheckDate());
|
|
|
+ homeworkPicture.setCreateTime(homeworkPictureDto.getCreateTime());
|
|
|
+ homeworkPicture.setSubject(homeworkPictureDto.getSubject());
|
|
|
+ homeworkPicture.setIsMark(homeworkPictureDto.getIsMark());
|
|
|
+ homeworkPicture.setIsDelete(homeworkPictureDto.getIsDelete());
|
|
|
+ homeworkPicture.setIsFeedback(homeworkPictureDto.getIsFeedback());
|
|
|
+ homeworkPicture.setFileKey(homeworkPictureDto.getFileKey());
|
|
|
+ homeworkPicture.setCorrectedPictureUrl(homeworkPictureDto.getCorrectedPictureUrl());
|
|
|
+ homeworkPicture.setTeacherId(homeworkPictureDto.getTeacherId());
|
|
|
+ homeworkPicture.setKnowTeacherId(homeworkPictureDto.getKnowTeacherId());
|
|
|
+ homeworkPicture.setIsComposition(homeworkPictureDto.getIsComposition());
|
|
|
+ homeworkPicture.setCompositionComment(homeworkPictureDto.getCompositionComment());
|
|
|
+ homeworkPicture.setIsCheckerCorrect(homeworkPictureDto.getIsCorrect());
|
|
|
+ if (homeworkPictureDto.getIsCheckError() != null) {
|
|
|
+ homeworkPicture.setIsCheckError(homeworkPictureDto.getIsCheckError());
|
|
|
+ }
|
|
|
+ homeworkPicture.setIsCorrect(homeworkPictureDto.getIsCorrect());
|
|
|
+ }
|
|
|
+ return homeworkPicture;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加模糊不质检记录
|
|
|
+ *
|
|
|
+ * @param result
|
|
|
+ * @param id
|
|
|
+ * @param path
|
|
|
+ */
|
|
|
+ private void addVagueNoCheckResult(List<HomeworkPictureCheckDto> result, String id, String path, int secondType) {
|
|
|
+ HomeworkPictureCheckDto vagueCheckDto = new HomeworkPictureCheckDto();
|
|
|
+ //无需质检
|
|
|
+ vagueCheckDto.setType(4);
|
|
|
+ vagueCheckDto.setSecondType(secondType);
|
|
|
+ vagueCheckDto.setHomeworkPictureId(id);
|
|
|
+ vagueCheckDto.setPath(path);
|
|
|
+ result.add(vagueCheckDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取作业图片的质检作业数据
|
|
|
+ *
|
|
|
+ * @param homeworkPicture
|
|
|
+ * @param exerciseQuestionDtoMap
|
|
|
+ * @param homeworkCheckKnowDetailDtoMap
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private HomeworkPictureCheckDto getFeedbackHomeworkPictureData(HomeworkPicture homeworkPicture,
|
|
|
+ Map<String, List<HomeworkExerciseQuestionsDto>> exerciseQuestionDtoMap,
|
|
|
+ Map<String, List<HomeworkCheckKnowDetailDto>> homeworkCheckKnowDetailDtoMap) {
|
|
|
+ HomeworkPictureCheckDto homeworkPictureCheckDto = new HomeworkPictureCheckDto();
|
|
|
+ homeworkPictureCheckDto.setHomeworkPictureId(homeworkPicture.getId());
|
|
|
+ homeworkPictureCheckDto.setPath(homeworkPicture.getFileKey());
|
|
|
+ if (StringUtils.isNotBlank(homeworkPicture.getCorrectedPictureUrl())) {
|
|
|
+ homeworkPictureCheckDto.setPath(homeworkPicture.getCorrectedPictureUrl());
|
|
|
+ }
|
|
|
+ if (homeworkPicture.getCheckDate() != null) {
|
|
|
+ //有质检时间则为质检过
|
|
|
+ homeworkPictureCheckDto.setType(1);
|
|
|
+ }
|
|
|
+ if (homeworkPicture.getIsCheckError() == 1) {
|
|
|
+ //质检错误设置为质检错误
|
|
|
+ homeworkPictureCheckDto.setType(2);
|
|
|
+ homeworkPictureCheckDto.setReason(homeworkPicture.getErrorReason());
|
|
|
+ homeworkPictureCheckDto.setChecker(homeworkPicture.getChecker());
|
|
|
+ homeworkPictureCheckDto.setCheckTime(DateUtil.format_yyyyMMdd(homeworkPicture.getCheckDate()));
|
|
|
+ }
|
|
|
+
|
|
|
+ //作文批改内容
|
|
|
+ if (homeworkPicture.getIsComposition() == 1) {
|
|
|
+ homeworkPictureCheckDto.setCompositionCommentModuleList(commentTemplateMapperService.getCompositionCommentModuleDTOList(homeworkPicture.getId()));
|
|
|
+ }
|
|
|
+
|
|
|
+ //答案
|
|
|
+ List<HomeworkExerciseQuestionsDto> answerTmp = null;
|
|
|
+ if (exerciseQuestionDtoMap != null) {
|
|
|
+ answerTmp = exerciseQuestionDtoMap.get(homeworkPicture.getId());
|
|
|
+ }
|
|
|
+ if (answerTmp != null) {
|
|
|
+ for (HomeworkExerciseQuestionsDto answer : answerTmp) {
|
|
|
+ //对错记录与答案记录匹配
|
|
|
+ if (StringUtils.isBlank(answer.getSpaceIndex())) {
|
|
|
+ if (StringUtils.isBlank(answer.getCorrectSpaceIndex())) {
|
|
|
+ for (ExerciseQuestionAnswerDto dto : answer.getAnswers()) {
|
|
|
+ dto.setSelectedType(answer.getType());
|
|
|
+ }
|
|
|
+ answer.setAllAnswerSelectedType(answer.getType());
|
|
|
+ } else {
|
|
|
+ String[] correctSpaceIndexArray = answer.getCorrectSpaceIndex().split("、");
|
|
|
+ for (String index : correctSpaceIndexArray) {
|
|
|
+ int i = Integer.parseInt(index);
|
|
|
+ if (i >= 1 && answer.getAnswers() != null && i <= answer.getAnswers().size()) {
|
|
|
+ ExerciseQuestionAnswerDto dto = answer.getAnswers().get(i - 1);
|
|
|
+ dto.setSelectedType(2);
|
|
|
+ }
|
|
|
+ answer.setAnswerSelectedType(Integer.parseInt(index), 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ String[] answerArray = answer.getSpaceIndex().split("、");
|
|
|
+ for (String index : answerArray) {
|
|
|
+ int i = Integer.parseInt(index);
|
|
|
+ if (i >= 1 && answer.getAnswers() != null && i <= answer.getAnswers().size()) {
|
|
|
+ ExerciseQuestionAnswerDto dto = answer.getAnswers().get(i - 1);
|
|
|
+ dto.setSelectedType(1);
|
|
|
+ }
|
|
|
+ answer.setAnswerSelectedType(Integer.parseInt(index), 1);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(answer.getCorrectSpaceIndex())) {
|
|
|
+ String[] correctSpaceIndexArray = answer.getCorrectSpaceIndex().split("、");
|
|
|
+ for (String index : correctSpaceIndexArray) {
|
|
|
+ int i = Integer.parseInt(index);
|
|
|
+ if (i >= 1 && answer.getAnswers() != null && i <= answer.getAnswers().size()) {
|
|
|
+ ExerciseQuestionAnswerDto dto = answer.getAnswers().get(i - 1);
|
|
|
+ dto.setSelectedType(2);
|
|
|
+ }
|
|
|
+ answer.setAnswerSelectedType(Integer.parseInt(index), 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Map<String, List<ExerciseQuestionDto>>> temp1 =
|
|
|
+ answerTmp.stream().collect(Collectors.groupingBy(ExerciseQuestionDto::getBookCourseId,
|
|
|
+ LinkedHashMap::new,
|
|
|
+ Collectors.groupingBy(ExerciseQuestionDto::getBigQuestionIndex, LinkedHashMap::new,
|
|
|
+ Collectors.toList())));
|
|
|
+// Map<String, List<ExerciseQuestionDto>> temp = exerciseQuestionDtoList.stream().collect(Collectors
|
|
|
+// .groupingBy(ExerciseQuestionDto::getBigQuestionIndex, LinkedHashMap::new, Collectors.toList()));
|
|
|
+ List<ExerciseQuestionAnswer4CorrectDTO> exerciseQuestionAnswer4CorrectDTOList = new ArrayList<>();
|
|
|
+ temp1.forEach((bookCourseId, map) -> {
|
|
|
+ map.forEach((bigQuestionIndex, questionList) -> {
|
|
|
+ ExerciseQuestionAnswer4CorrectDTO exerciseQuestionAnswer4CorrectDTO =
|
|
|
+ new ExerciseQuestionAnswer4CorrectDTO();
|
|
|
+ exerciseQuestionAnswer4CorrectDTO.setBigQuestionIndex(bigQuestionIndex);
|
|
|
+ exerciseQuestionAnswer4CorrectDTO.setQuestionList(questionList);
|
|
|
+ exerciseQuestionAnswer4CorrectDTOList.add(exerciseQuestionAnswer4CorrectDTO);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ homeworkPictureCheckDto.setAnswers(exerciseQuestionAnswer4CorrectDTOList);
|
|
|
+ }
|
|
|
+ //手动勾选的知识点
|
|
|
+ List<HomeworkCheckKnowDetailDto> howDetailTmp = null;
|
|
|
+ if (homeworkCheckKnowDetailDtoMap != null) {
|
|
|
+ howDetailTmp = homeworkCheckKnowDetailDtoMap.get(homeworkPicture.getId());
|
|
|
+ }
|
|
|
+ if (howDetailTmp != null && howDetailTmp.size() > 0) {
|
|
|
+ homeworkPictureCheckDto.setHowDetail(this.getHomeworkPictureKnowCheckData(homeworkPicture, howDetailTmp));
|
|
|
+ }
|
|
|
+ return homeworkPictureCheckDto;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public HomeworkPictureCheckHowDetailDto getHomeworkPictureKnowCheckData(HomeworkPicture homeworkPicture,
|
|
|
+ List<HomeworkCheckKnowDetailDto> howDetailTmp) {
|
|
|
+ HomeworkPictureCheckHowDetailDto homeworkPictureCheckHowDetailDto = new HomeworkPictureCheckHowDetailDto();
|
|
|
+ homeworkPictureCheckHowDetailDto.setGrade(howDetailTmp.get(0).getGrade());
|
|
|
+ homeworkPictureCheckHowDetailDto.setVersionName(knowledgeVersion.getVersionNameBySubjectAndVersionNum(homeworkPicture.getSubject(), howDetailTmp.get(0).getKnowledgeVersion()));
|
|
|
+ List<HomeworkCheckKnowDetailDto> wrongHowDetailTmp =
|
|
|
+ howDetailTmp.stream().filter(value -> value.getDetailCount() > 0).collect(Collectors.toList());
|
|
|
+ List<HomeworkCheckKnowDetailDto> rightHowDetailTmp =
|
|
|
+ howDetailTmp.stream().filter(value -> (value.getTotalCount() - value.getDetailCount()) > 0).collect(Collectors.toList());
|
|
|
+
|
|
|
+ Map<String, List<HomeworkCheckKnowDetailDto>> howMap =
|
|
|
+ wrongHowDetailTmp.stream().collect(Collectors.groupingBy(HomeworkCheckKnowDetailDto::getHowId,
|
|
|
+ HashMap::new,
|
|
|
+ Collectors.toList()));
|
|
|
+
|
|
|
+ List<KnowledgeHowDto> wrongKnowledges = new ArrayList<>();
|
|
|
+ howMap.forEach((howId, value) -> {
|
|
|
+ KnowledgeHowDto knowHowDTO = new KnowledgeHowDto();
|
|
|
+ knowHowDTO.setHowId(howId);
|
|
|
+ knowHowDTO.setHowName(String.valueOf(value.get(0).getHowName()));
|
|
|
+
|
|
|
+ LinkedHashMap<String, List<HomeworkCheckKnowDetailDto>> knowHowDetailsMap =
|
|
|
+ value.stream().collect(Collectors.groupingBy(temp -> String.valueOf(temp.getHowDetailsId()),
|
|
|
+ LinkedHashMap::new, Collectors.toList()));
|
|
|
+ List<KnowledgeHowDetailsDto> knowHowDetailsDTOList = new ArrayList<>(value.size());
|
|
|
+ knowHowDetailsMap.forEach((knowHowDetailId, value2) -> {
|
|
|
+ if (knowHowDetailId != null) {
|
|
|
+ KnowledgeHowDetailsDto knowHowDetailsDTO = new KnowledgeHowDetailsDto();
|
|
|
+ knowHowDetailsDTO.setDetailId(knowHowDetailId);
|
|
|
+ knowHowDetailsDTO.setDetailName(String.valueOf(value2.get(0).getHowDetailName()));
|
|
|
+ List<KnowledgeHowDetailPointDto> testPointDTOList = new ArrayList<>();
|
|
|
+ value2.forEach(temp4kd -> {
|
|
|
+ String howDetailsKdId = temp4kd.getHowDetailsKdId();
|
|
|
+ if (howDetailsKdId != null) {
|
|
|
+ KnowledgeHowDetailPointDto testPointDTO = new KnowledgeHowDetailPointDto();
|
|
|
+ testPointDTO.setPointId(String.valueOf(howDetailsKdId));
|
|
|
+ testPointDTO.setPointName(String.valueOf(temp4kd.getHowDetailKdName()));
|
|
|
+ testPointDTOList.add(testPointDTO);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ knowHowDetailsDTO.setPoints(testPointDTOList);
|
|
|
+ knowHowDetailsDTOList.add(knowHowDetailsDTO);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ knowHowDTO.setDetails(knowHowDetailsDTOList);
|
|
|
+ wrongKnowledges.add(knowHowDTO);
|
|
|
+ });
|
|
|
+ homeworkPictureCheckHowDetailDto.setWrongHowDetails(wrongKnowledges);
|
|
|
+
|
|
|
+ howMap = rightHowDetailTmp.stream().collect(Collectors.groupingBy(HomeworkCheckKnowDetailDto::getHowId,
|
|
|
+ HashMap::new, Collectors.toList()));
|
|
|
+ List<KnowledgeHowDto> rightKnowledges = new ArrayList<>();
|
|
|
+ howMap.forEach((howId, value) -> {
|
|
|
+ KnowledgeHowDto knowHowDTO = new KnowledgeHowDto();
|
|
|
+ knowHowDTO.setHowId(howId);
|
|
|
+ knowHowDTO.setHowName(String.valueOf(value.get(0).getHowName()));
|
|
|
+
|
|
|
+ LinkedHashMap<String, List<HomeworkCheckKnowDetailDto>> knowHowDetailsMap =
|
|
|
+ value.stream().collect(Collectors.groupingBy(temp -> String.valueOf(temp.getHowDetailsId()),
|
|
|
+ LinkedHashMap::new, Collectors.toList()));
|
|
|
+ List<KnowledgeHowDetailsDto> knowHowDetailsDTOList = new ArrayList<>(value.size());
|
|
|
+ knowHowDetailsMap.forEach((knowHowDetailId, value2) -> {
|
|
|
+ if (knowHowDetailId != null) {
|
|
|
+ KnowledgeHowDetailsDto knowHowDetailsDTO = new KnowledgeHowDetailsDto();
|
|
|
+ knowHowDetailsDTO.setDetailId(knowHowDetailId);
|
|
|
+ knowHowDetailsDTO.setDetailName(String.valueOf(value2.get(0).getHowDetailName()));
|
|
|
+ List<KnowledgeHowDetailPointDto> testPointDTOList = new ArrayList<>();
|
|
|
+ value2.forEach(temp4kd -> {
|
|
|
+ String howDetailsKdId = temp4kd.getHowDetailsKdId();
|
|
|
+ if (howDetailsKdId != null) {
|
|
|
+ KnowledgeHowDetailPointDto testPointDTO = new KnowledgeHowDetailPointDto();
|
|
|
+ testPointDTO.setPointId(String.valueOf(howDetailsKdId));
|
|
|
+ testPointDTO.setPointName(String.valueOf(temp4kd.getHowDetailKdName()));
|
|
|
+ testPointDTOList.add(testPointDTO);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ knowHowDetailsDTO.setPoints(testPointDTOList);
|
|
|
+ knowHowDetailsDTOList.add(knowHowDetailsDTO);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ knowHowDTO.setDetails(knowHowDetailsDTOList);
|
|
|
+ rightKnowledges.add(knowHowDTO);
|
|
|
+ });
|
|
|
+ homeworkPictureCheckHowDetailDto.setRightHowDetails(rightKnowledges);
|
|
|
+ return homeworkPictureCheckHowDetailDto;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<HomeworkPictureCheckDto> findCorrectCheckHomeworkPictureList(String homeworkId, String teacherId) {
|
|
|
+ List<HomeworkPictureDto> homeworkPictures =
|
|
|
+ homeworkPictureService.findCheckHomeworkPictureByHomeworkId(homeworkId);
|
|
|
+ List<HomeworkPictureCheckDto> result = new ArrayList<>();
|
|
|
+ List<HomeworkExerciseQuestionsDto> exerciseQuestionDtos =
|
|
|
+ correctSysQueryDao.findHomeworkCorrectedQuestions(homeworkId);
|
|
|
+ Map<String, List<HomeworkExerciseQuestionsDto>> exerciseQuestionDtoMap =
|
|
|
+ exerciseQuestionDtos.stream().collect(Collectors.groupingBy(HomeworkExerciseQuestionsDto::getHomeworkPictureId));
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(homeworkPictures)) {
|
|
|
+ this.findCheckPicture(result, homeworkPictures.get(0).getVipId(), homeworkPictures.get(0).getCreateTime());
|
|
|
+ for (HomeworkPictureDto homeworkPictureDto : homeworkPictures) {
|
|
|
+ //属性copy
|
|
|
+ HomeworkPicture homeworkPicture = this.copyHomeworkPictureDto2HomeworkPicture(homeworkPictureDto);
|
|
|
+ HomeworkPictureCheckDto homeworkPictureCheckDto = null;
|
|
|
+
|
|
|
+ //模糊和不全的,需要查询模糊表
|
|
|
+ List<HomeworkPictureVagueRecord> vagueRecords =
|
|
|
+ homeworkPictureVagueRecordService.findByHomeworkPictureId(homeworkPicture.getId());
|
|
|
+ Map<Integer, List<HomeworkPictureVagueRecord>> vagueRecordMap = null;
|
|
|
+
|
|
|
+ //把模糊不全表的数据加入返回列表
|
|
|
+ if (homeworkPicture.getIsMark() > 0 && homeworkPicture.getIsMark() < 4) {
|
|
|
+ if (CollectionUtils.isNotEmpty(vagueRecords)) {
|
|
|
+ vagueRecordMap =
|
|
|
+ vagueRecords.stream().collect(Collectors.groupingBy(HomeworkPictureVagueRecord::getType,
|
|
|
+ LinkedHashMap::new, Collectors.toList()));
|
|
|
+ if (homeworkPicture.getIsMark() != 2 && vagueRecords.size() > 1) {
|
|
|
+ //模糊, 图片不是当前的图片的
|
|
|
+ if (vagueRecordMap.containsKey(1)) {
|
|
|
+ for (HomeworkPictureVagueRecord homeworkPictureVagueRecord : vagueRecordMap.get(1)) {
|
|
|
+ if (!homeworkPictureVagueRecord.getPictureVaguePath().equals(homeworkPicture.getFileKey())) {
|
|
|
+ this.addVagueNoCheckResult(result, homeworkPictureVagueRecord.getId(),
|
|
|
+ homeworkPictureVagueRecord.getPictureVaguePath(),
|
|
|
+ this.isOtherTeachersWork(teacherId, homeworkPicture, 1) ? 4 : 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //作业不全, 图片不是当前图片
|
|
|
+ if (vagueRecordMap.containsKey(3)) {
|
|
|
+ for (HomeworkPictureVagueRecord homeworkPictureVagueRecord : vagueRecordMap.get(3)) {
|
|
|
+ if (!homeworkPictureVagueRecord.getPictureVaguePath().equals(homeworkPicture.getFileKey())) {
|
|
|
+ this.addVagueNoCheckResult(result, homeworkPictureVagueRecord.getId(),
|
|
|
+ homeworkPictureVagueRecord.getPictureVaguePath(),
|
|
|
+ this.isOtherTeachersWork(teacherId, homeworkPicture, 1) ? 4 : 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (homeworkPicture.getIsMark() == 2) {
|
|
|
+ //已经有补拍的,把所有模糊不全图片加入列表
|
|
|
+ for (HomeworkPictureVagueRecord homeworkPictureVagueRecord : vagueRecords) {
|
|
|
+ this.addVagueNoCheckResult(result, homeworkPictureVagueRecord.getId(),
|
|
|
+ homeworkPictureVagueRecord.getPictureVaguePath(),
|
|
|
+ this.isOtherTeachersWork(teacherId, homeworkPicture, 1) ? 4
|
|
|
+ : homeworkPictureVagueRecord.getType() == 3 ? 2 :
|
|
|
+ homeworkPictureVagueRecord.getType());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (homeworkPicture.getCheckDate() == null && homeworkPicture.getIsMark() > 0) {
|
|
|
+ if (vagueRecordMap != null) {
|
|
|
+ //作业模糊、不全, 图片需要质检的
|
|
|
+ if (homeworkPicture.getIsMark() == 1 || homeworkPicture.getIsMark() == 3) {
|
|
|
+ HomeworkPictureCheckDto vagueCheckDto = new HomeworkPictureCheckDto();
|
|
|
+ for (HomeworkPictureVagueRecord vr : vagueRecords) {
|
|
|
+ if (vr.getHomeworkPictureId().equals(homeworkPicture.getId()) && vr.getPictureVaguePath().equals(homeworkPicture.getFileKey())) {
|
|
|
+ vagueCheckDto.setHomeworkPictureId("vague_" + vr.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vagueCheckDto.setType(this.isOtherTeachersWork(teacherId, homeworkPicture, 1) ? 4 : 0);
|
|
|
+ vagueCheckDto.setSecondType(this.isOtherTeachersWork(teacherId, homeworkPicture, 1) ? 4 :
|
|
|
+ homeworkPicture.getIsMark());
|
|
|
+ //作业不全设置为2
|
|
|
+ if (homeworkPicture.getIsMark() == 3) {
|
|
|
+ vagueCheckDto.setSecondType(this.isOtherTeachersWork(teacherId, homeworkPicture, 1) ?
|
|
|
+ 4 : 2);
|
|
|
+ }
|
|
|
+ vagueCheckDto.setPath(homeworkPicture.getFileKey());
|
|
|
+ result.add(vagueCheckDto);
|
|
|
+ //作业模糊后补拍
|
|
|
+ } else if (homeworkPicture.getIsMark() == 2) {
|
|
|
+ //批改完才把补拍的显示出来
|
|
|
+ if (homeworkPicture.getIsFeedback() == 1) {
|
|
|
+ homeworkPictureCheckDto = this.getFeedbackHomeworkPictureData(homeworkPicture,
|
|
|
+ exerciseQuestionDtoMap, null);
|
|
|
+ if (this.isOtherTeachersWork(teacherId, homeworkPicture, 1)) {
|
|
|
+ homeworkPictureCheckDto.setType(4);
|
|
|
+ homeworkPictureCheckDto.setSecondType(4);
|
|
|
+ }
|
|
|
+ //质检员已批改
|
|
|
+ if (homeworkPicture.getIsCheckerCorrect() > 0) {
|
|
|
+ homeworkPictureCheckDto.setSecondType(12);
|
|
|
+ }
|
|
|
+ result.add(homeworkPictureCheckDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ homeworkPictureCheckDto = this.getFeedbackHomeworkPictureData(homeworkPicture,
|
|
|
+ exerciseQuestionDtoMap, null);
|
|
|
+ if (homeworkPicture.getIsMark() == 4) {
|
|
|
+ homeworkPictureCheckDto.setSecondType(3);
|
|
|
+ } else {
|
|
|
+ homeworkPictureCheckDto.setSecondType(homeworkPicture.getIsMark());
|
|
|
+ }
|
|
|
+ if (this.isOtherTeachersWork(teacherId, homeworkPicture, 1)) {
|
|
|
+ homeworkPictureCheckDto.setType(4);
|
|
|
+ homeworkPictureCheckDto.setSecondType(4);
|
|
|
+ }
|
|
|
+ //质检员已批改
|
|
|
+ if (homeworkPicture.getIsCheckerCorrect() > 0) {
|
|
|
+ homeworkPictureCheckDto.setSecondType(12);
|
|
|
+ }
|
|
|
+ result.add(homeworkPictureCheckDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ homeworkPictureCheckDto = this.getFeedbackHomeworkPictureData(homeworkPicture,
|
|
|
+ exerciseQuestionDtoMap, null);
|
|
|
+ //非学科图片
|
|
|
+ if (homeworkPicture.getIsDelete() == 1) {
|
|
|
+ homeworkPictureCheckDto.setSecondType(3);
|
|
|
+ } else if (homeworkPicture.getIsMark() == 1) {
|
|
|
+ homeworkPictureCheckDto.setSecondType(1);
|
|
|
+
|
|
|
+ } else if (homeworkPicture.getIsMark() == 3) {
|
|
|
+ homeworkPictureCheckDto.setSecondType(2);
|
|
|
+ } else if (homeworkPicture.getIsMark() != 2) {
|
|
|
+ homeworkPictureCheckDto.setSecondType(homeworkPicture.getIsMark());
|
|
|
+ }
|
|
|
+
|
|
|
+ //其他老师的作业
|
|
|
+ if (this.isOtherTeachersWork(teacherId, homeworkPicture, 1)) {
|
|
|
+ homeworkPictureCheckDto.setType(4);
|
|
|
+ homeworkPictureCheckDto.setSecondType(4);
|
|
|
+ }
|
|
|
+
|
|
|
+ //质检员已批改
|
|
|
+ if (homeworkPicture.getIsCheckerCorrect() > 0) {
|
|
|
+ homeworkPictureCheckDto.setSecondType(12);
|
|
|
+ }
|
|
|
+
|
|
|
+ result.add(homeworkPictureCheckDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<HomeworkPictureCheckDto> findKnowledgeCheckHomeworkPictureList(String homeworkId, String teacherId) {
|
|
|
+ List<HomeworkPictureDto> homeworkPictures =
|
|
|
+ homeworkPictureService.findKnowCheckHomeworkPictureByHomeworkId(homeworkId);
|
|
|
+ List<HomeworkCheckKnowDetailDto> homeworkCheckKnowDetailDtos =
|
|
|
+ correctSysQueryDao.findHomeworkCorrectedKnowledge(homeworkId);
|
|
|
+ Map<String, List<HomeworkCheckKnowDetailDto>> homeworkCheckKnowDetailDtoMap =
|
|
|
+ homeworkCheckKnowDetailDtos.stream().collect(Collectors.groupingBy(HomeworkCheckKnowDetailDto::getHomeworkPictureId));
|
|
|
+ List<HomeworkPictureCheckDto> result = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(homeworkPictures)) {
|
|
|
+ //登记图片
|
|
|
+ this.findCheckPicture(result, homeworkPictures.get(0).getVipId(), homeworkPictures.get(0).getCreateTime());
|
|
|
+ for (HomeworkPictureDto homeworkPictureDto : homeworkPictures) {
|
|
|
+ //属性copy
|
|
|
+ HomeworkPicture homeworkPicture = this.copyHomeworkPictureDto2HomeworkPicture(homeworkPictureDto);
|
|
|
+ HomeworkPictureCheckDto homeworkPictureCheckDto = this.getFeedbackHomeworkPictureData(homeworkPicture
|
|
|
+ , null, homeworkCheckKnowDetailDtoMap);
|
|
|
+ if (this.isOtherTeachersWork(teacherId, homeworkPicture, 2)) {
|
|
|
+ homeworkPictureCheckDto.setType(4);
|
|
|
+ homeworkPictureCheckDto.setSecondType(4);
|
|
|
+ }
|
|
|
+ result.add(homeworkPictureCheckDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 质检列表增加作业登记
|
|
|
+ */
|
|
|
+ private void findCheckPicture(List<HomeworkPictureCheckDto> result, String vipId, Date date) {
|
|
|
+ ZuoybStudentPush push = pushService.findByVipIdAndDate(vipId, DateUtil.format_yyyyMMddHHmmss(date));
|
|
|
+ HomeworkPictureCheckDto homeworkPictureCheckDto = null;
|
|
|
+ if (push != null) {
|
|
|
+ String checkImgs = push.getImg();
|
|
|
+ if (StringUtil.isNotBlank(checkImgs)) {
|
|
|
+ String[] checkImgArray = checkImgs.split(",");
|
|
|
+ for (int i = 0; i < checkImgArray.length; i++) {
|
|
|
+ homeworkPictureCheckDto = new HomeworkPictureCheckDto();
|
|
|
+ homeworkPictureCheckDto.setType(3);
|
|
|
+ homeworkPictureCheckDto.setPath(checkImgArray[i]);
|
|
|
+ homeworkPictureCheckDto.setHomeworkPictureId(vipId + "_" + i);
|
|
|
+ result.add(homeworkPictureCheckDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否是其他老师的作业, true其他老师的作业
|
|
|
+ *
|
|
|
+ * @param teacherId
|
|
|
+ * @param homeworkPicture
|
|
|
+ * @param type
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private boolean isOtherTeachersWork(String teacherId, HomeworkPicture homeworkPicture, int type) {
|
|
|
+ if (type == 1) {
|
|
|
+ //批改老师
|
|
|
+ return !teacherId.equals(homeworkPicture.getTeacherId());
|
|
|
+ } else {
|
|
|
+ //知识点匹配老师
|
|
|
+ return !teacherId.equals(homeworkPicture.getKnowTeacherId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity correctCheck(CorrectCheckReq req, String userId) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ int teacherType = req.getTeacherType();
|
|
|
+ Date now = new Date();
|
|
|
+
|
|
|
+ //如果是模糊图片
|
|
|
+ String checkedUserId = null;
|
|
|
+ if (req.getHomeworkPicId().startsWith("vague_")) {
|
|
|
+ HomeworkPictureVagueRecord record =
|
|
|
+ homeworkPictureVagueRecordService.getById(req.getHomeworkPicId().replace("vague_", ""));
|
|
|
+ req.setHomeworkPicId(record.getHomeworkPictureId());
|
|
|
+ checkedUserId = record.getUserId();
|
|
|
+ }
|
|
|
+
|
|
|
+ HomeworkPictureCorrect homeworkPictureCorrect =
|
|
|
+ homeworkPictureCorrectService.findByHomeworkPictureIdAndType(req.getHomeworkPicId(), teacherType);
|
|
|
+ HomeworkPicture homeworkPicture = homeworkPictureService.getById(req.getHomeworkPicId());
|
|
|
+
|
|
|
+ //校验作业是否已批改
|
|
|
+ if (teacherType == Constant.KMT_122_TEACHER_TYPE) {
|
|
|
+ if (homeworkPicture.getIsFeedback() == 0 && (homeworkPicture.getIsMark() == 0 || homeworkPicture.getIsMark() == 2)) {
|
|
|
+ responseEntity.success(ResponseConstant.CODE_000, "作业未批改,不能质检");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //校验作业是否已匹配
|
|
|
+ if (teacherType == Constant.CORRECT_KNOW_TYPE) {
|
|
|
+ if (homeworkPicture.getIsKnowFeedback() == 0 && homeworkPicture.getIsNeedingKnow() == 1) {
|
|
|
+ responseEntity.success(ResponseConstant.CODE_000, "作业有改动,不能质检");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //作业已经报错,不能再质检通过
|
|
|
+ if (req.getType() == 1 && homeworkPictureCorrect.getIsCheckError() == 1){
|
|
|
+ responseEntity.success(ResponseConstant.CODE_000, "作业已报错,不能质检通过");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ //批改错误
|
|
|
+ if (req.getType() == 2) {
|
|
|
+ homeworkPictureCorrect.setIsCheckError(1);
|
|
|
+ homeworkPictureCorrect.setErrorReason(req.getReason());
|
|
|
+ }
|
|
|
+ //设置结束质检时间
|
|
|
+ homeworkPictureCorrect.setCheckEndTime(now);
|
|
|
+ if (homeworkPictureCorrect.getCheckStartTime() == null) {
|
|
|
+ homeworkPictureCorrect.setCheckStartTime(now);
|
|
|
+ }
|
|
|
+ List<TbLibManager> managers = managerService.findByUserIdAndTypeIn(userId, new int[]{11, 12, 14});
|
|
|
+ for (TbLibManager manager : managers) {
|
|
|
+ //质检员userId
|
|
|
+ homeworkPictureCorrect.setCheckerId(manager.getUserId());
|
|
|
+ switch (manager.getType()) {
|
|
|
+ case 11:
|
|
|
+ homeworkPictureCorrect.setChecker("学习管理员");
|
|
|
+ break;
|
|
|
+ case 12:
|
|
|
+ homeworkPictureCorrect.setChecker("超级管理员");
|
|
|
+ break;
|
|
|
+ case 14:
|
|
|
+ homeworkPictureCorrect.setChecker(manager.getName());
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ homeworkPictureCorrect.setCheckDate(now);
|
|
|
+
|
|
|
+ //保存报错质检表
|
|
|
+ this.saveErrorCheckRecord(homeworkPictureCorrect, homeworkPicture, teacherType, checkedUserId);
|
|
|
+ homeworkPictureCorrectService.save(homeworkPictureCorrect);
|
|
|
+ //批改老师的质检设置为已质检
|
|
|
+ if (teacherType == Constant.KMT_122_TEACHER_TYPE) {
|
|
|
+ homeworkPicture.setIsCorrect(13);
|
|
|
+ }
|
|
|
+ homeworkPictureService.save(homeworkPicture);
|
|
|
+
|
|
|
+ if (req.getType() == 2) {
|
|
|
+ //批改错误,给批改老师发送报错提醒
|
|
|
+ TbLibManager correctTeacher = null;
|
|
|
+ if (8 == teacherType) {
|
|
|
+ List<TbLibManager> libManagerList =
|
|
|
+ managerService.findByUserIdAndTypeIn(homeworkPicture.getTeacherId(), new int[]{8, 11});
|
|
|
+ if (CollectionUtils.isNotEmpty(libManagerList)) {
|
|
|
+ correctTeacher = libManagerList.get(0);
|
|
|
+ String content = correctTeacher.getName() + "老师,您有一份新的作业报错提醒,赶快来查看。";
|
|
|
+ sconXingeService.asynPushThreadTask(homeworkPicture.getTeacherId(), 4,
|
|
|
+ XinGePushMessageTypeEnum.Message.getCode(),
|
|
|
+ XinGePushBusinessTypeEnum.ErrorWarnNotice.getCode(),
|
|
|
+ "报错提醒", content, "APP_TEACHER", PushConstants.PUSH_OTHER);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ correctTeacher = managerService.findByUserIdAndType(homeworkPicture.getKnowTeacherId(), 13);
|
|
|
+ if (correctTeacher != null) {
|
|
|
+ String content = correctTeacher.getName() + "老师,您有一份新的作业报错提醒,赶快来查看。";
|
|
|
+ sconXingeService.asynPushThreadTask(homeworkPicture.getKnowTeacherId(), 4,
|
|
|
+ XinGePushMessageTypeEnum.Message.getCode(),
|
|
|
+ XinGePushBusinessTypeEnum.ErrorWarnNotice.getCode(),
|
|
|
+ "报错提醒", content, "APP_TEACHER", PushConstants.PUSH_OTHER);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return responseEntity.success("成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 质检报错保存拓展表
|
|
|
+ *
|
|
|
+ * @param homeworkPictureCorrect
|
|
|
+ * @param homeworkPicture
|
|
|
+ */
|
|
|
+ private void saveErrorCheckRecord(HomeworkPictureCorrect homeworkPictureCorrect, HomeworkPicture homeworkPicture,
|
|
|
+ int teacherType, String checkedUserId) {
|
|
|
+ if (homeworkPictureCorrect.getIsCheckError() == 1) {
|
|
|
+ HomeworkPictureErrorCheck errorCheck = new HomeworkPictureErrorCheck();
|
|
|
+ errorCheck.setHomeworkPictureId(homeworkPicture.getId());
|
|
|
+ errorCheck.setChecker(homeworkPictureCorrect.getChecker());
|
|
|
+ errorCheck.setCreateTime(new Date());
|
|
|
+ errorCheck.setStartTime(homeworkPictureCorrect.getStartTime());
|
|
|
+ errorCheck.setEndTime(homeworkPictureCorrect.getEndTime());
|
|
|
+ errorCheck.setErrorReason(homeworkPictureCorrect.getErrorReason());
|
|
|
+ errorCheck.setType(homeworkPictureCorrect.getType());
|
|
|
+ if (StringUtil.isBlank(checkedUserId)) {
|
|
|
+ if (teacherType == Constant.KMT_122_TEACHER_TYPE) {
|
|
|
+ errorCheck.setCheckedUserId(homeworkPicture.getTeacherId());
|
|
|
+ } else {
|
|
|
+ errorCheck.setCheckedUserId(homeworkPicture.getKnowTeacherId());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ errorCheck.setCheckedUserId(checkedUserId);
|
|
|
+ }
|
|
|
+ //标注图片问题
|
|
|
+ SconTeacherCorrectRecord sconTeacherCorrectRecord =
|
|
|
+ sconTeacherCorrectRecordService.findByHomeworkPictureId(homeworkPicture.getId());
|
|
|
+ if (sconTeacherCorrectRecord != null && StringUtils.isNotBlank(sconTeacherCorrectRecord.getCorrected_picture_url())
|
|
|
+ && teacherType == Constant.KMT_122_TEACHER_TYPE) {
|
|
|
+ errorCheck.setCheckPictureUrl(sconTeacherCorrectRecord.getCorrected_picture_url());
|
|
|
+ } else {
|
|
|
+ errorCheck.setCheckPictureUrl(StringUtils.isEmpty(homeworkPicture.getCorrectedPictureUrl())
|
|
|
+ ? homeworkPicture.getFileKey() : homeworkPicture.getCorrectedPictureUrl());
|
|
|
+ }
|
|
|
+ if (teacherType == Constant.CORRECT_KNOW_TYPE) {
|
|
|
+ List<HomeworkCheckKnowDetailDto> homeworkCheckKnowDetailDtos =
|
|
|
+ correctSysQueryDao.findHomeworkCorrectedKnowledgeByPictureId(homeworkPicture.getId());
|
|
|
+ HomeworkPictureCheckHowDetailDto homeworkPictureCheckHowDetailDto =
|
|
|
+ this.getHomeworkPictureKnowCheckData(homeworkPicture, homeworkCheckKnowDetailDtos);
|
|
|
+ errorCheck.setErrorHowDetails(JSON.toJSONString(homeworkPictureCheckHowDetailDto));
|
|
|
+ }
|
|
|
+ homeworkPictureErrorCheckService.save(errorCheck);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<HomeworkCheckSubjectDto> findCheckHomeworkList(String teacherId) {
|
|
|
+ String endTime = DateUtil.format_yyyyMMddHHmmss(new Date());
|
|
|
+ String beginTime = DateUtil.dateIncreaseByDay(endTime, "yyyy-MM-dd", -6) + " 00:00:00";
|
|
|
+ int type = managerService.findCorrectOrKnowRoleByUserId(teacherId);
|
|
|
+ List<HomeworkCheckDto> homeworks = null;
|
|
|
+
|
|
|
+ //不同的老师查询不同的数据
|
|
|
+ if (type == Constant.KMT_122_TEACHER_TYPE) {
|
|
|
+ homeworks = correctSysQueryDao.findHomeworkCheckList(teacherId, beginTime, endTime);
|
|
|
+ } else if (type == Constant.CORRECT_KNOW_TYPE) {
|
|
|
+ homeworks = correctSysQueryDao.findKnowHomeworkCheckList(teacherId, beginTime, endTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<HomeworkCheckSubjectDto> result = new LinkedList<>();
|
|
|
+ if (homeworks != null) {
|
|
|
+ Map<String, Map<String, List<HomeworkCheckDto>>> homeworkChecks = homeworks.stream()
|
|
|
+ .collect(Collectors.groupingBy(HomeworkCheckDto::getDate,
|
|
|
+ Collectors.groupingBy(HomeworkCheckDto::getSubject)));
|
|
|
+
|
|
|
+ Map<String, List<HomeworkCheckDto>> subjectMap = null;
|
|
|
+ List<HomeworkCheckDto> homeworkList = null;
|
|
|
+ for (String date : homeworkChecks.keySet()) {
|
|
|
+ subjectMap = homeworkChecks.get(date);
|
|
|
+ for (String subject : subjectMap.keySet()) {
|
|
|
+ homeworkList = subjectMap.get(subject);
|
|
|
+ HomeworkCheckSubjectDto homeworkCheckSubjectDto = new HomeworkCheckSubjectDto();
|
|
|
+ homeworkCheckSubjectDto.setDate(date);
|
|
|
+ homeworkCheckSubjectDto.setSubject(subject);
|
|
|
+ for (HomeworkCheckDto homework : homeworkList) {
|
|
|
+ HomeworkCheckStudentDto homeworkCheckStudentDto = new HomeworkCheckStudentDto();
|
|
|
+ homeworkCheckStudentDto.setHomeworkId(homework.getHomeworkId());
|
|
|
+ homeworkCheckStudentDto.setStudentName(homework.getChildName());
|
|
|
+ homeworkCheckStudentDto.setGrade(homework.getGrade());
|
|
|
+ homeworkCheckStudentDto.setCheckedCount(homework.getChecked());
|
|
|
+ homeworkCheckStudentDto.setTotalCount(homework.getTotal());
|
|
|
+ if (homework.getError() != null && homework.getError() > 0) {
|
|
|
+ homeworkCheckStudentDto.setType(1);
|
|
|
+ }
|
|
|
+ homeworkCheckSubjectDto.addStudent(homeworkCheckStudentDto);
|
|
|
+ }
|
|
|
+ this.sortInsert(result, homeworkCheckSubjectDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 按日期顺序插入
|
|
|
+ *
|
|
|
+ * @param result
|
|
|
+ * @param homeworkCheckSubjectDto
|
|
|
+ */
|
|
|
+ private void sortInsert(List<HomeworkCheckSubjectDto> result, HomeworkCheckSubjectDto homeworkCheckSubjectDto) {
|
|
|
+ if (result.size() == 0) {
|
|
|
+ result.add(homeworkCheckSubjectDto);
|
|
|
+ } else {
|
|
|
+ boolean isLast = true;
|
|
|
+ for (int i = 0; i < result.size(); i++) {
|
|
|
+ if (result.get(i).getDate().compareTo(homeworkCheckSubjectDto.getDate()) > 0) {
|
|
|
+ result.add(i, homeworkCheckSubjectDto);
|
|
|
+ isLast = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isLast) {
|
|
|
+ result.add(homeworkCheckSubjectDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|