Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

shenhao 4 лет назад
Родитель
Сommit
239fe001c7

+ 93 - 0
src/main/java/com/ssj/api/controller/ApiManagerTeacherQualityController.java

@@ -0,0 +1,93 @@
+package com.ssj.api.controller;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ssj.api.security.annotation.ModifySecurity;
+import com.ssj.framework.core.common.controller.BaseController;
+import com.ssj.framework.core.util.ResponseConstant;
+import com.ssj.framework.core.util.ResponseEntity;
+import com.ssj.service.kmt.correctsys.dto.HomeworkCheckSubjectDto;
+import com.ssj.service.kmt.correctsys.dto.HomeworkPictureCheckDto;
+import com.ssj.service.kmt.correctsys.request.CorrectCheckReq;
+import com.ssj.service.kmt.correctsys.request.TeacherAllotReq;
+import com.ssj.service.kmt.correctsys.service.KmtCorrectSysService;
+import com.ssj.service.weixin.library.service.IBookManagerService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Api(value = "管理质检相关", tags = "管理质检相关")
+@RestController
+@RequestMapping("/api/teacher/quality")
+public class ApiManagerTeacherQualityController extends BaseController {
+	
+	@Autowired
+	private IBookManagerService managerService;
+	
+    @Autowired
+    private KmtCorrectSysService kmtCorrectSysService;
+
+
+    @RequestMapping(value = "/findCheckHomeworkList",method = RequestMethod.POST)
+    @ApiOperation(value ="查询质检列表数据",httpMethod = "POST",notes = "查询质检列表数据")
+    public ResponseEntity findCheckHomeworkList(@RequestParam String accessToken,@RequestBody @Valid TeacherAllotReq req){
+        ResponseEntity responseEntity = new ResponseEntity();
+        try {
+            List<HomeworkCheckSubjectDto> list = kmtCorrectSysService.findCheckHomeworkList(req.getTeacherId());
+            Map<String, Object> data = new HashMap<>();
+            data.put("subjectDates", list);
+            responseEntity.success(data, "请求成功");
+        } catch (Exception e) {
+            logger.error("异常",e);
+            responseEntity.failure(ResponseConstant.CODE_500,"系统繁忙,请稍后重试");
+        }
+        return  responseEntity;
+
+    }
+
+    @RequestMapping(value = "/findCheckHomeworkPictureList", method = RequestMethod.POST)
+    @ApiOperation(value ="查询质检作业图片列表数据",httpMethod = "POST",notes = "查询质检作业图片列表数据")
+    public ResponseEntity findCheckHomeworkPictureList(@RequestParam String accessToken,@RequestBody @Valid TeacherAllotReq req){
+        ResponseEntity responseEntity = new ResponseEntity();
+        try {
+            String userId = tokenManager.getUserId(accessToken);
+            List<HomeworkPictureCheckDto> homeworkPictures = kmtCorrectSysService.findCheckHomeworkPictureList(req.getHomeworkId(), userId);
+            Map<String, Object> data = new HashMap<>();
+            data.put("homeworkPictures", homeworkPictures);
+            responseEntity.success(data, "请求成功");
+        } catch (Exception e) {
+            logger.error("异常",e);
+            responseEntity.failure(ResponseConstant.CODE_500,"系统繁忙,请稍后重试");
+        }
+        return  responseEntity;
+
+    }
+
+    @ModifySecurity
+    @RequestMapping(value = "/correctCheck", method = RequestMethod.POST)
+    @ApiOperation(value = "提交质检结果", httpMethod = "POST", notes = "提交质检结果")
+    public ResponseEntity correctCheck(@RequestParam(name = "accessToken") String accessToken, @RequestBody CorrectCheckReq req) {
+        ResponseEntity responseEntity;
+        try {
+            String userId = tokenManager.getUserId(accessToken);
+            responseEntity = kmtCorrectSysService.correctCheck(req, userId);
+        } catch (Exception e) {
+            logger.error("异常", e);
+            responseEntity = new ResponseEntity();
+            responseEntity.failure(ResponseConstant.CODE_500, "系统繁忙,请稍后重试");
+        }
+        return responseEntity;
+    }
+
+}

+ 817 - 0
src/main/java/com/ssj/service/kmt/correctsys/KmtCorrectSysServiceImpl.java

@@ -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);
+            }
+        }
+    }
+
+   
+    
+    
+    
+
+
+}

+ 73 - 0
src/main/java/com/ssj/service/kmt/correctsys/service/KmtCorrectSysService.java

@@ -0,0 +1,73 @@
+package com.ssj.service.kmt.correctsys.service;
+
+
+import java.util.List;
+
+import com.ssj.bean.sys.homework.domain.HomeworkPicture;
+import com.ssj.framework.core.util.ResponseEntity;
+import com.ssj.service.kmt.correctsys.dto.HomeworkCheckKnowDetailDto;
+import com.ssj.service.kmt.correctsys.dto.HomeworkCheckSubjectDto;
+import com.ssj.service.kmt.correctsys.dto.HomeworkPictureCheckDto;
+import com.ssj.service.kmt.correctsys.dto.HomeworkPictureCheckHowDetailDto;
+import com.ssj.service.kmt.correctsys.request.CorrectCheckReq;
+
+/**
+ * @author Mount Liu
+ * @date 2019/5/17
+ */
+public interface KmtCorrectSysService {
+
+  
+    /**
+     * 查询作业的批改图片数据
+     * @param homeworkId
+     * @return
+     */
+    List<HomeworkPictureCheckDto> findCheckHomeworkPictureList (String homeworkId, String teacherId);
+
+
+    /**
+     * 查询作业的批改图片数据
+     * @param homeworkId
+     * @return
+     */
+    List<HomeworkPictureCheckDto> findCorrectCheckHomeworkPictureList (String homeworkId, String teacherId);
+
+    /**
+     * 查询作业的批改图片数据
+     * @param homeworkId
+     * @return
+     */
+    List<HomeworkPictureCheckDto> findKnowledgeCheckHomeworkPictureList (String homeworkId, String teacherId);
+
+    /**
+     * 查询手动勾选的知识点
+     * @param homeworkPicture
+     * @param howDetailTmp
+     * @return
+     */
+	HomeworkPictureCheckHowDetailDto getHomeworkPictureKnowCheckData(HomeworkPicture homeworkPicture,
+			List<HomeworkCheckKnowDetailDto> howDetailTmp);
+	
+	
+	 /**
+     * 作业质检
+     *
+     * @param req
+     * @param userId
+     * @return
+     * @throws Exception
+     */
+    ResponseEntity correctCheck(CorrectCheckReq req, String userId) throws Exception;
+    
+
+    /**
+     * 查询某个老师的质检作业数据,默认7天的数据
+     * @param teacherId
+     * @return
+     */
+    List<HomeworkCheckSubjectDto> findCheckHomeworkList (String teacherId);
+
+
+
+}

+ 17 - 0
src/main/java/com/ssj/service/sys/homework/service/HomeworkPictureService.java

@@ -2,6 +2,7 @@ package com.ssj.service.sys.homework.service;
 
 import com.ssj.bean.sys.homework.domain.HomeworkPicture;
 import com.ssj.framework.core.common.service.BaseService;
+import com.ssj.service.kmt.correctsys.dto.HomeworkPictureDto;
 
 import java.util.List;
 
@@ -26,4 +27,20 @@ public interface HomeworkPictureService extends BaseService<HomeworkPicture, Str
     List<HomeworkPicture> findAllByHomeworkId(String id);
 
     long countByTeacherIdAndIsFeedback(String userId, int i);
+    
+    /**
+     * 匹配知识点老师作业图片列表
+     * @param homeworkId
+     * @return
+     */
+    List<HomeworkPictureDto> findKnowCheckHomeworkPictureByHomeworkId (String homeworkId);
+    
+    /**
+     * 批改老师作业图片列表
+     * @param homeworkId
+     * @return
+     */
+    List<HomeworkPictureDto> findCheckHomeworkPictureByHomeworkId (String homeworkId);
+
+    
 }

+ 15 - 0
src/main/java/com/ssj/service/sys/homework/service/impl/HomeworkPictureServiceImpl.java

@@ -5,9 +5,11 @@ import com.ssj.bean.sys.homework.domain.HomeworkPictureCorrect;
 import com.ssj.bean.sys.imlibuser.TbClassTeacher;
 import com.ssj.bean.weixin.libmy.domain.TbLibManager;
 import com.ssj.dao.sys.homework.dao.HomeworkPictureDao;
+import com.ssj.dao.sys.homework.dao.HomeworkPictureQueryDao;
 import com.ssj.framework.core.common.service.BaseServiceImpl;
 import com.ssj.framework.core.util.StringUtil;
 import com.ssj.framework.weixin.util.DateUtil;
+import com.ssj.service.kmt.correctsys.dto.HomeworkPictureDto;
 import com.ssj.service.sys.homework.service.HomeworkPictureCorrectService;
 import com.ssj.service.sys.homework.service.HomeworkPictureService;
 import com.ssj.service.sys.imlibuser.service.TbClassTeacherService;
@@ -41,6 +43,9 @@ public class HomeworkPictureServiceImpl extends BaseServiceImpl<HomeworkPicture,
 
     @Autowired
     private HomeworkPictureCorrectService homeworkPictureCorrectService;
+    
+    @Autowired
+    private HomeworkPictureQueryDao homeworkPictureQueryDao;
 
     @Override
     public PagingAndSortingRepository<HomeworkPicture, String> getDao() {
@@ -138,4 +143,14 @@ public class HomeworkPictureServiceImpl extends BaseServiceImpl<HomeworkPicture,
         }
         return beginTime;
     }
+
+	@Override
+	public List<HomeworkPictureDto> findKnowCheckHomeworkPictureByHomeworkId(String homeworkId) {
+		 return homeworkPictureQueryDao.findKnowCheckPictureByHomeworkId(homeworkId);
+	}
+
+	@Override
+	public List<HomeworkPictureDto> findCheckHomeworkPictureByHomeworkId(String homeworkId) {
+		 return homeworkPictureQueryDao.findCheckPictureByHomeworkId(8, homeworkId);
+	}
 }