package cn.com.qmth.scancentral.service; import java.io.IOException; import java.io.InputStream; import java.util.Collection; import java.util.List; import org.springframework.web.multipart.MultipartFile; import com.baomidou.mybatisplus.extension.service.IService; import com.qmth.boot.core.collection.PageResult; import cn.com.qmth.scancentral.bean.AbsentQueryDomain; import cn.com.qmth.scancentral.bean.AnswerDeleteDomain; import cn.com.qmth.scancentral.bean.AnswerQueryDomain; import cn.com.qmth.scancentral.bean.AssignedQueryDomain; import cn.com.qmth.scancentral.bean.ImportCetAbsentDomain; import cn.com.qmth.scancentral.bean.ImportStudentDomain; import cn.com.qmth.scancentral.bean.PageDeleteDomain; import cn.com.qmth.scancentral.bean.User; import cn.com.qmth.scancentral.bean.omredit.OmrEditDomain; import cn.com.qmth.scancentral.bean.refix.AnswerRefixDomain; import cn.com.qmth.scancentral.entity.StudentEntity; import cn.com.qmth.scancentral.entity.StudentPaperEntity; import cn.com.qmth.scancentral.enums.ExamStatusCheckMode; import cn.com.qmth.scancentral.enums.GroupType; import cn.com.qmth.scancentral.enums.ScanStatus; import cn.com.qmth.scancentral.enums.UploadStatus; import cn.com.qmth.scancentral.vo.AbsentInfoVo; import cn.com.qmth.scancentral.vo.AbsentManualImportVo; import cn.com.qmth.scancentral.vo.AbsentQueryVo; import cn.com.qmth.scancentral.vo.AnswerDeleteVo; import cn.com.qmth.scancentral.vo.AnswerExportK12Vo; import cn.com.qmth.scancentral.vo.AnswerExportVo; import cn.com.qmth.scancentral.vo.AnswerRefixVo; import cn.com.qmth.scancentral.vo.CampusVo; import cn.com.qmth.scancentral.vo.ExamSiteVo; import cn.com.qmth.scancentral.vo.ExportCetMarkingQueryVo; import cn.com.qmth.scancentral.vo.ExportCetVo; import cn.com.qmth.scancentral.vo.ImportResult; import cn.com.qmth.scancentral.vo.ImportStudentQueryVo; import cn.com.qmth.scancentral.vo.ImportStudentVo; import cn.com.qmth.scancentral.vo.PaperDeleteVo; import cn.com.qmth.scancentral.vo.ScanAnswerInfoVo; import cn.com.qmth.scancentral.vo.StudentUploadVo; import cn.com.qmth.scancentral.vo.UpdateTimeVo; import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo; import cn.com.qmth.scancentral.vo.assginedcheck.AssginedTaskResult; import cn.com.qmth.scancentral.vo.assginedcheck.AssignedCheckExport; import cn.com.qmth.scancentral.vo.assginedcheck.AssignedTaskSaveVo; import cn.com.qmth.scancentral.vo.student.StudentAnswerVo; import cn.com.qmth.scancentral.vo.student.StudentQuery; import cn.com.qmth.scancentral.vo.student.StudentVo; import cn.com.qmth.scancentral.vo.task.TaskStatusVo; public interface StudentService extends IService { void pictureCopy(StudentUploadVo vo); void updateStudentByPaper(User user, Long id, boolean updateOmrTask); void updateStudentAndPaper(User user, Long id, List studentPaperList); AnswerDeleteVo answerDelete(User user, AnswerDeleteDomain domain); PaperDeleteVo paperDelete(User user, PageDeleteDomain domain); List listCampusByExamId(Long examId); List listSiteByExamId(Long examId); StudentVo findOne(StudentQuery query); int getCountByExam(Long examId); int getCountByExamAndScanStatus(Long examId, ScanStatus status); int getPackageCountByExam(Long examId); List packageList(StudentQuery query); List findByExamAndPackage(Long examId, String packageCode, String subjectCode); int getAssignedCountByExam(Long examId); int getAbsentSuspectCountByExam(Long examId); int getIncompleteCountByExam(Long examId); AbsentInfoVo absentInfo(Long examId, GroupType groupType, String groupName); List absentSummary(AbsentQueryDomain query); PageResult absentQuery(AbsentQueryDomain query); AbsentManualImportVo absentManualImport(Long examId, MultipartFile file); UpdateTimeVo absentManualUpdate(Long examId, String subjectCode, String examNumber); UpdateTimeVo absentSuspectUpdate(Long examId, String subjectCode, String examNumber, boolean enable); ScanAnswerInfoVo scanAnswerInfo(Long examId); PageResult query(AnswerQueryDomain query); List summary(AnswerQueryDomain query); List findToUpload(int pageSize, Long schoolId); boolean existUploadData(Long schoolId); List absentExportList(AbsentQueryDomain query); List exportList(AnswerQueryDomain query); void updateDataUploadStatus(Long id, UploadStatus status); void updateUploadStatus(Long id, UploadStatus fileUploadStatus, UploadStatus dataUploadStatus); void updateFileUploadStatus(Long id, UploadStatus status); void updateOmrAbsent(Long id, Boolean omrAbsent); void deletetByExamIdAndUnCreateTime(Long examId, long createTime); int getCountByExamAndCardNumber(Long examId, Integer number); int importStudent(List students); StudentEntity findByExamAndSubjectCodeAndExamNumber(Long examId, String subjectCode, String examNumber); int countByQuery(ImportStudentQueryVo query); List findByQuery(ImportStudentQueryVo query); int getOmrAbsentCountByExam(Long examId); boolean existPictureCopyData(); List findToPictureCopy(int pageSize); Double getUploadProgress(Long examId); void studentClean(Long examId); AnswerRefixVo answerRefix(User user, AnswerRefixDomain domain); UpdateTimeVo omrEdit(User user, OmrEditDomain domain); Integer importCetAbsent(List students); List exportCetData(ExportCetMarkingQueryVo query); Collection exportListK12(AnswerQueryDomain query); void updateCheckMark(Long studentId, Boolean tag); Integer getStudentAnswerCount(Long examId); void uploadData(StudentUploadVo vo); void resetExamStatus(Long examId, Integer examNumberFillCount); void updateExamStatus(Long id, Boolean absent); ImportResult importExamStatus(Long examId, ExamStatusCheckMode mode, InputStream inputStream) throws IOException; int getCountByExamAndAssignedCheckCount(Long examId, int assignedCheckCount); void updateAssignedCheckCount(Long id, boolean deleteHistory); List exportAssignedCheckPage(AssignedQueryDomain query); PageResult queryAssignedCheckPage(AssignedQueryDomain query); boolean apply(StudentEntity t, String account); boolean hasAppliedAssignedCheckTask(StudentEntity t, String account); TaskStatusVo getAssignedCheckTaskStatus(Long examId, User user); void releaseAssignedCheckTaskByUser(Long examId, String account); AssignedTaskSaveVo submitAssignedCheckTask(AssginedTaskResult result, User user); List getAssignedCheckTaskHistory(Long id, Long pageSize, User user); AnswerQueryVo getAssignedCheckTask(Long examId, String account); StudentAnswerVo studentAnswer(Long batchId, Long studentId); }