package cn.com.qmth.stmms.biz.exam.query;

import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;

import cn.com.qmth.stmms.biz.common.BaseQuery;
import cn.com.qmth.stmms.biz.exam.bean.ExamStudentVo;
import cn.com.qmth.stmms.common.enums.SubjectiveStatus;

public class InspectQuery extends BaseQuery<ExamStudentVo> {

    private Integer examId;

    private Integer schoolId;

    private String campusName;

    private String name;

    private String examNumberIn;

    private String examNumber;

    private String secretNumber;

    private String studentCode;

    private String subjectCode;

    private String batchCode;

    private String packageCode;

    private String subjectLevel;

    private String subjectCategory;

    private String examSite;

    private String examRoom;

    private Double objectiveScore;

    private Double objectiveScoreGt;

    private Double objectiveScoreLt;

    private Set<SubjectiveStatus> statusSet;

    private Double subjectiveScore;

    private Double subjectiveScoreGt;

    private Double subjectiveScoreLt;

    private Boolean upload;

    private Boolean absent;

    private Boolean manualAbsent;

    private Boolean exception;

    private Boolean uploadTimeNotNull;

    private Date minUploadTime;

    private Date maxUploadTime;

    private String campusNameIn;

    private String subjectCodeIn;

    private String examSiteIn;

    private String campusNameNotIn;

    private String subjectCodeNotIn;

    private String examSiteNotIn;

    private String ids;

    private Double startScore;

    private Double endScore;

    private Boolean breach;

    private String college;

    private String className;

    private String teacher;

    private String paperType;

    private List<Integer> studentIds;

    private Integer inspectorId;
    
    private String inspectorName;

    private Integer sheetCount;
    
    //是否已复核
    private Boolean inspected;
    
    private Double questionScore;
    
    private Boolean questionScoreEmpty;
    
    //不可重复
    private Boolean inspectUnrepeated;
    
    private boolean export;
    
    private Boolean selective;
    
    //打回卷
    private Boolean rejected;

    public InspectQuery() {
        super();
        this.statusSet = new HashSet<>();
    }

    public void orderByExamNumber() {
        setSort(new Sort(Direction.ASC, "examNumber"));
    }

    public void orderByExamIdDesc() {
        setSort(new Sort(Direction.DESC, "examId"));
    }

    public void orderByInspectTimeDesc() {
        setSort(new Sort(Direction.DESC, "inspectTime"));
    }

    public Integer getExamId() {
        return examId;
    }

    public void setExamId(Integer examId) {
        this.examId = examId;
    }

    public Integer getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(Integer schoolId) {
        this.schoolId = schoolId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSubjectCode() {
        return subjectCode;
    }

    public void setSubjectCode(String subjectCode) {
        this.subjectCode = subjectCode;
    }

    public String getExamNumber() {
        return examNumber;
    }

    public void setExamNumber(String examNumber) {
        this.examNumber = examNumber;
    }

    public String getSecretNumber() {
        return secretNumber;
    }

    public void setSecretNumber(String secretNumber) {
        this.secretNumber = secretNumber;
    }

    public String getStudentCode() {
        return studentCode;
    }

    public void setStudentCode(String studentCode) {
        this.studentCode = studentCode;
    }

    public Boolean getUpload() {
        return upload;
    }

    public void setUpload(Boolean upload) {
        this.upload = upload;
    }

    public Boolean getAbsent() {
        return absent;
    }

    public void setAbsent(Boolean absent) {
        this.absent = absent;
    }

    public String getCampusName() {
        return campusName;
    }

    public void setCampusName(String campusName) {
        this.campusName = campusName;
    }

    public String getBatchCode() {
        return batchCode;
    }

    public void setBatchCode(String batchCode) {
        this.batchCode = batchCode;
    }

    public String getPackageCode() {
        return packageCode;
    }

    public void setPackageCode(String packageCode) {
        this.packageCode = packageCode;
    }

    public Boolean getException() {
        return exception;
    }

    public void setException(Boolean exception) {
        this.exception = exception;
    }

    public Double getObjectiveScore() {
        return objectiveScore;
    }

    public void setObjectiveScore(Double objectiveScore) {
        this.objectiveScore = objectiveScore;
    }

    public Double getObjectiveScoreGt() {
        return objectiveScoreGt;
    }

    public void setObjectiveScoreGt(Double objectiveScoreGt) {
        this.objectiveScoreGt = objectiveScoreGt;
    }

    public Double getSubjectiveScore() {
        return subjectiveScore;
    }

    public void setSubjectiveScore(Double subjectiveScore) {
        this.subjectiveScore = subjectiveScore;
    }

    public Double getSubjectiveScoreGt() {
        return subjectiveScoreGt;
    }

    public void setSubjectiveScoreGt(Double subjectiveScoreGt) {
        this.subjectiveScoreGt = subjectiveScoreGt;
    }

    public String getSubjectLevel() {
        return subjectLevel;
    }

    public void setSubjectLevel(String subjectLevel) {
        this.subjectLevel = subjectLevel;
    }

    public String getSubjectCategory() {
        return subjectCategory;
    }

    public void setSubjectCategory(String subjectCategory) {
        this.subjectCategory = subjectCategory;
    }

    public Boolean getUploadTimeNotNull() {
        return uploadTimeNotNull;
    }

    public void setUploadTimeNotNull(Boolean uploadTimeNotNull) {
        this.uploadTimeNotNull = uploadTimeNotNull;
    }

    public Date getMinUploadTime() {
        return minUploadTime;
    }

    public void setMinUploadTime(Date minUploadTime) {
        this.minUploadTime = minUploadTime;
    }

    public Date getMaxUploadTime() {
        return maxUploadTime;
    }

    public void setMaxUploadTime(Date maxUploadTime) {
        this.maxUploadTime = maxUploadTime;
    }

    public String getExamNumberIn() {
        return examNumberIn;
    }

    public void setExamNumberIn(String examNumberIn) {
        this.examNumberIn = examNumberIn;
    }

    public Double getObjectiveScoreLt() {
        return objectiveScoreLt;
    }

    public void setObjectiveScoreLt(Double objectiveScoreLt) {
        this.objectiveScoreLt = objectiveScoreLt;
    }

    public Double getSubjectiveScoreLt() {
        return subjectiveScoreLt;
    }

    public void setSubjectiveScoreLt(Double subjectiveScoreLt) {
        this.subjectiveScoreLt = subjectiveScoreLt;
    }

    public String getCampusNameIn() {
        return campusNameIn;
    }

    public void setCampusNameIn(String campusNameIn) {
        this.campusNameIn = campusNameIn;
    }

    public String getSubjectCodeIn() {
        return subjectCodeIn;
    }

    public void setSubjectCodeIn(String subjectCodeIn) {
        this.subjectCodeIn = subjectCodeIn;
    }

    public String getCampusNameNotIn() {
        return campusNameNotIn;
    }

    public void setCampusNameNotIn(String campusNameNotIn) {
        this.campusNameNotIn = campusNameNotIn;
    }

    public String getSubjectCodeNotIn() {
        return subjectCodeNotIn;
    }

    public void setSubjectCodeNotIn(String subjectCodeNotIn) {
        this.subjectCodeNotIn = subjectCodeNotIn;
    }

    public String getIds() {
        return ids;
    }

    public void setIds(String ids) {
        this.ids = ids;
    }

    public Double getStartScore() {
        return startScore;
    }

    public void setStartScore(Double startScore) {
        this.startScore = startScore;
    }

    public Double getEndScore() {
        return endScore;
    }

    public void setEndScore(Double endScore) {
        this.endScore = endScore;
    }

    public Boolean getBreach() {
        return breach;
    }

    public void setBreach(Boolean breach) {
        this.breach = breach;
    }

    public Boolean getManualAbsent() {
        return manualAbsent;
    }

    public void setManualAbsent(Boolean manualAbsent) {
        this.manualAbsent = manualAbsent;
    }

    public String getCollege() {
        return college;
    }

    public void setCollege(String college) {
        this.college = college;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getTeacher() {
        return teacher;
    }

    public void setTeacher(String teacher) {
        this.teacher = teacher;
    }

    public String getPaperType() {
        return paperType;
    }

    public void setPaperType(String paperType) {
        this.paperType = paperType;
    }

    public Set<SubjectiveStatus> getStatusSet() {
        return statusSet;
    }

    public void clearStatus() {
        this.statusSet.clear();
    }

    public void addStatus(SubjectiveStatus status) {
        this.statusSet.add(status);
    }

    public List<Integer> getStudentIds() {
        return studentIds;
    }

    public void setStudentIds(List<Integer> studentIds) {
        this.studentIds = studentIds;
    }

    public Integer getInspectorId() {
        return inspectorId;
    }

    public void setInspectorId(Integer inspectorId) {
        this.inspectorId = inspectorId;
    }

    public String getExamSite() {
        return examSite;
    }

    public void setExamSite(String examSite) {
        this.examSite = examSite;
    }

    public String getExamRoom() {
        return examRoom;
    }

    public void setExamRoom(String examRoom) {
        this.examRoom = examRoom;
    }

    public String getExamSiteIn() {
        return examSiteIn;
    }

    public void setExamSiteIn(String examSiteIn) {
        this.examSiteIn = examSiteIn;
    }

    public String getExamSiteNotIn() {
        return examSiteNotIn;
    }

    public void setExamSiteNotIn(String examSiteNotIn) {
        this.examSiteNotIn = examSiteNotIn;
    }

    public Integer getSheetCount() {
        return sheetCount;
    }

    public void setSheetCount(Integer sheetCount) {
        this.sheetCount = sheetCount;
    }

	public Boolean getInspected() {
		return inspected;
	}

	public void setInspected(Boolean inspected) {
		this.inspected = inspected;
	}

	public String getInspectorName() {
		return inspectorName;
	}

	public void setInspectorName(String inspectorName) {
		this.inspectorName = inspectorName;
	}

	public Double getQuestionScore() {
		return questionScore;
	}

	public void setQuestionScore(Double questionScore) {
		this.questionScore = questionScore;
	}

	public Boolean getQuestionScoreEmpty() {
		return questionScoreEmpty;
	}

	public void setQuestionScoreEmpty(Boolean questionScoreEmpty) {
		this.questionScoreEmpty = questionScoreEmpty;
	}

	public Boolean getInspectUnrepeated() {
		return inspectUnrepeated;
	}

	public void setInspectUnrepeated(Boolean inspectUnrepeated) {
		this.inspectUnrepeated = inspectUnrepeated;
	}

	public boolean isExport() {
		return export;
	}

	public void setExport(boolean export) {
		this.export = export;
	}

	public Boolean getSelective() {
		return selective;
	}

	public void setSelective(Boolean selective) {
		this.selective = selective;
	}

	public Boolean getRejected() {
		return rejected;
	}

	public void setRejected(Boolean rejected) {
		this.rejected = rejected;
	}

}
