package cn.com.qmth.scancentral.service; import cn.com.qmth.scancentral.bean.User; import cn.com.qmth.scancentral.entity.OmrGroupEntity; import cn.com.qmth.scancentral.entity.OmrTaskEntity; import cn.com.qmth.scancentral.enums.TaskStatus; import cn.com.qmth.scancentral.vo.omr.OmrTaskOverview; import cn.com.qmth.scancentral.vo.task.TaskResultVo; import cn.com.qmth.scancentral.vo.task.TaskSaveVo; import cn.com.qmth.scancentral.vo.task.TaskStatusVo; import cn.com.qmth.scancentral.vo.task.TaskVo; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; public interface OmrTaskService extends IService { int getCountByExam(Long examId); int getCountByExamAndStatus(Long examId, TaskStatus... status); int getCountByGroupAndStatus(Long groupId, TaskStatus... status); int getCountByExamAndStatusAndDevice(Long examId, String device, TaskStatus... status); int getCountByGroupAndStatusAndDevice(Long groupId, String device, TaskStatus... status); void deleteByGroupId(Long groupId); void resetByGroup(OmrGroupEntity group); void saveTask(OmrGroupEntity group, Long studentId); List buildTask(OmrGroupEntity group, Long studentId); TaskVo getTask(Long groupId, String account); TaskSaveVo submitTask(TaskResultVo result, User user); TaskVo getArbitrateTask(Long groupId, String user); TaskStatusVo getStatus(Long groupId, Boolean isArbitrate, String account); boolean apply(OmrTaskEntity t, String account); void releaseByUser(Long groupId, String account); void releaseByTask(OmrTaskEntity t); boolean hasApplied(OmrTaskEntity t, String account); List findUnMarked(Long groupId, int pageNumber, int pageSize, TaskStatus status); OmrTaskEntity getByPaperId(Long groupId, Long paperId); void waitingByGroupToggle(Long groupId); void deleteByStudentIdAndGroupId(Long groupId, Long studentId); void updateStudentId(Long studentId, Long paperId); TaskVo history(Long groupId, Long taskId, String account, Boolean next); TaskVo getArbitrateHistory(Long groupId, Long taskId, String account, Boolean next); OmrTaskOverview countByExamIdAndFixed(Long examId, Boolean fixed); List findByGroupIdAndStudentId(Long id, Long studentId); }