浏览代码

优化 报表模块:实体类加索引、千分位小数统一保留 2位小数

xuwenjin 6 年之前
父节点
当前提交
9759fb0f14

+ 185 - 186
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubject.java

@@ -5,198 +5,197 @@ import java.io.Serializable;
 
 /**
  * 课程总量分析
- * 
+ *
  * @author xuwenjin
  * @date 2019-04-11
- *
  */
 @Entity
-@Table(name = "s_basic_subject")
+@Table(name = "s_basic_subject", indexes = {@Index(name = "subject_index",columnList = "exam_id,subject_code")})
 public class ReportSubject implements Serializable {
 
-	private static final long serialVersionUID = -1596478079357284914L;
-
-	/**
-	 * 主键
-	 */
-	@Id
-	@GeneratedValue
-	private Integer id;
-
-	/**
-	 * 考试id
-	 */
-	@Column(name = "exam_id")
-	private Integer examId;
-
-	/**
-	 * 课程编号
-	 */
-	@Column(name = "subject_code")
-	private String subjectCode;
-
-	/**
-	 * 课程名称
-	 */
-	@Column(name = "subject_name")
-	private String subjectName;
-
-	/**
-	 * 最高分
-	 */
-	@Column(name = "max_score")
-	private Double maxScore;
-
-	/**
-	 * 最低分
-	 */
-	@Column(name = "min_score")
-	private Double minScore;
-
-	/**
-	 * 平均分
-	 */
-	@Column(name = "avg_score")
-	private Double avgScore;
-
-	/**
-	 * 报考人数
-	 */
-	@Column(name = "total_count")
-	private Integer totalCount;
-
-	/**
-	 * 及格人数
-	 */
-	@Column(name = "pass_count")
-	private Integer passCount;
-
-	/**
-	 * 及格率
-	 */
-	@Column(name = "pass_rate")
-	private Double passRate;
-
-	/**
-	 * 缺考人数
-	 */
-	@Column(name = "absent_count")
-	private Integer absentCount;
-
-	/**
-	 * 违纪人数
-	 */
-	@Column(name = "breach_count")
-	private Integer breachCount;
-
-	/**
-	 * 实考人数
-	 */
-	@Column(name = "reality_count")
-	private Integer realityCount;
-
-	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 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 Double getAvgScore() {
-		return avgScore;
-	}
-
-	public void setAvgScore(Double avgScore) {
-		this.avgScore = avgScore;
-	}
-
-	public Integer getTotalCount() {
-		return totalCount;
-	}
-
-	public void setTotalCount(Integer totalCount) {
-		this.totalCount = totalCount;
-	}
-
-	public Integer getPassCount() {
-		return passCount;
-	}
-
-	public void setPassCount(Integer passCount) {
-		this.passCount = passCount;
-	}
-
-	public Double getPassRate() {
-		return passRate;
-	}
-
-	public void setPassRate(Double passRate) {
-		this.passRate = passRate;
-	}
-
-	public Integer getAbsentCount() {
-		return absentCount;
-	}
-
-	public void setAbsentCount(Integer absentCount) {
-		this.absentCount = absentCount;
-	}
-
-	public Integer getBreachCount() {
-		return breachCount;
-	}
-
-	public void setBreachCount(Integer breachCount) {
-		this.breachCount = breachCount;
-	}
-
-	public Integer getRealityCount() {
-		return realityCount;
-	}
+    private static final long serialVersionUID = -1596478079357284914L;
+
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue
+    private Integer id;
+
+    /**
+     * 考试id
+     */
+    @Column(name = "exam_id")
+    private Integer examId;
+
+    /**
+     * 课程编号
+     */
+    @Column(name = "subject_code")
+    private String subjectCode;
+
+    /**
+     * 课程名称
+     */
+    @Column(name = "subject_name")
+    private String subjectName;
+
+    /**
+     * 最高分
+     */
+    @Column(name = "max_score")
+    private Double maxScore;
+
+    /**
+     * 最低分
+     */
+    @Column(name = "min_score")
+    private Double minScore;
+
+    /**
+     * 平均分
+     */
+    @Column(name = "avg_score")
+    private Double avgScore;
+
+    /**
+     * 报考人数
+     */
+    @Column(name = "total_count")
+    private Integer totalCount;
+
+    /**
+     * 及格人数
+     */
+    @Column(name = "pass_count")
+    private Integer passCount;
+
+    /**
+     * 及格率
+     */
+    @Column(name = "pass_rate")
+    private Double passRate;
+
+    /**
+     * 缺考人数
+     */
+    @Column(name = "absent_count")
+    private Integer absentCount;
+
+    /**
+     * 违纪人数
+     */
+    @Column(name = "breach_count")
+    private Integer breachCount;
+
+    /**
+     * 实考人数
+     */
+    @Column(name = "reality_count")
+    private Integer realityCount;
+
+    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 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 Double getAvgScore() {
+        return avgScore;
+    }
+
+    public void setAvgScore(Double avgScore) {
+        this.avgScore = avgScore;
+    }
+
+    public Integer getTotalCount() {
+        return totalCount;
+    }
+
+    public void setTotalCount(Integer totalCount) {
+        this.totalCount = totalCount;
+    }
+
+    public Integer getPassCount() {
+        return passCount;
+    }
+
+    public void setPassCount(Integer passCount) {
+        this.passCount = passCount;
+    }
+
+    public Double getPassRate() {
+        return passRate;
+    }
+
+    public void setPassRate(Double passRate) {
+        this.passRate = passRate;
+    }
+
+    public Integer getAbsentCount() {
+        return absentCount;
+    }
+
+    public void setAbsentCount(Integer absentCount) {
+        this.absentCount = absentCount;
+    }
+
+    public Integer getBreachCount() {
+        return breachCount;
+    }
+
+    public void setBreachCount(Integer breachCount) {
+        this.breachCount = breachCount;
+    }
+
+    public Integer getRealityCount() {
+        return realityCount;
+    }
 
-	public void setRealityCount(Integer realityCount) {
-		this.realityCount = realityCount;
-	}
+    public void setRealityCount(Integer realityCount) {
+        this.realityCount = realityCount;
+    }
 
 }

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectClass.java

@@ -10,7 +10,7 @@ import java.io.Serializable;
  * @date 2019-04-12
  */
 @Entity
-@Table(name = "s_basic_subject_class")
+@Table(name = "s_basic_subject_class", indexes = {@Index(columnList = "exam_id,subject_code,class_name")})
 public class ReportSubjectClass implements Serializable {
 
     private static final long serialVersionUID = 1932022687226092788L;

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectCollege.java

@@ -10,7 +10,7 @@ import java.io.Serializable;
  * @date 2019-04-11
  */
 @Entity
-@Table(name = "s_basic_subject_college")
+@Table(name = "s_basic_subject_college", indexes = {@Index(columnList = "exam_id,subject_code")})
 public class ReportSubjectCollege implements Serializable {
 
     private static final long serialVersionUID = 3030910032864476591L;

+ 185 - 186
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectGroup.java

@@ -5,198 +5,197 @@ import java.io.Serializable;
 
 /**
  * 大题维度分析
- * 
+ *
  * @author xuwenjin
  * @date 2019-04-12
- *
  */
 @Entity
-@Table(name = "s_basic_group")
+@Table(name = "s_basic_group", indexes = {@Index(columnList = "exam_id,subject_code")})
 public class ReportSubjectGroup implements Serializable {
 
-	private static final long serialVersionUID = 3619846310455325739L;
-
-	/**
-	 * 主键
-	 */
-	@Id
-	@GeneratedValue
-	private Integer id;
-
-	/**
-	 * 考试id
-	 */
-	@Column(name = "exam_id")
-	private Integer examId;
-
-	/**
-	 * 课程编号
-	 */
-	@Column(name = "subject_code")
-	private String subjectCode;
-
-	/**
-	 * 课程名称
-	 */
-	@Column(name = "subject_name")
-	private String subjectName;
-
-	/**
-	 * 大题型
-	 */
-	@Column(name = "group_name")
-	private String groupName;
-
-	/**
-	 * 最高分
-	 */
-	@Column(name = "max_score")
-	private Double maxScore;
-
-	/**
-	 * 最低分
-	 */
-	@Column(name = "min_score")
-	private Double minScore;
-
-	/**
-	 * 平均分
-	 */
-	@Column(name = "avg_score")
-	private Double avgScore;
-
-	/**
-	 * 满分
-	 */
-	@Column(name = "total_score")
-	private Double totalScore;
-
-	/**
-	 * 标准差
-	 */
-	@Column(name = "sd")
-	private Double SD;
-
-	/**
-	 * 差异系数
-	 */
-	@Column(name = "cv")
-	private Double CV;
-
-	/**
-	 * 零分人数
-	 */
-	@Column(name = "zero_count")
-	private Integer zeroCount;
-
-	/**
-	 * 满分人数
-	 */
-	@Column(name = "full_count")
-	private Integer fullCount;
-
-	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 getGroupName() {
-		return groupName;
-	}
-
-	public void setGroupName(String groupName) {
-		this.groupName = groupName;
-	}
-
-	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 Double getAvgScore() {
-		return avgScore;
-	}
-
-	public void setAvgScore(Double avgScore) {
-		this.avgScore = avgScore;
-	}
-
-	public Double getTotalScore() {
-		return totalScore;
-	}
-
-	public void setTotalScore(Double totalScore) {
-		this.totalScore = totalScore;
-	}
-
-	public Double getSD() {
-		return SD;
-	}
-
-	public void setSD(Double sD) {
-		SD = sD;
-	}
-
-	public Double getCV() {
-		return CV;
-	}
-
-	public void setCV(Double cV) {
-		CV = cV;
-	}
-
-	public Integer getZeroCount() {
-		return zeroCount;
-	}
-
-	public void setZeroCount(Integer zeroCount) {
-		this.zeroCount = zeroCount;
-	}
-
-	public Integer getFullCount() {
-		return fullCount;
-	}
+    private static final long serialVersionUID = 3619846310455325739L;
+
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue
+    private Integer id;
+
+    /**
+     * 考试id
+     */
+    @Column(name = "exam_id")
+    private Integer examId;
+
+    /**
+     * 课程编号
+     */
+    @Column(name = "subject_code")
+    private String subjectCode;
+
+    /**
+     * 课程名称
+     */
+    @Column(name = "subject_name")
+    private String subjectName;
+
+    /**
+     * 大题型
+     */
+    @Column(name = "group_name")
+    private String groupName;
+
+    /**
+     * 最高分
+     */
+    @Column(name = "max_score")
+    private Double maxScore;
+
+    /**
+     * 最低分
+     */
+    @Column(name = "min_score")
+    private Double minScore;
+
+    /**
+     * 平均分
+     */
+    @Column(name = "avg_score")
+    private Double avgScore;
+
+    /**
+     * 满分
+     */
+    @Column(name = "total_score")
+    private Double totalScore;
+
+    /**
+     * 标准差
+     */
+    @Column(name = "sd")
+    private Double SD;
+
+    /**
+     * 差异系数
+     */
+    @Column(name = "cv")
+    private Double CV;
+
+    /**
+     * 零分人数
+     */
+    @Column(name = "zero_count")
+    private Integer zeroCount;
+
+    /**
+     * 满分人数
+     */
+    @Column(name = "full_count")
+    private Integer fullCount;
+
+    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 getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    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 Double getAvgScore() {
+        return avgScore;
+    }
+
+    public void setAvgScore(Double avgScore) {
+        this.avgScore = avgScore;
+    }
+
+    public Double getTotalScore() {
+        return totalScore;
+    }
+
+    public void setTotalScore(Double totalScore) {
+        this.totalScore = totalScore;
+    }
+
+    public Double getSD() {
+        return SD;
+    }
+
+    public void setSD(Double sD) {
+        SD = sD;
+    }
+
+    public Double getCV() {
+        return CV;
+    }
+
+    public void setCV(Double cV) {
+        CV = cV;
+    }
+
+    public Integer getZeroCount() {
+        return zeroCount;
+    }
+
+    public void setZeroCount(Integer zeroCount) {
+        this.zeroCount = zeroCount;
+    }
+
+    public Integer getFullCount() {
+        return fullCount;
+    }
 
-	public void setFullCount(Integer fullCount) {
-		this.fullCount = fullCount;
-	}
+    public void setFullCount(Integer fullCount) {
+        this.fullCount = fullCount;
+    }
 
 }

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectQuestion.java

@@ -10,7 +10,7 @@ import java.io.Serializable;
  * @date 2019-04-12
  */
 @Entity
-@Table(name = "s_basic_question")
+@Table(name = "s_basic_question", indexes = {@Index(columnList = "exam_id,subject_code")})
 public class ReportSubjectQuestion implements Serializable {
 
     private static final long serialVersionUID = 6724909968773149817L;

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectRange.java

@@ -10,7 +10,7 @@ import java.io.Serializable;
  * @date 2019-04-19
  */
 @Entity
-@Table(name = "s_range_subject")
+@Table(name = "s_range_subject", indexes = {@Index(columnList = "exam_id,subject_code")})
 public class ReportSubjectRange implements Serializable {
 
     private static final long serialVersionUID = -6460526419770818333L;

+ 196 - 197
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectTeacher.java

@@ -5,211 +5,210 @@ import java.io.Serializable;
 
 /**
  * 课程任课老师成绩分析
- * 
+ *
  * @author xuwenjin
  * @date 2019-04-12
- *
  */
 @Entity
-@Table(name = "s_basic_subject_teacher")
+@Table(name = "s_basic_subject_teacher", indexes = {@Index(columnList = "exam_id,subject_code,teacher_name")})
 public class ReportSubjectTeacher implements Serializable {
 
-	private static final long serialVersionUID = -8747256777581891978L;
-
-	/**
-	 * 主键
-	 */
-	@Id
-	@GeneratedValue
-	private Integer id;
-
-	/**
-	 * 考试id
-	 */
-	@Column(name = "exam_id")
-	private Integer examId;
-
-	/**
-	 * 课程编号
-	 */
-	@Column(name = "subject_code")
-	private String subjectCode;
-
-	/**
-	 * 课程名称
-	 */
-	@Column(name = "subject_name")
-	private String subjectName;
-
-	/**
-	 * 教师
-	 */
-	@Column(name = "teacher_name")
-	private String teacherName;
-
-	/**
-	 * 实考人数
-	 */
-	@Column(name = "reality_count")
-	private int realityCount;
-
-	/**
-	 * 最高分
-	 */
-	@Column(name = "max_score")
-	private Double maxScore;
-
-	/**
-	 * 最低分
-	 */
-	@Column(name = "min_score")
-	private Double minScore;
-	/**
-	 * 及格人数
-	 */
-	@Column(name = "pass_count")
-	private int passCount;
-
-	/**
-	 * 及格率
-	 */
-	@Column(name = "pass_rate")
-	private Double passRate;
-
-	/**
-	 * 优秀数
-	 */
-	@Column(name = "excellent_count")
-	private int excellentCount;
-
-	/**
-	 * 优秀率
-	 */
-	@Column(name = "excellent_rate")
-	private Double excellentRate;
-
-	/**
-	 * 平均分
-	 */
-	@Column(name = "avg_score")
-	private Double avgScore;
-
-	/**
-	 * 相对平均分
-	 */
-	@Column(name = "relative_avg_score")
-	private Double relativeAvgScore;
-
-	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 getTeacherName() {
-		return teacherName;
-	}
-
-	public void setTeacherName(String teacherName) {
-		this.teacherName = teacherName;
-	}
-
-	public int getRealityCount() {
-		return realityCount;
-	}
-
-	public void setRealityCount(int realityCount) {
-		this.realityCount = realityCount;
-	}
-
-	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 int getPassCount() {
-		return passCount;
-	}
-
-	public void setPassCount(int passCount) {
-		this.passCount = passCount;
-	}
-
-	public Double getPassRate() {
-		return passRate;
-	}
-
-	public void setPassRate(Double passRate) {
-		this.passRate = passRate;
-	}
-
-	public int getExcellentCount() {
-		return excellentCount;
-	}
-
-	public void setExcellentCount(int excellentCount) {
-		this.excellentCount = excellentCount;
-	}
-
-	public Double getExcellentRate() {
-		return excellentRate;
-	}
-
-	public void setExcellentRate(Double excellentRate) {
-		this.excellentRate = excellentRate;
-	}
-
-	public Double getAvgScore() {
-		return avgScore;
-	}
+    private static final long serialVersionUID = -8747256777581891978L;
+
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue
+    private Integer id;
+
+    /**
+     * 考试id
+     */
+    @Column(name = "exam_id")
+    private Integer examId;
+
+    /**
+     * 课程编号
+     */
+    @Column(name = "subject_code")
+    private String subjectCode;
+
+    /**
+     * 课程名称
+     */
+    @Column(name = "subject_name")
+    private String subjectName;
+
+    /**
+     * 教师
+     */
+    @Column(name = "teacher_name")
+    private String teacherName;
+
+    /**
+     * 实考人数
+     */
+    @Column(name = "reality_count")
+    private int realityCount;
+
+    /**
+     * 最高分
+     */
+    @Column(name = "max_score")
+    private Double maxScore;
+
+    /**
+     * 最低分
+     */
+    @Column(name = "min_score")
+    private Double minScore;
+    /**
+     * 及格人数
+     */
+    @Column(name = "pass_count")
+    private int passCount;
+
+    /**
+     * 及格率
+     */
+    @Column(name = "pass_rate")
+    private Double passRate;
+
+    /**
+     * 优秀数
+     */
+    @Column(name = "excellent_count")
+    private int excellentCount;
+
+    /**
+     * 优秀率
+     */
+    @Column(name = "excellent_rate")
+    private Double excellentRate;
+
+    /**
+     * 平均分
+     */
+    @Column(name = "avg_score")
+    private Double avgScore;
+
+    /**
+     * 相对平均分
+     */
+    @Column(name = "relative_avg_score")
+    private Double relativeAvgScore;
+
+    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 getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public int getRealityCount() {
+        return realityCount;
+    }
+
+    public void setRealityCount(int realityCount) {
+        this.realityCount = realityCount;
+    }
+
+    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 int getPassCount() {
+        return passCount;
+    }
+
+    public void setPassCount(int passCount) {
+        this.passCount = passCount;
+    }
+
+    public Double getPassRate() {
+        return passRate;
+    }
+
+    public void setPassRate(Double passRate) {
+        this.passRate = passRate;
+    }
+
+    public int getExcellentCount() {
+        return excellentCount;
+    }
+
+    public void setExcellentCount(int excellentCount) {
+        this.excellentCount = excellentCount;
+    }
+
+    public Double getExcellentRate() {
+        return excellentRate;
+    }
+
+    public void setExcellentRate(Double excellentRate) {
+        this.excellentRate = excellentRate;
+    }
+
+    public Double getAvgScore() {
+        return avgScore;
+    }
 
-	public void setAvgScore(Double avgScore) {
-		this.avgScore = avgScore;
-	}
+    public void setAvgScore(Double avgScore) {
+        this.avgScore = avgScore;
+    }
 
-	public Double getRelativeAvgScore() {
-		return relativeAvgScore;
-	}
+    public Double getRelativeAvgScore() {
+        return relativeAvgScore;
+    }
 
-	public void setRelativeAvgScore(Double relativeAvgScore) {
-		this.relativeAvgScore = relativeAvgScore;
-	}
+    public void setRelativeAvgScore(Double relativeAvgScore) {
+        this.relativeAvgScore = relativeAvgScore;
+    }
 
 }

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectTeacherClass.java

@@ -10,7 +10,7 @@ import java.io.Serializable;
  * @date 2019-04-12
  */
 @Entity
-@Table(name = "s_basic_subject_teacher_class")
+@Table(name = "s_basic_subject_teacher_class", indexes = {@Index(columnList = "exam_id,subject_code,teacher_name")})
 public class ReportSubjectTeacherClass implements Serializable {
 
     private static final long serialVersionUID = 711106040799843384L;

+ 3 - 3
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectCollegeServiceImpl.java

@@ -72,10 +72,10 @@ public class ReportSubjectCollegeServiceImpl extends BaseQueryService<ReportSubj
             subject.setCollegeName(rs[0].toString());
             subject.setMaxScore(Double.parseDouble(rs[1].toString()));
             subject.setMinScore(Double.parseDouble(rs[2].toString()));
-            subject.setAvgScore(DoubleUtil.format(Double.parseDouble(rs[3].toString()), "0.000000"));
+            subject.setAvgScore(DoubleUtil.format(Double.parseDouble(rs[3].toString()), "0.00"));
             subject.setPassCount(Integer.parseInt(rs[4].toString()));
-            subject.setPassRate(DoubleUtil.div(Double.parseDouble(rs[4].toString()),Integer.parseInt(rs[6].toString()),6));
-            subject.setExcellentRate(DoubleUtil.div(Double.parseDouble(rs[5].toString()),Integer.parseInt(rs[6].toString()),6));
+            subject.setPassRate(DoubleUtil.div(Double.parseDouble(rs[4].toString()),Integer.parseInt(rs[6].toString()),2));
+            subject.setExcellentRate(DoubleUtil.div(Double.parseDouble(rs[5].toString()),Integer.parseInt(rs[6].toString()),2));
             reportSubjectCollegeDao.save(subject);
         }
     }

+ 37 - 11
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectGroupServiceImpl.java

@@ -12,6 +12,7 @@ import cn.com.qmth.stmms.biz.report.model.ReportSubjectGroup;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectGroupService;
 import cn.com.qmth.stmms.biz.utils.DoubleUtil;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
@@ -113,19 +114,25 @@ public class ReportSubjectGroupServiceImpl extends BaseQueryService<ReportSubjec
             Double variance = 0d;
             for (int j = 0; j < studentCount; j++) {
                 ExamStudent student = examStudentList.get(j);
-                String[] answers;
+                String[] answers = null;
                 if (objective) {
-                    answers = student.getObjectiveScoreList().split(";");
+                    if (StringUtils.isNotBlank(student.getObjectiveScoreList())) {
+                        answers = student.getObjectiveScoreList().split(";");
+                    }
                 } else {
-                    answers = student.getSubjectiveScoreList().split(";");
+                    if (StringUtils.isNotBlank(student.getSubjectiveScoreList())) {
+                        answers = student.getSubjectiveScoreList().split(";");
+                    }
                 }
                 Double score = 0d;
                 for (int k = begin; k < begin + questionCount; k++) {
                     Double s = 0d;
-                    if (objective) {
-                        s = Double.parseDouble(answers[k].split(":")[1]);
-                    } else {
-                        s = Double.parseDouble(answers[k]);
+                    if (answers != null) {
+                        if (objective) {
+                            s = Double.parseDouble(answers[k].split(":")[1]);
+                        } else {
+                            s = Double.parseDouble(answers[k]);
+                        }
                     }
                     score = DoubleUtil.sum(score, s);
                 }
@@ -147,18 +154,37 @@ public class ReportSubjectGroupServiceImpl extends BaseQueryService<ReportSubjec
             //计算方差
             for (int j = 0; j < studentCount; j++) {
                 ExamStudent student = examStudentList.get(j);
-                String[] objectiveAnswers = student.getObjectiveScoreList().split(";");
+                String[] answers = null;
+                if (objective) {
+                    if (StringUtils.isNotBlank(student.getObjectiveScoreList())) {
+                        answers = student.getObjectiveScoreList().split(";");
+                    }
+                } else {
+                    if (StringUtils.isNotBlank(student.getSubjectiveScoreList())) {
+                        answers = student.getSubjectiveScoreList().split(";");
+                    }
+                }
                 Double score = 0d;
                 for (int k = begin; k < begin + questionCount; k++) {
-                    Double s = Double.parseDouble(objectiveAnswers[i].split(":")[1]);
+                    Double s = 0d;
+                    if (answers != null) {
+                        if (objective) {
+                            s = Double.parseDouble(answers[k].split(":")[1]);
+                        } else {
+                            s = Double.parseDouble(answers[k]);
+                        }
+                    }
                     score = DoubleUtil.sum(score, s);
                 }
                 variance = DoubleUtil.sum(variance, DoubleUtil.mul(DoubleUtil.sub(score, avgScore), DoubleUtil.sub(score, avgScore)));
             }
             //标准差
-            Double sd = DoubleUtil.format(Math.sqrt(variance / studentCount), "0.000000");
+            Double sd = DoubleUtil.format(Math.sqrt(variance / studentCount), "0.00");
             //差异系数
-            Double cv = DoubleUtil.mul(DoubleUtil.div(sd, avgScore, 4), 100);
+            Double cv = 0d;
+            if (avgScore.doubleValue() > 0) {
+                cv = DoubleUtil.mul(DoubleUtil.div(sd, avgScore, 4), 100);
+            }
             ReportSubjectGroup reportSubjectGroup = new ReportSubjectGroup();
             reportSubjectGroup.setExamId(examId);
             reportSubjectGroup.setSubjectCode(subjectCode);

+ 4 - 4
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectQuestionServiceImpl.java

@@ -119,7 +119,7 @@ public class ReportSubjectQuestionServiceImpl extends BaseQueryService<ReportSub
                         fullScoreCount++;
                     }
                 }
-                Double avgScore = DoubleUtil.div(sumScore, examStudentList.size(), 6);
+                Double avgScore = DoubleUtil.div(sumScore, examStudentList.size(), 2);
                 for (int j = 0; j < studentCount; j++) {
                     ExamStudent student = examStudentList.get(j);
                     Double score = 0d;
@@ -144,9 +144,9 @@ public class ReportSubjectQuestionServiceImpl extends BaseQueryService<ReportSub
                 reportSubjectQuestion.setQuestionName(question.getMainTitle() + "_" + (i + 1));
                 reportSubjectQuestion.setTotalScore(question.getTotalScore());
                 reportSubjectQuestion.setAvgScore(avgScore);
-                reportSubjectQuestion.setScoreRate(DoubleUtil.div(scoreCount, studentCount, 6));
-                reportSubjectQuestion.setSd(DoubleUtil.format(Math.sqrt(variance / studentCount), "0.000000"));
-                reportSubjectQuestion.setFullScoreRate(DoubleUtil.div(fullScoreCount, studentCount, 6));
+                reportSubjectQuestion.setScoreRate(DoubleUtil.div(scoreCount, studentCount, 2));
+                reportSubjectQuestion.setSd(DoubleUtil.format(Math.sqrt(variance / studentCount), "0.00"));
+                reportSubjectQuestion.setFullScoreRate(DoubleUtil.div(fullScoreCount, studentCount, 2));
                 reportSubjectQuestionDao.save(reportSubjectQuestion);
             }
         }

+ 1 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectTeacherClassServiceImpl.java

@@ -90,8 +90,7 @@ public class ReportSubjectTeacherClassServiceImpl extends BaseQueryService<Repor
             teacherClass.setPassRate(DoubleUtil.div(teacherClass.getPassCount(), teacherClass.getRealityCount(), 2));
             teacherClass.setExcellentRate(DoubleUtil.div(teacherClass.getExcellentCount(), teacherClass.getRealityCount(), 2));
             teacherClass.setAvgScore(DoubleUtil.format(Double.parseDouble(rs[7].toString()),"0.00"));
-            teacherClass.setRelativeAvgScore(Double.parseDouble(String.format("%.2f",
-                    Double.parseDouble(rs[7].toString()) - subjectAvgScore)));
+            teacherClass.setRelativeAvgScore(DoubleUtil.format(Double.parseDouble(rs[7].toString()) - subjectAvgScore,"0.00"));
             reportSubjectTeacherClassDao.save(teacherClass);
         }
     }

+ 2 - 3
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectTeacherServiceImpl.java

@@ -87,9 +87,8 @@ public class ReportSubjectTeacherServiceImpl extends BaseQueryService<ReportSubj
             subject.setMinScore(Double.parseDouble(rs[5].toString()));
             subject.setPassRate(DoubleUtil.div(subject.getPassCount(), subject.getRealityCount(), 2));
             subject.setExcellentRate(DoubleUtil.div(subject.getExcellentCount(), subject.getRealityCount(), 2));
-            subject.setAvgScore(DoubleUtil.format(Double.parseDouble(rs[6].toString()),"0.00000"));
-            subject.setRelativeAvgScore(Double.parseDouble(String.format("%.2f",
-                    Double.parseDouble(rs[6].toString()) - subjectAvgScore)));
+            subject.setAvgScore(DoubleUtil.format(Double.parseDouble(rs[6].toString()),"0.00"));
+            subject.setRelativeAvgScore(DoubleUtil.format(Double.parseDouble(rs[6].toString()) - subjectAvgScore,"0.00"));
             reportSubjectTeacherDao.save(subject);
         }
     }