123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- package com.qmth.teachcloud.mark.service;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.IService;
- import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
- import com.qmth.teachcloud.common.entity.BasicExam;
- import com.qmth.teachcloud.common.entity.BasicExamStudent;
- import com.qmth.teachcloud.common.entity.SysUser;
- import com.qmth.teachcloud.common.enums.ScanStatus;
- import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
- import com.qmth.teachcloud.common.enums.mark.SubjectiveStatus;
- import com.qmth.teachcloud.mark.bean.UpdateTimeVo;
- import com.qmth.teachcloud.mark.bean.archivescore.ArchiveStudentQuery;
- import com.qmth.teachcloud.mark.bean.archivescore.ArchiveStudentVo;
- import com.qmth.teachcloud.mark.bean.archivescore.MarkStudentScoreVo;
- import com.qmth.teachcloud.mark.bean.archivescore.ScoreReportVo;
- import com.qmth.teachcloud.mark.bean.omredit.OmrEditDomain;
- import com.qmth.teachcloud.mark.bean.scananswer.AnswerQueryDomain;
- import com.qmth.teachcloud.mark.bean.scananswer.AnswerQueryVo;
- import com.qmth.teachcloud.mark.bean.scanexaminfo.ScanExamCheckInfoVo;
- import com.qmth.teachcloud.mark.bean.scanexaminfo.ScanExamInfoVo;
- import com.qmth.teachcloud.mark.bean.student.AbsentManualUpdateVo;
- import com.qmth.teachcloud.mark.bean.student.MarkStudentQuery;
- import com.qmth.teachcloud.mark.bean.student.StudentQuery;
- import com.qmth.teachcloud.mark.bean.student.StudentVo;
- import com.qmth.teachcloud.mark.dto.ScanOmrTaskStatusDto;
- import com.qmth.teachcloud.mark.dto.mark.AbInfoVo;
- import com.qmth.teachcloud.mark.dto.mark.MarkStudentVo;
- import com.qmth.teachcloud.mark.dto.mark.manage.Task;
- import com.qmth.teachcloud.mark.dto.mark.score.SheetUrlDto;
- import com.qmth.teachcloud.mark.dto.mark.score.StudentObjectiveDetailDto;
- import com.qmth.teachcloud.mark.dto.mark.score.StudentScoreDetailDto;
- import com.qmth.teachcloud.mark.entity.MarkPaper;
- import com.qmth.teachcloud.mark.entity.MarkStudent;
- import com.qmth.teachcloud.mark.entity.ScanStudentPaper;
- import com.qmth.teachcloud.mark.enums.PaperTypeCheckStatus;
- import com.qmth.teachcloud.mark.params.MarkHeaderResult;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletResponse;
- import javax.validation.constraints.NotNull;
- import java.util.List;
- import java.util.Set;
- /**
- * <p>
- * 考试考生库 服务类
- * </p>
- *
- * @author xf
- * @since 2023-09-22
- */
- public interface MarkStudentService extends IService<MarkStudent> {
- List<String> listClassByExamIdAndCourseCode(Long examId, String paperNumber);
- void updateSubjectiveStatusAndScore(Long studentId, SubjectiveStatus status, Double score, String scoreList);
- void updateSubjectiveStatusAndScore(Long examId, String paperNumber, SubjectiveStatus status, Double score, String scoreList);
- ScanExamInfoVo getScanExamInfo(BasicExam exam, Long courseId, String coursePaperId);
- IPage<StudentScoreDetailDto> pageStudentScore(Long examId, String paperNumber, String college, String majorName,
- String teachClassName, String className, String teacher, Integer filter, String status, Boolean breach,
- Double startScore, Double endScore, Double subjectiveStartScore, Double subjectiveEndScore, Double objectiveStartScore, Double objectiveEndScore,
- Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode, String secretNumber, String orderType,
- String orderField, Integer pageNumber, Integer pageSize);
- /**
- * 评卷管理/成绩检查/成绩详情导出
- *
- * @param examId
- * @param paperNumber
- * @param college
- * @param majorName
- * @param teachClassName
- * @param className
- * @param teacher
- * @param filter
- * @param status
- * @param breach
- * @param startScore
- * @param endScore
- * @param subjectiveStartScore
- * @param subjectiveEndScore
- * @param objectiveStartScore
- * @param objectiveEndScore
- * @param subScore
- * @param objectiveScoreRateLt
- * @param studentName
- * @param studentCode
- * @param orderType
- * @param orderField
- * @return
- */
- List<StudentScoreDetailDto> pageStudentScoreExport(Long examId, String paperNumber, String college, String majorName, String teachClassName,
- String className, String teacher, Integer filter, String status, Boolean breach, Double startScore, Double endScore,
- Double subjectiveStartScore, Double subjectiveEndScore, Double objectiveStartScore, Double objectiveEndScore,
- Double subScore, Integer objectiveScoreRateLt, String studentName, String studentCode, String secretNumber, String orderType,
- String orderField);
- List<SheetUrlDto> buildSheetUrls(Long studentId);
- int getPaperTypeCheckCount(Long examId, Long courseId, String coursePaperId, PaperTypeCheckStatus status, DataPermissionRule dpr);
- ScanExamCheckInfoVo checkInfo(BasicExam exam, Long courseId, String coursePaperId);
- /**
- * 根据考生当前绑定的paper刷新考生状态,需要在外部调用处对考生上锁
- *
- * @param userId userId
- * @param studentId studentId
- * @param updateOmrTask updateOmrTask
- * @param omrEdit 是否是'修改答题卡识别结果'调用
- */
- void updateStudentByPaper(@NotNull Long userId, @NotNull Long studentId, @NotNull boolean updateOmrTask, @NotNull boolean omrEdit, @NotNull boolean omrAssigned);
- MarkStudent findByExamIdAndCoursePaperIdAndStudentCode(Long examId, String coursePaperId, String studentCode);
- MarkStudent findByExamIdAndPaperNumberAndStudentCode(Long examId, String paperNumber, String studentCode);
- List<MarkStudent> listByStudentId(Long studentId);
- StudentObjectiveDetailDto getObjectiveInspectedTask(Long studentId);
- Boolean saveObjectiveInspectedTask(Long studentId, String answers);
- int countUploadedByExamIdAndPaperNumber(Long examId, String paperNumber);
- boolean updateScanInfo(MarkStudent student);
- List<MarkStudent> listAbsentOrBreachMarkTaskStudent(Long examId, String paperNumber);
- List<MarkStudent> listUnMarkTaskStudent(Long examId, String paperNumber, Integer groupNumber, int pageSize);
- void calculateObjectiveScore(MarkStudent student);
- void updateStudentAndPaper(SysUser user, Long studentId, List<ScanStudentPaper> studentPaperList, boolean clearMarkTask);
- StudentVo findOne(StudentQuery query);
- int countByExamIdAndSecretNumber(Long examId, String secretNumber);
- List<MarkStudent> listByExamIdAndCoursePaperId(Long examId, String coursePaperId);
- IPage<AnswerQueryVo> query(AnswerQueryDomain query);
- List<String> summary(AnswerQueryDomain query);
- UpdateTimeVo omrEdit(Long userId, OmrEditDomain domain);
- long countByExamIdAndPaperNumber(Long examId, String paperNumber);
- long countByExamIdAndPaperNumberAndSerialNumber(Long examId, String paperNumber, Integer serialNumber);
- AbsentManualUpdateVo absentManualUpdate(Long examId, String coursePaperId, String studentCode, Boolean manualAbsent);
- UpdateTimeVo confirm(Long examId, String coursePaperId, String studentCode, Boolean omrAbsent);
- List<Long> findIdByExamIdAndPaperNumber(Long examId, String paperNumber);
- Task getSubjectiveInspectedTask(Long studentId);
- void saveSubjectiveInspectedTask(MarkHeaderResult markResult);
- IPage<ArchiveStudentVo> studentList(ArchiveStudentQuery query);
- void scoreExport(ArchiveStudentQuery query, HttpServletResponse response);
- ScoreReportVo scoreReport(ArchiveStudentQuery query);
- void exportUnexist(Long examId, Long courseId, String coursePaperId, HttpServletResponse response);
- int countByExamIdAndPaperNumberAndMarkStatus(Long examId, String paperNumber, SubjectiveStatus status);
- void updateCheckInfo(Long studentId, Long userId);
- int countOmrAbsentStudent(Long examId, String paperNumber, boolean isOmrAbsentConfirm);
- int countOmrAbsentStudent(Long examId, String paperNumber, boolean isOmrAbsentConfirm, String teachClassName);
- void scoreReportDownload(MultipartFile file, HttpServletResponse response);
- void deleteByExamIdAndPaperNumber(Long examId, String paperNumber);
- boolean calcObjectiveScore(Long examId, String paperNumber);
- IPage<MarkStudent> pageByExamAndPaperNumber(Long examId, String paperNumber, int pageNumber, int pageSize);
- void updateObjectiveScoreAndScoreList(MarkStudent markStudent);
- boolean updateAssignConfirm(Long studentId, boolean assignConfirm);
- int getAssignedCount(Long examId, Boolean checked, Long courseId, String coursePaperId, MarkPaperStatus status,
- DataPermissionRule dpr);
- int getAssignedCount(Long examId, Boolean checked, Long courseId, String coursePaperId, MarkPaperStatus status,
- DataPermissionRule dpr, String teachClassName);
- int countAbsentByExamIdAndPaperNumber(Long examId, String paperNumber);
- List<MarkStudent> listScanCollegeByExamIdAndCourseCodeAndCoursePaperId(Long examId, Long courseId, String coursePaperId, String status, DataPermissionRule dpr);
- int countUnexistByExamIdAndPaperNumber(Long examId, String paperNumber);
- void updateStudentAnswer(@NotNull Long studentId);
- List<MarkStudentScoreVo> listMarkStudentScoreList(Long examId, String paperNumber);
- void trackExport(Long examId, String paperNumber, HttpServletResponse response);
- void sheetExport(Long examId, String paperNumber, HttpServletResponse response);
- MarkStudent assembleByBasicExamStudent(BasicExamStudent basicExamStudent, MarkPaper markPaper, Set<String> secretNumberSet, boolean containPaperType);
- void deleteByBasicStudentId(List<Long> basicExamStudentIds);
- Integer maxCardNumber(Long examId, String paperNumber);
- void scoreDownload(ArchiveStudentQuery query, HttpServletResponse response);
- Boolean missScanUpdate(Long examId, String coursePaperId, String studentCode, Boolean missScan);
- MarkStudentVo getMarkStudentVoByStudentId(Long studentId);
- List<MarkStudentVo> listMarkStudentVo(MarkStudentQuery markStudentQuery);
- IPage<MarkStudentVo> pageMarkStudentVo(Page<MarkStudentVo> page, MarkStudentQuery markStudentQuery);
- MarkStudent findByBasicStudentId(Long basicStudentId);
- void updateBasicExamStudentPaperType(Long markStudentId);
- boolean calcBatchObjectiveScore(List<Long> ids);
- List<MarkStudent> listByBasicStudentIds(List<Long> basicExamStudentIds);
- void confirmSubjectiveInspectedTask(Long studentId);
- MarkStudentVo getDetailById(Long studentId);
- /**
- * 获取卷型检查状态数量
- *
- * @param examId 考试id
- * @param courseId 课程id
- * @param coursePaperId 特殊试卷编号
- * @return 已办和待办数量
- */
- ScanOmrTaskStatusDto getStatus(Long examId, Long courseId, String coursePaperId);
- /**
- * 处理卷型检查
- *
- * @param studentId 考生id
- * @param paperType 试卷类型
- * @return 更新时间
- */
- UpdateTimeVo disposePaperTypeCheck(Long studentId, String paperType);
- AbInfoVo findExamTaskPaperTypeOpenStatus(Long examId, String paperNumber);
- UpdateTimeVo breachUpdate(Long studentId, Boolean breach);
- }
|