package cn.com.qmth.stmms.biz.report.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Index;
import javax.persistence.Table;

import cn.com.qmth.stmms.common.annotation.ExcelField;

/**
 * 客观 主观题 成绩分析
 *
 * @author xuwenjin
 * @date 2019-04-12
 */
@Entity
@Table(name = "s_basic_question", indexes = { @Index(columnList = "exam_id,subject_code") })
public class ReportSubjectQuestion implements Serializable {

    private static final long serialVersionUID = 6724909968773149817L;

    /**
     * 主键
     */
    @Id
    @GeneratedValue
    private Integer id;

    /**
     * 考试id
     */
    @Column(name = "exam_id")
    private Integer examId;

    /**
     * 课程编号
     */
    @ExcelField(title = "课程代码", align = 2, sort = 10)
    @Column(name = "subject_code")
    private String subjectCode;

    /**
     * 课程名称
     */
    @ExcelField(title = "课程名称", align = 2, sort = 20)
    @Column(name = "subject_name")
    private String subjectName;

    /**
     * 题目名称
     */
    @ExcelField(title = "题目名称", align = 2, sort = 30)
    @Column(name = "question_name", length = 128)
    private String questionName;

    /**
     * 大题号
     */
    @ExcelField(title = "大题号", align = 2, sort = 40)
    @Column(name = "main_number", nullable = false)
    private Integer mainNumber;

    /**
     * 小题号
     */
    @ExcelField(title = "小题号", align = 2, sort = 50)
    @Column(name = "sub_number", nullable = false)
    private String subNumber;

    /**
     * 总分
     */
    @ExcelField(title = "总分", align = 2, sort = 60)
    @Column(name = "total_score")
    private Double totalScore;

    /**
     * 平均分
     */
    @ExcelField(title = "平均分", align = 2, sort = 70)
    @Column(name = "avg_score")
    private Double avgScore;

    /**
     * 标准差
     */
    @ExcelField(title = "标准差", align = 2, sort = 80)
    @Column(name = "stdev")
    private Double stdev;

    /**
     * 得分率
     */
    @ExcelField(title = "得分率", align = 2, sort = 90)
    @Column(name = "score_rate")
    private Double scoreRate;

    /**
     * 满分率
     */
    @ExcelField(title = "满分率", align = 2, sort = 100)
    @Column(name = "full_score_rate")
    private Double fullScoreRate;

    /**
     * 卷型
     */
    @ExcelField(title = "卷型", align = 2, sort = 110)
    @Column(name = "paper_type", nullable = true, length = 32)
    private String paperType;

    /**
     * 是否客观
     */
    @Column(name = "objective")
    private Boolean objective;

    /**
     * 差异系数
     */
    @Column(name = "coefficient", nullable = true, length = 32)
    private Double coefficient;

    /**
     * 难度
     */
    @Column(name = "difficulty", nullable = true, length = 32)
    private Double difficulty;

    /**
     * 区分度
     */
    @Column(name = "discrimination", nullable = true, length = 32)
    private Double discrimination;

    /**
     * 最高分
     */
    @Column(name = "max_score")
    private Double maxScore;

    /**
     * 最低分
     */
    @Column(name = "min_score")
    private Double minScore;

    /**
     * 零分人数
     */
    @Column(name = "zero_count", nullable = true, length = 32)
    private Integer zeroCount;

    /**
     * 有效卷数
     */
    @Column(name = "reality_count")
    private Integer realityCount;

    /**
     * 满分人数
     */
    @Column(name = "full_count", nullable = true, length = 32)
    private Integer fullCount;

    /**
     * 选项分析
     */
    @Column(name = "options", nullable = true)
    private String options;

    /**
     * 正确答案
     */
    @Column(name = "answer", nullable = true)
    private String answer;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getExamId() {
        return examId;
    }

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

    public String getSubjectCode() {
        return subjectCode;
    }

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

    public String getSubjectName() {
        return subjectName;
    }

    public void setSubjectName(String subjectName) {
        this.subjectName = subjectName;
    }

    public String getQuestionName() {
        return questionName;
    }

    public void setQuestionName(String questionName) {
        this.questionName = questionName;
    }

    public Double getTotalScore() {
        return totalScore;
    }

    public void setTotalScore(Double totalScore) {
        this.totalScore = totalScore;
    }

    public Double getAvgScore() {
        return avgScore;
    }

    public void setAvgScore(Double avgScore) {
        this.avgScore = avgScore;
    }

    public Double getStdev() {
        return stdev;
    }

    public void setStdev(Double stdev) {
        this.stdev = stdev;
    }

    public Double getScoreRate() {
        return scoreRate;
    }

    public void setScoreRate(Double scoreRate) {
        this.scoreRate = scoreRate;
    }

    public Double getFullScoreRate() {
        return fullScoreRate;
    }

    public void setFullScoreRate(Double fullScoreRate) {
        this.fullScoreRate = fullScoreRate;
    }

    public Boolean getObjective() {
        return objective;
    }

    public void setObjective(Boolean objective) {
        this.objective = objective;
    }

    public String getPaperType() {
        return paperType;
    }

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

    public Integer getMainNumber() {
        return mainNumber;
    }

    public void setMainNumber(Integer mainNumber) {
        this.mainNumber = mainNumber;
    }

    public String getSubNumber() {
        return subNumber;
    }

    public void setSubNumber(String subNumber) {
        this.subNumber = subNumber;
    }

    public Double getCoefficient() {
        return coefficient;
    }

    public void setCoefficient(Double coefficient) {
        this.coefficient = coefficient;
    }

    public Double getDifficulty() {
        return difficulty;
    }

    public void setDifficulty(Double difficulty) {
        this.difficulty = difficulty;
    }

    public Double getDiscrimination() {
        return discrimination;
    }

    public void setDiscrimination(Double discrimination) {
        this.discrimination = discrimination;
    }

    public Double getMaxScore() {
        return maxScore;
    }

    public void setMaxScore(Double maxScore) {
        this.maxScore = maxScore;
    }

    public Double getMinScore() {
        return minScore;
    }

    public void setMinScore(Double minScore) {
        this.minScore = minScore;
    }

    public Integer getZeroCount() {
        return zeroCount;
    }

    public void setZeroCount(Integer zeroCount) {
        this.zeroCount = zeroCount;
    }

    public Integer getRealityCount() {
        return realityCount;
    }

    public void setRealityCount(Integer realityCount) {
        this.realityCount = realityCount;
    }

    public Integer getFullCount() {
        return fullCount;
    }

    public void setFullCount(Integer fullCount) {
        this.fullCount = fullCount;
    }

    public String getOptions() {
        return options;
    }

    public void setOptions(String options) {
        this.options = options;
    }

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }

}