Browse Source

删除清理成绩分析中无用代码

ting.yin 6 years ago
parent
commit
a2e7876aca
40 changed files with 62 additions and 2104 deletions
  1. 0 34
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamStudentDao.java
  2. 0 12
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ScoreRateDao.java
  3. 0 144
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/ScoreRate.java
  4. 0 136
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/ScoreRatePK.java
  5. 0 8
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java
  6. 0 14
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ScoreRateService.java
  7. 0 20
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java
  8. 0 84
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ScoreRateServiceImpl.java
  9. 0 56
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/query/ScoreRateSearchQuery.java
  10. 3 29
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectClassDao.java
  11. 3 27
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectCollegeDao.java
  12. 0 19
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectDao.java
  13. 1 8
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectGroupDao.java
  14. 3 18
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectRangeDao.java
  15. 0 18
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectTeacherClassDao.java
  16. 0 19
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectTeacherDao.java
  17. 0 5
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportService.java
  18. 0 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectClassService.java
  19. 0 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectCollegeService.java
  20. 0 10
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectGroupService.java
  21. 0 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectQuestionService.java
  22. 0 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectRangeService.java
  23. 0 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectService.java
  24. 0 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectTeacherClassService.java
  25. 0 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectTeacherService.java
  26. 0 88
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportServiceImpl.java
  27. 6 27
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectClassServiceImpl.java
  28. 17 38
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectCollegeServiceImpl.java
  29. 2 256
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectGroupServiceImpl.java
  30. 23 113
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectQuestionServiceImpl.java
  31. 4 40
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectRangeServiceImpl.java
  32. 0 23
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectServiceImpl.java
  33. 0 28
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectTeacherClassServiceImpl.java
  34. 0 26
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectTeacherServiceImpl.java
  35. 0 124
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/ScoreRateDTO.java
  36. 0 97
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ScoreRateController.java
  37. 0 123
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/StatisticsController.java
  38. 0 230
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/vo/StatisticsVO.java
  39. 0 93
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/scoreRateInfo.jsp
  40. 0 123
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/statisticsInfo.jsp

+ 0 - 34
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamStudentDao.java

@@ -131,40 +131,6 @@ public interface ExamStudentDao
             + "exists (select l.id from MarkLibrary l where l.studentId=s.id)")
     public List<ExamStudent> findAbsentOrBreachLibraryStudent(Integer examId, String subjectCode);
 
-    @Query("select sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 0 and 49.9 then 1 else 0 end),"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 50 and 59.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 60 and 69.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 70 and 79.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 80 and 89.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 90 and 100 then 1 else 0 end),"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 0 and 59.9 then 1 else 0 end), "
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 60 and 100 then 1 else 0 end) "
-            + " from ExamStudent s where s.examId=?1 and s.subjectCode=?2 and s.upload=?3  and s.absent=?4 ")
-    public List<Object[]> statisticsByExamIdAndSubjectCode(Integer examId, String code, Boolean upload, boolean absent);
-
-    @Query("select sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 0 and 49.9 then 1 else 0 end),"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 50 and 59.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 60 and 69.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 70 and 79.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 80 and 89.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 90 and 100 then 1 else 0 end), "
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 0 and 59.9 then 1 else 0 end), "
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 60 and 100 then 1 else 0 end) "
-            + " from ExamStudent s where s.examId=?1 and s.subjectCode=?2 ")
-    public List<Object[]> statisticsByExamIdAndSubjectCode(Integer examId, String code);
-
-    @Query("select sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 0 and 49.9 then 1 else 0 end),"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 50 and 59.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 60 and 69.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 70 and 79.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 80 and 89.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 90 and 100 then 1 else 0 end),"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 0 and 59.9 then 1 else 0 end), "
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 60 and 100 then 1 else 0 end) "
-            + " from ExamStudent s where s.examId=?1 and s.subjectCode=?2 and s.upload=?3  and s.absent=?4 and s.breach = ?5")
-    public List<Object[]> statisticsByAbsentAndBreach(Integer examId, String code, Boolean upload, boolean absent,
-            boolean breach);
-
     @Query(value = "select s.id from eb_exam_student s where 1=1 and s.id in (select m.student_id from m_library m where 1=1 and m.marker_id in (select m.id from eb_marker m where 1=1 and m.login_name = ?1 ))", nativeQuery = true)
     public List<String[]> findIdsByMarkLogin(String markLogin);
 

+ 0 - 12
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ScoreRateDao.java

@@ -1,12 +0,0 @@
-package cn.com.qmth.stmms.biz.exam.dao;
-
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.data.repository.PagingAndSortingRepository;
-
-import cn.com.qmth.stmms.biz.exam.model.ScoreRate;
-import cn.com.qmth.stmms.biz.exam.model.ScoreRatePK;
-
-public interface ScoreRateDao extends PagingAndSortingRepository<ScoreRate, ScoreRatePK>,
-        JpaSpecificationExecutor<ScoreRate> {
-
-}

+ 0 - 144
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/ScoreRate.java

@@ -1,144 +0,0 @@
-package cn.com.qmth.stmms.biz.exam.model;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-
-import javax.persistence.Column;
-import javax.persistence.EmbeddedId;
-import javax.persistence.Entity;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-
-/**
- * 统计得分率
- *
- */
-@Entity
-@Table(name = "s_score_rate")
-public class ScoreRate  implements Serializable {
-
-	private static final long serialVersionUID = 144070071029754523L;
-
-	@EmbeddedId
-    private ScoreRatePK pk;
-
-    @Column(name = "main_title")
-    private String mainTitle;
-
-    @Column(name = "total_score")
-    private Double totalScore;
-
-    @Column(name = "avg_score")
-    private Double avgScore;
-
-    @Transient
-    private ExamSubject subject;
-    
-    @Transient
-    private double rate;
-
-    public ScoreRate() {
-        this.pk = new ScoreRatePK();
-    }
-
-    public Integer getExamId() {
-        return pk.getExamId();
-    }
-
-    public void setExamId(Integer examId) {
-        pk.setExamId(examId);
-    }
-    
-    public String getCampusName() {
-		return pk.getCampusName();
-	}
-
-	public void setCampusName(String campusName) {
-		pk.setCampusName(campusName);
-	}
-
-    public String getSubjectCode() {
-        return pk.getSubjectCode();
-    }
-
-    public void setSubjectCode(String subjectCode) {
-        pk.setSubjectCode(subjectCode);
-    }
-
-    public Integer getMainNumber() {
-        return pk.getMainNumber();
-    }
-
-    public void setMainNumber(Integer mainNumber) {
-        pk.setMainNumber(mainNumber);
-    }
-
-    public Integer getSubNumber() {
-        return pk.getSubNumber();
-    }
-
-    public void setSubNumber(Integer subNumber) {
-        pk.setSubNumber(subNumber);
-    }
-
-    public String getMainTitle() {
-        return mainTitle;
-    }
-
-    public void setObjective(boolean objective) {
-        pk.setObjective(objective);
-    }
-
-    public boolean isObjective() {
-        return pk.isObjective();
-    }
-
-    public void setMainTitle(String mainTitle) {
-        this.mainTitle = mainTitle;
-    }
-
-    public Double getTotalScore() {
-        return totalScore;
-    }
-
-    public void setTotalScore(Double totalScore) {
-        this.totalScore = totalScore;
-    }
-
-    public String getName() {
-        if (mainTitle != null && getSubNumber() != null) {
-            return mainTitle + "-" + getSubNumber();
-        } else {
-            return "";
-        }
-    }
-
-    public ExamSubject getSubject() {
-        return subject;
-    }
-
-    public void setSubject(ExamSubject subject) {
-        this.subject = subject;
-    }
-
-    public String getQuestionNumber() {
-        return getMainNumber() + "-" + getSubNumber();
-    }
-
-	public Double getAvgScore() {
-		return avgScore;
-	}
-
-	public void setAvgScore(Double avgScore) {
-		this.avgScore = avgScore;
-	}
-
-	public double getRate() {
-		return new BigDecimal(getAvgScore()*100.00/getTotalScore()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
-	}
-
-	public void setRate(double rate) {
-		this.rate = rate;
-	}
-
-}

+ 0 - 136
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/ScoreRatePK.java

@@ -1,136 +0,0 @@
-package cn.com.qmth.stmms.biz.exam.model;
-
-import java.io.Serializable;
-
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
-
-@Embeddable
-public class ScoreRatePK implements Serializable {
-
-	private static final long serialVersionUID = 2278891125776938996L;
-
-	@Column(name = "exam_id")
-    private Integer examId;
-	
-    @Column(name = "campus_name")
-    private String campusName;
-
-    @Column(name = "subject_code")
-    private String subjectCode;
-
-    @Column(name = "main_number")
-    private Integer mainNumber;
-
-    @Column(name = "sub_number")
-    private Integer subNumber;
-
-    @Column(name = "is_objective")
-    private boolean objective;
-
-    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 Integer getMainNumber() {
-        return mainNumber;
-    }
-
-    public void setMainNumber(Integer mainNumber) {
-        this.mainNumber = mainNumber;
-    }
-
-    public Integer getSubNumber() {
-        return subNumber;
-    }
-
-    public void setSubNumber(Integer subNumber) {
-        this.subNumber = subNumber;
-    }
-
-    public boolean isObjective() {
-        return objective;
-    }
-
-    public void setObjective(boolean objective) {
-        this.objective = objective;
-    }
-
-    public String getCampusName() {
-		return campusName;
-	}
-
-	public void setCampusName(String campusName) {
-		this.campusName = campusName;
-	}
-
-	@Override
-    public int hashCode() {
-        final int PRIME = 31;
-        int result = 1;
-        result = PRIME * result + ((examId == null) ? 0 : examId.hashCode());
-        result = PRIME * result + (campusName ==null ? 0 : campusName.hashCode());
-        result = PRIME * result + ((subjectCode == null) ? 0 : subjectCode.hashCode());
-        result = PRIME * result + ((mainNumber == null) ? 0 : mainNumber.hashCode());
-        result = PRIME * result + ((subNumber == null) ? 0 : subNumber.hashCode());
-        result = PRIME * result + (objective ? 1 : 0);
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
-            return false;
-        final ScoreRatePK other = (ScoreRatePK) obj;
-        if (examId == null) {
-            if (other.examId != null)
-                return false;
-        } else if (!examId.equals(other.examId))
-            return false;
-        if (campusName == null) {
-            if (other.campusName != null)
-                return false;
-        } else if (!campusName.equals(other.campusName))
-            return false;
-        if (subjectCode == null) {
-            if (other.subjectCode != null)
-                return false;
-        } else if (!subjectCode.equals(other.subjectCode))
-            return false;
-
-        if (mainNumber == null) {
-            if (other.mainNumber != null)
-                return false;
-        } else if (!mainNumber.equals(other.mainNumber))
-            return false;
-
-        if (subNumber == null) {
-            if (other.subNumber != null)
-                return false;
-        } else if (!subNumber.equals(other.subNumber))
-            return false;
-
-        if (objective != other.objective) {
-            return false;
-        }
-
-        return true;
-    }
-
-}

+ 0 - 8
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java

@@ -90,11 +90,6 @@ public interface ExamStudentService {
 
     List<ExamStudent> findAbsentOrBreachLibraryStudent(int examId, String subjectCode);
 
-    public List<Object[]> statisticsByExamIdAndSubjectCode(Integer examId, String subjectCode);
-
-    public List<Object[]> statisticsByExamIdAndSubjectCode(Integer examId, String subjectCode, boolean upload,
-            boolean absent);
-
     public Long countByExamIdAndSubjectCodeAndCampus(Integer examId, String code, String campusName, boolean upload,
             boolean absent);
 
@@ -109,9 +104,6 @@ public interface ExamStudentService {
 
     List<ExamStudent> findByExamId(int examId, int pageNumber, int pageSize);
 
-    List<Object[]> statisticsByAbsentAndBreach(Integer examId, String code, Boolean upload, boolean absent,
-            boolean breach);
-
     List<PictureTag> buildSheetTags(ExamStudent student, int index);
 
     Map<Integer, List<PictureTag>> buildSheetTags(ExamStudent student);

+ 0 - 14
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ScoreRateService.java

@@ -1,14 +0,0 @@
-package cn.com.qmth.stmms.biz.exam.service;
-
-import cn.com.qmth.stmms.biz.exam.model.ScoreRate;
-import cn.com.qmth.stmms.biz.exam.service.query.ScoreRateSearchQuery;
-
-public interface ScoreRateService {
-
-	ScoreRate save(ScoreRate scoreRate);
-
-	ScoreRate findOne(int examId, String subjectCode,String campusName, boolean objective, int mainNumber, int subNumber);
-
-	ScoreRateSearchQuery findByQuery(ScoreRateSearchQuery query);
-
-}

+ 0 - 20
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -685,17 +685,6 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
         return studentDao.countByExamIdAndSubjectiveScoreListNotNull(examId);
     }
 
-    @Override
-    public List<Object[]> statisticsByExamIdAndSubjectCode(Integer examId, String subjectCode) {
-        return studentDao.statisticsByExamIdAndSubjectCode(examId, subjectCode);
-    }
-
-    @Override
-    public List<Object[]> statisticsByExamIdAndSubjectCode(Integer examId, String subjectCode, boolean upload,
-            boolean absent) {
-        return studentDao.statisticsByExamIdAndSubjectCode(examId, subjectCode, upload, absent);
-    }
-
     @Override
     public Long countByExamIdAndSubjectCodeAndCampus(Integer examId, String subjectCode, String campusName,
             boolean upload, boolean absent) {
@@ -744,15 +733,6 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
         return StringUtils.join(o, ",");
     }
 
-    @Override
-    /**
-     * 根据缺考和违纪字段联合查询
-     */
-    public List<Object[]> statisticsByAbsentAndBreach(Integer examId, String code, Boolean upload, boolean absent,
-            boolean breach) {
-        return studentDao.statisticsByAbsentAndBreach(examId, code, upload, absent, breach);
-    }
-
     /**
      * 根据考生获得某张原图上的评卷标记和分数明细
      */

+ 0 - 84
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ScoreRateServiceImpl.java

@@ -1,84 +0,0 @@
-package cn.com.qmth.stmms.biz.exam.service.impl;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import cn.com.qmth.stmms.biz.common.BaseQueryService;
-import cn.com.qmth.stmms.biz.exam.dao.ScoreRateDao;
-import cn.com.qmth.stmms.biz.exam.model.ScoreRate;
-import cn.com.qmth.stmms.biz.exam.model.ScoreRatePK;
-import cn.com.qmth.stmms.biz.exam.service.ScoreRateService;
-import cn.com.qmth.stmms.biz.exam.service.query.ScoreRateSearchQuery;
-
-@Service
-public class ScoreRateServiceImpl extends BaseQueryService<ScoreRate> implements ScoreRateService {
-
-    @Autowired
-    private ScoreRateDao scoreRateDao;
-
-    @Transactional
-    @Override
-    public ScoreRate save(ScoreRate scoreRate) {
-        return scoreRateDao.save(scoreRate);
-    }
-
-    @Override
-    public ScoreRate findOne(int examId, String subjectCode,String campusName, boolean objective, int mainNumber, int subNumber) {
-    	ScoreRatePK pk = new ScoreRatePK();
-        pk.setExamId(examId);
-        pk.setSubjectCode(subjectCode);
-        pk.setCampusName(campusName);
-        pk.setMainNumber(mainNumber);
-        pk.setSubNumber(subNumber);
-        pk.setObjective(objective);
-        return scoreRateDao.findOne(pk);
-    }
-
-    @Override
-    public ScoreRateSearchQuery findByQuery(ScoreRateSearchQuery query) {
-        checkQuery(query);
-        query.setSort(new Sort(Direction.ASC, "pk.subjectCode", "pk.campusName","pk.mainNumber", "pk.subNumber"));
-        Page<ScoreRate> result = scoreRateDao.findAll(buildSpecification(query), query);
-        fillResult(result, query);
-        return query;
-    }
-
-    private Specification<ScoreRate> buildSpecification(final ScoreRateSearchQuery query) {
-        return new Specification<ScoreRate>() {
-
-            @Override
-            public Predicate toPredicate(Root<ScoreRate> root, CriteriaQuery<?> cQuery, CriteriaBuilder cb) {
-
-                List<Predicate> predicates = new LinkedList<Predicate>();
-                if (query.getExamId() > 0) {
-                    predicates.add(cb.equal(root.get("pk").get("examId"), query.getExamId()));
-                }
-                if (StringUtils.isNotEmpty(query.getCampusName())) {
-                	predicates.add(cb.equal(root.get("pk").get("campusName"), query.getCampusName()));
-                }
-                if (StringUtils.isNotEmpty(query.getSubjectCode())) {
-                    predicates.add(cb.equal(root.get("pk").get("subjectCode"), query.getSubjectCode()));
-                }
-                if (query.getObjective() != null) {
-                    predicates.add(cb.equal(root.get("pk").get("objective"), query.getObjective()));
-                }
-                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
-                        .size()]));
-            }
-        };
-    }
-}

+ 0 - 56
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/query/ScoreRateSearchQuery.java

@@ -1,56 +0,0 @@
-package cn.com.qmth.stmms.biz.exam.service.query;
-
-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.model.ScoreRate;
-
-public class ScoreRateSearchQuery extends BaseQuery<ScoreRate> {
-
-    private int examId;
-    
-    private String campusName;
-
-    private String subjectCode;
-
-    private Boolean objective;
-    
-
-    public void orderBySubjectAndNumber() {
-        setSort(new Sort(Direction.ASC, "pk.subjectCode", "pk.campusName","pk.mainNumber", "pk.subNumber"));
-    }
-
-    public int getExamId() {
-        return examId;
-    }
-
-    public void setExamId(int examId) {
-        this.examId = examId;
-    }
-
-    public String getSubjectCode() {
-        return subjectCode;
-    }
-
-    public void setSubjectCode(String subjectCode) {
-        this.subjectCode = subjectCode;
-    }
-
-    public Boolean getObjective() {
-        return objective;
-    }
-
-    public void setObjective(Boolean objective) {
-        this.objective = objective;
-    }
-
-	public String getCampusName() {
-		return campusName;
-	}
-
-	public void setCampusName(String campusName) {
-		this.campusName = campusName;
-	}
-
-}

+ 3 - 29
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectClassDao.java

@@ -1,13 +1,11 @@
 package cn.com.qmth.stmms.biz.report.dao;
 
-import cn.com.qmth.stmms.biz.report.model.ReportSubjectClass;
-
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
-import java.util.List;
+import cn.com.qmth.stmms.biz.report.model.ReportSubjectClass;
 
 /**
  * 课程班级成绩分析 Dao
@@ -15,35 +13,11 @@ import java.util.List;
  * @author xuwenjin
  * @date 2019-04-16
  */
-public interface ReportSubjectClassDao
-        extends PagingAndSortingRepository<ReportSubjectClass, Integer>, JpaSpecificationExecutor<ReportSubjectClass> {
+public interface ReportSubjectClassDao extends PagingAndSortingRepository<ReportSubjectClass, Integer>,
+        JpaSpecificationExecutor<ReportSubjectClass> {
 
     @Modifying
     @Query("delete from ReportSubjectClass r where r.examId=?1 ")
     void deleteByExamId(Integer exmaId);
 
-
-    /**
-     * 获取课程班级分析数据
-     *
-     * @param examId
-     * @param subjectCode
-     * @return List<Object [ ]>
-     */
-    @Query(value = "SELECT " +
-            "s.className," +
-            "avg( s.objectiveScore + s.subjectiveScore ) ," +
-            "max( s.objectiveScore + s.subjectiveScore ) ," +
-            "min( s.objectiveScore + s.subjectiveScore ) ," +
-            "sum( CASE WHEN ( s.objectiveScore + s.subjectiveScore ) >= e.passScore THEN 1 ELSE 0 END ) ," +
-            "sum( CASE WHEN ( s.objectiveScore + s.subjectiveScore ) >= e.excellentScore THEN 1 ELSE 0 END ) ," +
-            "count(s) " +
-            "FROM " +
-            "ExamStudent s ,Exam e " +
-            "where s.examId = e.id " +
-            "and " +
-            "s.examId = ?1 AND s.subjectCode = ?2 and s.className is not null and s.absent = false " +
-            "GROUP BY s.className")
-    List<Object[]> queryReportSubjectClassData(Integer examId, String subjectCode);
-
 }

+ 3 - 27
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectCollegeDao.java

@@ -1,13 +1,11 @@
 package cn.com.qmth.stmms.biz.report.dao;
 
-import cn.com.qmth.stmms.biz.report.model.ReportSubjectCollege;
-
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
-import java.util.List;
+import cn.com.qmth.stmms.biz.report.model.ReportSubjectCollege;
 
 /**
  * 课程学院分析 Dao
@@ -15,33 +13,11 @@ import java.util.List;
  * @author xuwenjin
  * @date 2019-04-15
  */
-public interface ReportSubjectCollegeDao
-        extends PagingAndSortingRepository<ReportSubjectCollege, Integer>, JpaSpecificationExecutor<ReportSubjectCollege> {
+public interface ReportSubjectCollegeDao extends PagingAndSortingRepository<ReportSubjectCollege, Integer>,
+        JpaSpecificationExecutor<ReportSubjectCollege> {
 
     @Modifying
     @Query("delete from ReportSubjectCollege r where r.examId=?1 ")
     void deleteByExamId(Integer exmaId);
 
-
-    /**
-     * 获取课程学院分析数据
-     *
-     * @param examId
-     * @param subjectCode
-     * @return List<Object [ ]>
-     */
-    @Query(value = "SELECT " +
-            "s.college," +
-            "max( s.objectiveScore + s.subjectiveScore ) ," +
-            "min( s.objectiveScore + s.subjectiveScore) ," +
-            "avg( s.objectiveScore + s.subjectiveScore ) ," +
-            "sum( CASE WHEN ( s.objectiveScore + s.subjectiveScore ) >= e.passScore THEN 1 ELSE 0 END ) ," +
-            "sum( CASE WHEN ( s.objectiveScore + s.subjectiveScore ) >= e.excellentScore THEN 1 ELSE 0 END ) ," +
-            "count(s) FROM " +
-            "ExamStudent s , Exam e where  s.examId = e.id " +
-            "and " +
-            "s.examId = ?1 and s.subjectCode = ?2  and s.college is not null and s.absent = false " +
-            "GROUP BY s.college")
-    List<Object[]> queryReportSubjectCollegeData(Integer examId, String subjectCode);
-
 }

+ 0 - 19
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectDao.java

@@ -1,7 +1,5 @@
 package cn.com.qmth.stmms.biz.report.dao;
 
-import java.util.List;
-
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
@@ -22,21 +20,4 @@ public interface ReportSubjectDao extends PagingAndSortingRepository<ReportSubje
     @Query("delete from ReportSubject r where r.examId=?1 ")
     void deleteByExamId(Integer exmaId);
 
-    /**
-     * 查询考试数据
-     *
-     * @param examId
-     * @return
-     */
-    @Query(value = "SELECT  s.examId," + "s.subjectCode," + "s.subjectName," + "count(s) ,"
-            + "sum( CASE WHEN s.absent = true THEN 1 ELSE 0 END ) ,"
-            + "sum( CASE WHEN s.breach = true THEN 1 ELSE 0 END ) ,"
-            + "count(s) - sum( CASE WHEN s.absent = true THEN 1 ELSE 0 END )  ,"
-            + "max(s.objectiveScore + s.subjectiveScore) ," + "min(s.objectiveScore + s.subjectiveScore) ,"
-            + "avg(s.objectiveScore + s.subjectiveScore) ,"
-            + "sum( CASE WHEN (s.objectiveScore + s.subjectiveScore) >= e.passScore  THEN 1 ELSE 0 END )  " + "FROM "
-            + "ExamStudent s , Exam e where s.examId = e.id "
-            + "and s.examId = ?1  GROUP BY s.subjectCode, s.subjectName")
-    List<Object[]> queryReportSubjectData(Integer examId);
-
 }

+ 1 - 8
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectGroupDao.java

@@ -1,13 +1,11 @@
 package cn.com.qmth.stmms.biz.report.dao;
 
-import cn.com.qmth.stmms.biz.report.model.ReportSubjectGroup;
-
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
-import java.util.List;
+import cn.com.qmth.stmms.biz.report.model.ReportSubjectGroup;
 
 /**
  * 大题成绩分析 Dao
@@ -22,9 +20,4 @@ public interface ReportSubjectGroupDao extends PagingAndSortingRepository<Report
     @Query("delete from ReportSubjectGroup r where r.examId=?1 ")
     void deleteByExamId(Integer exmaId);
 
-    @Query("select q.mainNumber,q.mainTitle,q.paperType,count(q.mainNumber) as subNumber ,sum(q.totalScore) as mainTotalScore "
-            + " from ExamQuestion q where q.examId=?1 and q.subjectCode=?2 and q.objective=?3 group by q.mainNumber,q.mainTitle,q.paperType  "
-            + " order by q.mainNumber")
-    public List<Object[]> countGroupByMainNum(Integer examId, String subjectCode, boolean objective);
-
 }

+ 3 - 18
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectRangeDao.java

@@ -1,13 +1,11 @@
 package cn.com.qmth.stmms.biz.report.dao;
 
-import cn.com.qmth.stmms.biz.report.model.ReportSubjectRange;
-
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
-import java.util.List;
+import cn.com.qmth.stmms.biz.report.model.ReportSubjectRange;
 
 /**
  * 课程分段统计 Dao
@@ -15,24 +13,11 @@ import java.util.List;
  * @author xuwenjin
  * @date 2019-04-19
  */
-public interface ReportSubjectRangeDao
-        extends PagingAndSortingRepository<ReportSubjectRange, Integer>, JpaSpecificationExecutor<ReportSubjectRange> {
+public interface ReportSubjectRangeDao extends PagingAndSortingRepository<ReportSubjectRange, Integer>,
+        JpaSpecificationExecutor<ReportSubjectRange> {
 
     @Modifying
     @Query("delete from ReportSubjectRange r where r.examId=?1 ")
     void deleteByExamId(Integer exmaId);
 
-    @Query("select s.subjectCode,s.subjectName,s.subjectLevel,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 0 and 49.9 then 1 else 0 end),"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 50 and 59.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 60 and 69.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 70 and 79.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 80 and 89.9 then 1 else 0 end) ,"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 90 and 100 then 1 else 0 end),"
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 0 and 59.9 then 1 else 0 end), "
-            + "sum(case when ((case when s.objectiveScore is null then 0 else s.objectiveScore end) + (case when s.subjectiveScore is null then 0 else s.subjectiveScore end)) between 60 and 100 then 1 else 0 end), "
-            + "count(s)  from ExamStudent s where s.examId=?1 and s.upload=true  and s.absent=false  group by s.subjectCode,s.subjectName,s.subjectLevel")
-    public List<Object[]> queryRangeSubjectByExamId(Integer examId);
-
-
 }

+ 0 - 18
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectTeacherClassDao.java

@@ -1,7 +1,5 @@
 package cn.com.qmth.stmms.biz.report.dao;
 
-import java.util.List;
-
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
@@ -22,22 +20,6 @@ public interface ReportSubjectTeacherClassDao extends PagingAndSortingRepository
     @Query("delete from ReportSubjectTeacherClass r where r.examId=?1 ")
     void deleteByExamId(Integer exmaId);
 
-    /**
-     * 获取课程老师班级成绩 分析数据
-     *
-     * @param examId
-     * @param subjectCode
-     */
-    @Query(value = "SELECT " + "s.teacher," + "s.className,"
-            + "count(s) - sum( CASE WHEN s.absent = true THEN 1 ELSE 0 END ) ,"
-            + "sum( CASE WHEN ( s.objectiveScore + s.subjectiveScore ) >= e.passScore THEN 1 ELSE 0 END ) ,"
-            + "sum( CASE WHEN ( s.objectiveScore + s.subjectiveScore ) >= e.excellentScore THEN 1 ELSE 0 END ) ,"
-            + "max( s.objectiveScore + s.subjectiveScore ) ," + "min( s.objectiveScore + s.subjectiveScore ) ,"
-            + "avg(s.objectiveScore + s.subjectiveScore ) " + "FROM ExamStudent s , Exam e " + "where s.examId = e.id "
-            + "and s.examId = ?1 " + "AND s.subjectCode = ?2  and s.teacher is not null and s.className is not null "
-            + "GROUP BY s.teacher,s.className")
-    List<Object[]> queryReportSubjectTeacherClassData(Integer examId, String subjectCode);
-
     @Modifying
     @Query("update ReportSubjectTeacherClass r set r.relativeAvgScore = (r.avgScore - (select s.avgScore from ReportSubject s where s.subjectCode = r.subjectCode and s.examId = r.examId )) where r.examId=?1  ")
     void updateRelativeAvgScore(Integer examId);

+ 0 - 19
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectTeacherDao.java

@@ -1,7 +1,5 @@
 package cn.com.qmth.stmms.biz.report.dao;
 
-import java.util.List;
-
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
@@ -22,23 +20,6 @@ public interface ReportSubjectTeacherDao extends PagingAndSortingRepository<Repo
     @Query("delete from ReportSubjectTeacher r where r.examId=?1 ")
     void deleteByExamId(Integer exmaId);
 
-    /**
-     * 获取课程老师分析数据
-     *
-     * @param examId
-     *            考试Id
-     * @param subjectCode
-     *            课程编码
-     */
-    @Query(value = "SELECT " + "s.teacher," + "count(s) - sum( CASE WHEN s.absent = true THEN 1 ELSE 0 END ) ,"
-            + "sum( CASE WHEN ( s.objectiveScore + s.subjectiveScore ) >= e.passScore THEN 1 ELSE 0 END ) ,"
-            + "sum( CASE WHEN ( s.objectiveScore + s.subjectiveScore ) >= e.excellentScore THEN 1 ELSE 0 END ) ,"
-            + "max( s.objectiveScore + s.subjectiveScore ) ," + "min( s.objectiveScore + s.subjectiveScore ) ,"
-            + "avg( s.objectiveScore + s.subjectiveScore ) " + "FROM ExamStudent s , Exam e "
-            + "where s.examId = e.id " + "and s.examId = ?1 " + "AND s.subjectCode = ?2  and s.teacher is not null "
-            + "GROUP BY s.teacher")
-    List<Object[]> queryReportSubjectTeacherData(Integer examId, String subjectCode);
-
     @Modifying
     @Query("update ReportSubjectTeacher r set r.relativeAvgScore = (r.avgScore - (select s.avgScore from ReportSubject s where s.subjectCode = r.subjectCode and s.examId = r.examId )) where r.examId=?1  ")
     void updateRelativeAvgScore(Integer examId);

+ 0 - 5
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportService.java

@@ -8,11 +8,6 @@ package cn.com.qmth.stmms.biz.report.service;
  */
 public interface ReportService {
 
-    /**
-     * 生成报表表数据
-     */
-    void generateReportData(Integer examId);
-
     void deleteData(Integer examId);
 
 }

+ 0 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectClassService.java

@@ -17,8 +17,6 @@ public interface ReportSubjectClassService {
 
     List<ReportSubjectClass> findByQuery(ReportSubjectQuery query);
 
-    void saveReportSubjectClassData(Integer examId, String subjectCode);
-    
     ReportSubjectClass save(ReportSubjectClass r);
 
 }

+ 0 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectCollegeService.java

@@ -17,8 +17,6 @@ public interface ReportSubjectCollegeService {
 
     List<ReportSubjectCollege> findByQuery(ReportSubjectQuery query);
 
-    void saveReportSubjectCollegeData(Integer examId, String subjectCode);
-
     ReportSubjectCollege save(ReportSubjectCollege r);
 
 }

+ 0 - 10
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectGroupService.java

@@ -17,16 +17,6 @@ public interface ReportSubjectGroupService {
 
     List<ReportSubjectGroup> findByQuery(ReportSubjectQuery query);
 
-    /**
-     * 保存大题统计分析
-     *
-     * @param examId
-     *            考试Id
-     * @param subjectCode
-     *            科目Code
-     */
-    void saveReportSubjectGroupData(Integer examId, String subjectCode);
-
     ReportSubjectGroup save(ReportSubjectGroup r);
 
 }

+ 0 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectQuestionService.java

@@ -19,6 +19,4 @@ public interface ReportSubjectQuestionService {
 
     List<ReportSubjectQuestion> findByQuery(ReportSubjectQuery query);
 
-    void saveReportSubjectQuestionData(Integer examId, String subjectCode, Boolean objective);
-
 }

+ 0 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectRangeService.java

@@ -15,7 +15,5 @@ public interface ReportSubjectRangeService {
 
     ReportSubjectRangeQuery findByQuery(ReportSubjectRangeQuery query);
 
-    void saveReportRangeSubjectData(Integer examId);
-
     ReportSubjectRange save(ReportSubjectRange r);
 }

+ 0 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectService.java

@@ -17,6 +17,4 @@ public interface ReportSubjectService {
 
     ReportSubjectQuery findByQuery(ReportSubjectQuery query);
 
-    void saveReportSubjectData(Integer examId);
-
 }

+ 0 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectTeacherClassService.java

@@ -17,8 +17,6 @@ public interface ReportSubjectTeacherClassService {
 
     List<ReportSubjectTeacherClass> findByQuery(ReportSubjectQuery query);
 
-    void saveReportSubjectTeacherClassData(Integer examId, String subjectCode);
-
     ReportSubjectTeacherClass save(ReportSubjectTeacherClass r);
     
     void updateRelativeAvgScore(Integer examId);

+ 0 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectTeacherService.java

@@ -17,8 +17,6 @@ public interface ReportSubjectTeacherService {
 
     List<ReportSubjectTeacher> findByQuery(ReportSubjectQuery query);
 
-    void saveReportSubjectTeacherData(Integer examId, String subjectCode);
-
     ReportSubjectTeacher save(ReportSubjectTeacher r);
 
     void updateRelativeAvgScore(Integer examId);

+ 0 - 88
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportServiceImpl.java

@@ -1,11 +1,8 @@
 package cn.com.qmth.stmms.biz.report.service.impl;
 
-import java.util.List;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.report.service.ReportService;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectClassService;
@@ -53,21 +50,6 @@ public class ReportServiceImpl implements ReportService {
     @Autowired
     private ExamSubjectService examSubjectService;
 
-    /**
-     * 生成报表数据
-     *
-     * @param examId
-     *            考试id
-     */
-    @Override
-    public void generateReportData(Integer examId) {
-
-        deleteData(examId);
-
-        saveData(examId);
-
-    }
-
     /**
      * 删除数据
      *
@@ -94,74 +76,4 @@ public class ReportServiceImpl implements ReportService {
 
     }
 
-    /**
-     * 重新生成数据
-     *
-     * @param examId
-     */
-    private void saveData(Integer examId) {
-        List<ExamSubject> examSubjects = examSubjectService.list(examId);
-
-        // 保存课程总量统计分析
-        reportSubjectService.saveReportSubjectData(examId);
-
-        // 保存课程分段统计
-        reportSubjectRangeService.saveReportRangeSubjectData(examId);
-
-        for (ExamSubject subject : examSubjects) {
-            String subjectCode = subject.getCode();
-            // 保存学院成绩分析
-            reportSubjectCollegeService.saveReportSubjectCollegeData(examId, subjectCode);
-
-            // 保存课程任课老师成绩分析
-            reportSubjectTeacherService.saveReportSubjectTeacherData(examId, subjectCode);
-
-            // 保存任课老师班级成绩分析
-            reportSubjectTeacherClassService.saveReportSubjectTeacherClassData(examId, subjectCode);
-
-            // 保存成班级成绩分析
-            reportSubjectClassService.saveReportSubjectClassData(examId, subjectCode);
-
-            // 保存客观题成绩分析
-            reportSubjectQuestionService.saveReportSubjectQuestionData(examId, subjectCode, true);
-
-            // 保存主观题成绩分析
-            reportSubjectQuestionService.saveReportSubjectQuestionData(examId, subjectCode, false);
-
-            // 保存大题型成绩分析
-            reportSubjectGroupService.saveReportSubjectGroupData(examId, subjectCode);
-        }
-    }
-
-    public ReportSubjectService getReportSubjectService() {
-        return reportSubjectService;
-    }
-
-    public ReportSubjectRangeService getReportSubjectRangeService() {
-        return reportSubjectRangeService;
-    }
-
-    public ReportSubjectCollegeService getReportSubjectCollegeService() {
-        return reportSubjectCollegeService;
-    }
-
-    public ReportSubjectTeacherService getReportSubjectTeacherService() {
-        return reportSubjectTeacherService;
-    }
-
-    public ReportSubjectTeacherClassService getReportSubjectTeacherClassService() {
-        return reportSubjectTeacherClassService;
-    }
-
-    public ReportSubjectClassService getReportSubjectClassService() {
-        return reportSubjectClassService;
-    }
-
-    public ReportSubjectQuestionService getReportSubjectQuestionService() {
-        return reportSubjectQuestionService;
-    }
-
-    public ReportSubjectGroupService getReportSubjectGroupService() {
-        return reportSubjectGroupService;
-    }
 }

+ 6 - 27
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectClassServiceImpl.java

@@ -19,12 +19,10 @@ import org.springframework.transaction.annotation.Transactional;
 
 import cn.com.qmth.stmms.biz.common.BaseQueryService;
 import cn.com.qmth.stmms.biz.exam.dao.ExamSubjectDao;
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.biz.report.dao.ReportSubjectClassDao;
 import cn.com.qmth.stmms.biz.report.model.ReportSubjectClass;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectClassService;
-import cn.com.qmth.stmms.biz.utils.DoubleUtil;
 
 /**
  * 课程班级分析 service实现
@@ -33,7 +31,8 @@ import cn.com.qmth.stmms.biz.utils.DoubleUtil;
  * @date 2019-04-16
  */
 @Service
-public class ReportSubjectClassServiceImpl extends BaseQueryService<ReportSubjectClass> implements ReportSubjectClassService {
+public class ReportSubjectClassServiceImpl extends BaseQueryService<ReportSubjectClass> implements
+        ReportSubjectClassService {
 
     @Autowired
     private ReportSubjectClassDao reportSubjectClassDao;
@@ -51,6 +50,7 @@ public class ReportSubjectClassServiceImpl extends BaseQueryService<ReportSubjec
     public List<ReportSubjectClass> findByQuery(final ReportSubjectQuery query) {
         query.setSort(new Sort(Direction.ASC, "className"));
         Page<ReportSubjectClass> result = reportSubjectClassDao.findAll(new Specification<ReportSubjectClass>() {
+
             @Override
             public Predicate toPredicate(Root<ReportSubjectClass> root, CriteriaQuery<?> cQuery, CriteriaBuilder cb) {
                 List<Predicate> predicates = new LinkedList<Predicate>();
@@ -64,34 +64,13 @@ public class ReportSubjectClassServiceImpl extends BaseQueryService<ReportSubjec
                 if (StringUtils.isNotBlank(query.getClassName())) {
                     predicates.add(cb.equal(root.get("className"), query.getClassName()));
                 }
-                return predicates.isEmpty() ? cb.conjunction()
-                        : cb.and(predicates.toArray(new Predicate[predicates.size()]));
+                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
+                        .size()]));
             }
-        },query);
+        }, query);
         return result.getContent();
     }
 
-    @Override
-    public void saveReportSubjectClassData(Integer examId, String subjectCode) {
-        ExamSubject examSubject = examSubjectDao.findByExamIdAndCode(examId, subjectCode);
-        List<Object[]> reportSubjecCollegetList = reportSubjectClassDao.queryReportSubjectClassData(examId, subjectCode);
-        for (Object[] rs : reportSubjecCollegetList) {
-            ReportSubjectClass subject = new ReportSubjectClass();
-            subject.setExamId(examId);
-            subject.setSubjectCode(subjectCode);
-            subject.setSubjectName(examSubject.getName());
-            subject.setClassName(rs[0].toString());
-            subject.setAvgScore(DoubleUtil.format(Double.parseDouble(rs[1].toString()), "0.00"));
-            subject.setMaxScore(Double.parseDouble(rs[2].toString()));
-            subject.setMinScore(Double.parseDouble(rs[3].toString()));
-            subject.setPassCount(Integer.parseInt(rs[4].toString()));
-            subject.setPassRate(DoubleUtil.div(subject.getPassCount(), Integer.parseInt(rs[6].toString()), 2));
-            subject.setExcellentCount(Integer.parseInt(rs[5].toString()));
-            subject.setExcellentRate(DoubleUtil.div(subject.getExcellentCount(), Integer.parseInt(rs[6].toString()), 2));
-            reportSubjectClassDao.save(subject);
-        }
-    }
-
     @Override
     public ReportSubjectClass save(ReportSubjectClass r) {
         return reportSubjectClassDao.save(r);

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

@@ -1,13 +1,12 @@
 package cn.com.qmth.stmms.biz.report.service.impl;
 
-import cn.com.qmth.stmms.biz.common.BaseQueryService;
-import cn.com.qmth.stmms.biz.exam.dao.ExamSubjectDao;
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
-import cn.com.qmth.stmms.biz.report.dao.ReportSubjectCollegeDao;
-import cn.com.qmth.stmms.biz.report.model.ReportSubjectCollege;
-import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
-import cn.com.qmth.stmms.biz.report.service.ReportSubjectCollegeService;
-import cn.com.qmth.stmms.biz.utils.DoubleUtil;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
 
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,13 +16,12 @@ import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-import java.util.LinkedList;
-import java.util.List;
+import cn.com.qmth.stmms.biz.common.BaseQueryService;
+import cn.com.qmth.stmms.biz.exam.dao.ExamSubjectDao;
+import cn.com.qmth.stmms.biz.report.dao.ReportSubjectCollegeDao;
+import cn.com.qmth.stmms.biz.report.model.ReportSubjectCollege;
+import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
+import cn.com.qmth.stmms.biz.report.service.ReportSubjectCollegeService;
 
 /**
  * 课程学院分析 service实现
@@ -32,7 +30,8 @@ import java.util.List;
  * @date 2019-04-16 09:43
  */
 @Service
-public class ReportSubjectCollegeServiceImpl extends BaseQueryService<ReportSubjectCollege> implements ReportSubjectCollegeService {
+public class ReportSubjectCollegeServiceImpl extends BaseQueryService<ReportSubjectCollege> implements
+        ReportSubjectCollegeService {
 
     @Autowired
     private ReportSubjectCollegeDao reportSubjectCollegeDao;
@@ -63,33 +62,13 @@ public class ReportSubjectCollegeServiceImpl extends BaseQueryService<ReportSubj
                 if (StringUtils.isNotBlank(query.getCollegeName())) {
                     predicates.add(cb.equal(root.get("collegeName"), query.getCollegeName()));
                 }
-                return predicates.isEmpty() ? cb.conjunction()
-                        : cb.and(predicates.toArray(new Predicate[predicates.size()]));
+                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
+                        .size()]));
             }
         });
         return result;
     }
 
-    @Override
-    public void saveReportSubjectCollegeData(Integer examId, String subjectCode) {
-        ExamSubject examSubject = examSubjectDao.findByExamIdAndCode(examId, subjectCode);
-        List<Object[]> reportSubjecCollegetList = reportSubjectCollegeDao.queryReportSubjectCollegeData(examId, subjectCode);
-        for (Object[] rs : reportSubjecCollegetList) {
-            ReportSubjectCollege subject = new ReportSubjectCollege();
-            subject.setExamId(examId);
-            subject.setSubjectCode(subjectCode);
-            subject.setSubjectName(examSubject.getName());
-            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.00"));
-            subject.setPassCount(Integer.parseInt(rs[4].toString()));
-            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);
-        }
-    }
-
     @Override
     public ReportSubjectCollege save(ReportSubjectCollege r) {
         return reportSubjectCollegeDao.save(r);

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

@@ -1,11 +1,7 @@
 package cn.com.qmth.stmms.biz.report.service.impl;
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
@@ -26,15 +22,10 @@ import cn.com.qmth.stmms.biz.exam.dao.ExamQuestionDao;
 import cn.com.qmth.stmms.biz.exam.dao.ExamStudentDao;
 import cn.com.qmth.stmms.biz.exam.dao.ExamSubjectDao;
 import cn.com.qmth.stmms.biz.exam.dao.MarkGroupDao;
-import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
-import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
-import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
 import cn.com.qmth.stmms.biz.report.dao.ReportSubjectGroupDao;
 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;
 
 /**
  * 大题型统计分析 service 实现
@@ -72,6 +63,7 @@ public class ReportSubjectGroupServiceImpl extends BaseQueryService<ReportSubjec
     public List<ReportSubjectGroup> findByQuery(final ReportSubjectQuery query) {
         query.setSort(new Sort(Direction.ASC, "groupNumber"));
         Page<ReportSubjectGroup> result = reportSubjectGroupDao.findAll(new Specification<ReportSubjectGroup>() {
+
             @Override
             public Predicate toPredicate(Root<ReportSubjectGroup> root, CriteriaQuery<?> cQuery, CriteriaBuilder cb) {
                 List<Predicate> predicates = new LinkedList<Predicate>();
@@ -87,256 +79,10 @@ public class ReportSubjectGroupServiceImpl extends BaseQueryService<ReportSubjec
                 return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
                         .size()]));
             }
-        },query);
+        }, query);
         return result.getContent();
     }
 
-    @Override
-    public void saveReportSubjectGroupData(Integer examId, String subjectCode) {
-        // 保存客观题统计分析
-        saveReportSubjectObjectiveGroupData(examId, subjectCode);
-        // 保存主观题统计分析
-        saveReportSubjectSubjectiveGroupData(examId, subjectCode);
-    }
-
-    /**
-     * 保存题型统计分析
-     *
-     * @param examId
-     *            考试Id
-     * @param subjectCode
-     *            科目Code
-     * @param subjective
-     *            主观题
-     */
-    private void saveReportSubjectSubjectiveGroupData(Integer examId, String subjectCode) {
-
-        ExamSubject subject = examSubjectDao.findByExamIdAndCode(examId, subjectCode);
-        List<MarkGroup> groups = groupDao.findByExamIdAndSubjectCode(examId, subjectCode);
-
-        List<ExamStudent> examStudentList = examStudentDao.findByExamIdAndSubjectCodeAndUploadTimeNotNullAndAbsent(
-                examId, subjectCode, false);
-        Integer studentCount = examStudentList.size();
-        Integer begin = 0;
-        for (int i = 0; i < groups.size(); i++) {
-            MarkGroup group = groups.get(i);
-            // 满分
-            double fullScore = group.getTotalScore();
-            Integer questionCount = examQuestionDao.findByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId,
-                    subjectCode, false, group.getNumber()).size();
-            Double[] totalScoreArray = new Double[studentCount];
-            // 题型 总分
-            Double totalScore = 0d;
-            // 0分人数
-            Integer zeroScoreCount = 0;
-            // 满分人数
-            Integer fullScoreCount = 0;
-            // 方差
-            Double variance = 0d;
-            for (int j = 0; j < studentCount; j++) {
-                ExamStudent student = examStudentList.get(j);
-                String[] answers = null;
-                if (StringUtils.isNotBlank(student.getSubjectiveScoreList())) {
-                    answers = student.getSubjectiveScoreList().split(";");
-                }
-                Double score = 0d;
-                for (int k = begin; k < begin + questionCount; k++) {
-                    Double s = 0d;
-                    if (answers != null) {
-                        s = Double.parseDouble(answers[k]);
-                    }
-                    score = DoubleUtil.sum(score, s);
-                }
-                if (score.doubleValue() == 0) {
-                    zeroScoreCount++;
-                }
-                if (score.doubleValue() == fullScore) {
-                    fullScoreCount++;
-                }
-                totalScoreArray[j] = score;
-                totalScore = DoubleUtil.sum(totalScore, score);
-            }
-            // 最大分
-            Double maxScore = totalScoreArray.length==0?0:Collections.max(Arrays.asList(totalScoreArray));
-            // 最小分
-            Double minScore = totalScoreArray.length==0?0:Collections.min(Arrays.asList(totalScoreArray));
-            // 平均分
-            Double avgScore = DoubleUtil.div(totalScore, studentCount, 2);
-            // 计算方差
-            for (int j = 0; j < studentCount; j++) {
-                ExamStudent student = examStudentList.get(j);
-                String[] answers = null;
-                if (StringUtils.isNotBlank(student.getSubjectiveScoreList())) {
-                    answers = student.getSubjectiveScoreList().split(";");
-                }
-                Double score = 0d;
-                for (int k = begin; k < begin + questionCount; k++) {
-                    Double s = 0d;
-                    if (answers != null) {
-                        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 = studentCount==0?0:DoubleUtil.format(Math.sqrt(variance / studentCount), "0.00");
-            // 差异系数
-            Double cv = 0d;
-            if (avgScore.doubleValue() > 0) {
-                cv = DoubleUtil.mul(DoubleUtil.div(sd, avgScore, 4), 100);
-            }
-            // 得分率
-            Double scoreRate = 0d;
-            if (fullScore != 0) {
-                scoreRate = DoubleUtil.div(avgScore, fullScore, 2);
-            }
-            ReportSubjectGroup reportSubjectGroup = new ReportSubjectGroup();
-            reportSubjectGroup.setExamId(examId);
-            reportSubjectGroup.setSubjectCode(subjectCode);
-            reportSubjectGroup.setSubjectName(subject.getName());
-            reportSubjectGroup.setGroupName(group.getTitle());
-            reportSubjectGroup.setGroupNumber(group.getNumber());
-            reportSubjectGroup.setMaxScore(maxScore);
-            reportSubjectGroup.setMinScore(minScore);
-            reportSubjectGroup.setAvgScore(avgScore);
-            reportSubjectGroup.setTotalScore(fullScore);
-            reportSubjectGroup.setStdev(sd);
-            reportSubjectGroup.setCoefficient(cv);
-            reportSubjectGroup.setScoreRate(scoreRate);
-            reportSubjectGroup.setZeroCount(zeroScoreCount);
-            reportSubjectGroup.setFullCount(fullScoreCount);
-
-            begin += questionCount;
-            reportSubjectGroupDao.save(reportSubjectGroup);
-        }
-
-    }
-
-    /**
-     * 保存题型统计分析
-     *
-     * @param examId
-     *            考试Id
-     * @param subjectCode
-     *            科目Code
-     * @param objective
-     *            客观题
-     */
-    private void saveReportSubjectObjectiveGroupData(Integer examId, String subjectCode) {
-        ExamSubject subject = examSubjectDao.findByExamIdAndCode(examId, subjectCode);
-        List<Object[]> questionGroups = reportSubjectGroupDao.countGroupByMainNum(examId, subjectCode, true);
-        List<ExamStudent> examStudentList = examStudentDao.findByExamIdAndSubjectCodeAndUploadTimeNotNullAndAbsent(
-                examId, subjectCode, false);
-        Integer studentCount = examStudentList.size();
-        Integer begin = 0;
-        Map<Integer, ExamQuestion> map = new HashMap<Integer, ExamQuestion>();
-        for (int i = 0; i < questionGroups.size(); i++) {
-            Object[] obj = questionGroups.get(i);
-            ExamQuestion question = new ExamQuestion();
-            question.setMainNumber(Integer.parseInt(obj[0].toString()));
-            question.setMainTitle(obj[1].toString());
-            question.setPaperType(obj[2] == null ? null : obj[2].toString());
-            question.setSubNumber(Integer.parseInt(obj[3].toString()));
-            question.setTotalScore(Double.valueOf(obj[4].toString()));
-            if (map.get(question.getMainNumber()) != null) {
-                continue;
-            }
-            map.put(question.getMainNumber(), question);
-            // 满分
-            double fullScore = question.getTotalScore();
-            Integer questionCount = question.getSubNumber();
-            Double[] totalScoreArray = new Double[studentCount];
-            // 题型 总分
-            Double totalScore = 0d;
-            // 0分人数
-            Integer zeroScoreCount = 0;
-            // 满分人数
-            Integer fullScoreCount = 0;
-            // 方差
-            Double variance = 0d;
-            for (int j = 0; j < studentCount; j++) {
-                ExamStudent student = examStudentList.get(j);
-                String[] answers = null;
-                if (StringUtils.isNotBlank(student.getObjectiveScoreList())) {
-                    answers = student.getObjectiveScoreList().split(";");
-                }
-                Double score = 0d;
-                for (int k = begin; k < begin + questionCount; k++) {
-                    Double s = 0d;
-                    if (answers != null) {
-                        s = Double.parseDouble(answers[k].split(":")[1]);
-                    }
-                    score = DoubleUtil.sum(score, s);
-                }
-                if (score.doubleValue() == 0) {
-                    zeroScoreCount++;
-                }
-                if (score.doubleValue() == fullScore) {
-                    fullScoreCount++;
-                }
-                totalScoreArray[j] = score;
-                totalScore = DoubleUtil.sum(totalScore, score);
-            }
-            // 最大分
-            Double maxScore = totalScoreArray.length==0?0:Collections.max(Arrays.asList(totalScoreArray));
-            // 最小分
-            Double minScore = totalScoreArray.length==0?0:Collections.min(Arrays.asList(totalScoreArray));
-            // 平均分
-            Double avgScore = DoubleUtil.div(totalScore, studentCount, 2);
-            // 计算方差
-            for (int j = 0; j < studentCount; j++) {
-                ExamStudent student = examStudentList.get(j);
-                String[] answers = null;
-                if (StringUtils.isNotBlank(student.getObjectiveScoreList())) {
-                    answers = student.getObjectiveScoreList().split(";");
-                }
-                Double score = 0d;
-                for (int k = begin; k < begin + questionCount; k++) {
-                    Double s = 0d;
-                    if (answers != null) {
-                        s = Double.parseDouble(answers[k].split(":")[1]);
-                    }
-                    score = DoubleUtil.sum(score, s);
-                }
-                variance = DoubleUtil.sum(variance,
-                        DoubleUtil.mul(DoubleUtil.sub(score, avgScore), DoubleUtil.sub(score, avgScore)));
-            }
-            // 标准差
-            Double sd = studentCount==0?0:DoubleUtil.format(Math.sqrt(variance / studentCount), "0.00");
-            // 差异系数
-            Double cv = 0d;
-            if (avgScore.doubleValue() > 0) {
-                cv = DoubleUtil.mul(DoubleUtil.div(sd, avgScore, 4), 100);
-            }
-            // 得分率
-            Double scoreRate = 0d;
-            if (fullScore != 0) {
-                scoreRate = DoubleUtil.div(avgScore, fullScore, 2);
-            }
-            ReportSubjectGroup reportSubjectGroup = new ReportSubjectGroup();
-            reportSubjectGroup.setExamId(examId);
-            reportSubjectGroup.setSubjectCode(subjectCode);
-            reportSubjectGroup.setSubjectName(subject.getName());
-            reportSubjectGroup.setGroupName(question.getMainTitle());
-            reportSubjectGroup.setGroupNumber(question.getMainNumber());
-            reportSubjectGroup.setMaxScore(maxScore);
-            reportSubjectGroup.setMinScore(minScore);
-            reportSubjectGroup.setAvgScore(avgScore);
-            reportSubjectGroup.setTotalScore(fullScore);
-            reportSubjectGroup.setStdev(sd);
-            reportSubjectGroup.setCoefficient(cv);
-            reportSubjectGroup.setScoreRate(scoreRate);
-            reportSubjectGroup.setZeroCount(zeroScoreCount);
-            reportSubjectGroup.setFullCount(fullScoreCount);
-
-            begin += questionCount;
-            reportSubjectGroupDao.save(reportSubjectGroup);
-        }
-
-    }
-
     @Override
     public ReportSubjectGroup save(ReportSubjectGroup r) {
         return reportSubjectGroupDao.save(r);

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

@@ -1,11 +1,7 @@
 package cn.com.qmth.stmms.biz.report.service.impl;
 
-import java.util.HashMap;
-import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
@@ -24,16 +20,11 @@ import org.springframework.transaction.annotation.Transactional;
 import cn.com.qmth.stmms.biz.common.BaseQueryService;
 import cn.com.qmth.stmms.biz.exam.dao.ExamStudentDao;
 import cn.com.qmth.stmms.biz.exam.dao.ExamSubjectDao;
-import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
-import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
 import cn.com.qmth.stmms.biz.report.dao.ReportSubjectQuestionDao;
 import cn.com.qmth.stmms.biz.report.model.ReportSubjectQuestion;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectQuestionService;
-import cn.com.qmth.stmms.biz.utils.DoubleUtil;
-import cn.com.qmth.stmms.biz.utils.ScoreItem;
 
 /**
  * 客、主观题分析 service 实现
@@ -42,7 +33,8 @@ import cn.com.qmth.stmms.biz.utils.ScoreItem;
  * @Date 2019-04-17
  */
 @Service
-public class ReportSubjectQuestionServiceImpl extends BaseQueryService<ReportSubjectQuestion> implements ReportSubjectQuestionService {
+public class ReportSubjectQuestionServiceImpl extends BaseQueryService<ReportSubjectQuestion> implements
+        ReportSubjectQuestionService {
 
     @Autowired
     private ReportSubjectQuestionDao reportSubjectQuestionDao;
@@ -52,10 +44,10 @@ public class ReportSubjectQuestionServiceImpl extends BaseQueryService<ReportSub
 
     @Autowired
     private ExamQuestionService questionService;
-    
+
     @Autowired
     private ExamSubjectDao examSubjectDao;
-    
+
     @Override
     public ReportSubjectQuestion save(ReportSubjectQuestion reportSubjectQuestion) {
         return reportSubjectQuestionDao.save(reportSubjectQuestion);
@@ -70,111 +62,29 @@ public class ReportSubjectQuestionServiceImpl extends BaseQueryService<ReportSub
 
     @Override
     public List<ReportSubjectQuestion> findByQuery(final ReportSubjectQuery query) {
-        query.setSort(new Sort(Direction.ASC, "paperType","mainNumber", "subNumber"));
-        Page<ReportSubjectQuestion> result = reportSubjectQuestionDao.findAll(new Specification<ReportSubjectQuestion>() {
-            @Override
-            public Predicate toPredicate(Root<ReportSubjectQuestion> root, CriteriaQuery<?> cQuery, CriteriaBuilder cb) {
-                List<Predicate> predicates = new LinkedList<Predicate>();
-                if (query.getExamId() != null) {
-                    predicates.add(cb.equal(root.get("examId"), query.getExamId()));
-                }
-                if (StringUtils.isNotBlank(query.getPaperType())) {
-                    predicates.add(cb.equal(root.get("paperType"), query.getPaperType()));
-                }
-                if (StringUtils.isNotBlank(query.getSubjectCode())) {
-                    predicates.add(cb.equal(root.get("subjectCode"), query.getSubjectCode()));
-                }
-                predicates.add(cb.equal(root.get("objective"), query.getObjective()));
-                return predicates.isEmpty() ? cb.conjunction()
-                        : cb.and(predicates.toArray(new Predicate[predicates.size()]));
-            }
-        },query);
-        return result.getContent();
-    }
-
-    @Override
-    public void saveReportSubjectQuestionData(Integer examId, String subjectCode, Boolean objective) {
-        Map<String,List<ExamQuestion>> map = new HashMap<String, List<ExamQuestion>>();
-        ExamSubject subject = examSubjectDao.findByExamIdAndCode(examId, subjectCode);
-        if(objective){
-            List<ExamQuestion> examQuestionList = questionService.findByExamAndSubjectAndObjective(examId, subjectCode, objective);
-            Set<String> paperTypeSet = new HashSet<String>();
-            for (ExamQuestion examQuestion : examQuestionList) {
-                paperTypeSet.add(examQuestion.getPaperType());
-            }
-            for (String paperType : paperTypeSet) {
-                List<ExamQuestion> oList = questionService.findByExamAndSubjectAndObjectiveAndPaperType(examId, subjectCode, objective, paperType);
-                map.put(subjectCode+"_"+paperType, oList);
-            }
-        }else{
-            List<ExamQuestion> sList = questionService.findByExamAndSubjectAndObjective(examId, subjectCode, objective);
-            map.put(subjectCode, sList);
-        }
-
-        List<ExamStudent> examStudentList = examStudentDao.findByExamIdAndSubjectCodeAndUploadTimeNotNullAndAbsent(examId, subjectCode, false);
-
-        Integer studentCount = examStudentList.size();
-        for(String key:map.keySet()){
-            List<ExamQuestion> examQuestionList = map.get(key);
-            for (int i = 0; i < examQuestionList.size(); i++) {
-                ExamQuestion question = examQuestionList.get(i);
-                if (question.getTotalScore().doubleValue() > 0) {
-                    ReportSubjectQuestion reportSubjectQuestion = new ReportSubjectQuestion();
-                    //得分人数
-                    Integer scoreCount = 0;
-                    //满分人数
-                    Integer fullScoreCount = 0;
-                    //考生题目得分汇总
-                    Double sumScore = 0d;
-                    //题目总分汇总
-                    //Double questionSumScore = DoubleUtil.mul(question.getTotalScore(), studentCount);
-                    //方差
-                    Double variance = 0d;
-                    
-                    for (int j = 0; j < studentCount; j++) {
-                        ExamStudent student = examStudentList.get(j);
-                        if(question.getPaperType()!=null && !question.getPaperType().equalsIgnoreCase(student.getPaperType())){
-                            continue;
-                        }
-                        List<ScoreItem> scoreItems = student.getScoreList(objective);
-                        double score = scoreItems.get(i).getScore();
-                        sumScore = DoubleUtil.sum(sumScore, score);
-                        if (score > 0) {
-                            scoreCount++;
+        query.setSort(new Sort(Direction.ASC, "paperType", "mainNumber", "subNumber"));
+        Page<ReportSubjectQuestion> result = reportSubjectQuestionDao.findAll(
+                new Specification<ReportSubjectQuestion>() {
+
+                    @Override
+                    public Predicate toPredicate(Root<ReportSubjectQuestion> root, CriteriaQuery<?> cQuery,
+                            CriteriaBuilder cb) {
+                        List<Predicate> predicates = new LinkedList<Predicate>();
+                        if (query.getExamId() != null) {
+                            predicates.add(cb.equal(root.get("examId"), query.getExamId()));
                         }
-                        if (score == question.getTotalScore().doubleValue()) {
-                            fullScoreCount++;
+                        if (StringUtils.isNotBlank(query.getPaperType())) {
+                            predicates.add(cb.equal(root.get("paperType"), query.getPaperType()));
                         }
-                    }
-                    Double avgScore = DoubleUtil.div(sumScore, examStudentList.size(), 2);
-                    for (int j = 0; j < studentCount; j++) {
-                        ExamStudent student = examStudentList.get(j);
-                        if(question.getPaperType()!=null && !question.getPaperType().equalsIgnoreCase(student.getPaperType())){
-                            continue;
+                        if (StringUtils.isNotBlank(query.getSubjectCode())) {
+                            predicates.add(cb.equal(root.get("subjectCode"), query.getSubjectCode()));
                         }
-                        List<ScoreItem> scoreItems = student.getScoreList(objective);
-                        double score = scoreItems.get(i).getScore();
-                        variance = DoubleUtil.sum(variance, DoubleUtil.mul(DoubleUtil.sub(score, avgScore), DoubleUtil.sub(score, avgScore)));
+                        predicates.add(cb.equal(root.get("objective"), query.getObjective()));
+                        return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates
+                                .toArray(new Predicate[predicates.size()]));
                     }
-                    reportSubjectQuestion.setExamId(examId);
-                    reportSubjectQuestion.setSubjectCode(subjectCode);
-                    reportSubjectQuestion.setSubjectName(subject.getName());
-                    reportSubjectQuestion.setObjective(objective);
-                    reportSubjectQuestion.setQuestionName(question.getMainTitle());
-                    reportSubjectQuestion.setMainNumber(question.getMainNumber());
-                    reportSubjectQuestion.setSubNumber(question.getSubNumber());
-                    reportSubjectQuestion.setTotalScore(question.getTotalScore());
-                    reportSubjectQuestion.setAvgScore(avgScore);
-                    reportSubjectQuestion.setScoreRate(DoubleUtil.div(avgScore, question.getTotalScore(), 2));
-                    reportSubjectQuestion.setStdev(studentCount==0?0:DoubleUtil.format(Math.sqrt(variance / studentCount), "0.00"));
-                    reportSubjectQuestion.setFullScoreRate(DoubleUtil.div(fullScoreCount, studentCount, 2));
-                    reportSubjectQuestion.setPaperType(question.getPaperType());
-                    reportSubjectQuestionDao.save(reportSubjectQuestion);
-                }
-            }
-        }
-
+                }, query);
+        return result.getContent();
     }
 
-
 }

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

@@ -20,7 +20,6 @@ import cn.com.qmth.stmms.biz.report.dao.ReportSubjectRangeDao;
 import cn.com.qmth.stmms.biz.report.model.ReportSubjectRange;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectRangeQuery;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectRangeService;
-import cn.com.qmth.stmms.biz.utils.DoubleUtil;
 
 /**
  * 课程分段统计 service 实现
@@ -29,7 +28,8 @@ import cn.com.qmth.stmms.biz.utils.DoubleUtil;
  * @Date 2019-04-19
  */
 @Service
-public class ReportSubjectRangeServiceImpl extends BaseQueryService<ReportSubjectRange> implements ReportSubjectRangeService {
+public class ReportSubjectRangeServiceImpl extends BaseQueryService<ReportSubjectRange> implements
+        ReportSubjectRangeService {
 
     @Autowired
     private ReportSubjectRangeDao reportSubjectRangetDao;
@@ -55,8 +55,8 @@ public class ReportSubjectRangeServiceImpl extends BaseQueryService<ReportSubjec
                 if (StringUtils.isNotBlank(query.getSubjectCode())) {
                     predicates.add(cb.equal(root.get("subjectCode"), query.getSubjectCode()));
                 }
-                return predicates.isEmpty() ? cb.conjunction()
-                        : cb.and(predicates.toArray(new Predicate[predicates.size()]));
+                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
+                        .size()]));
             }
         }, query);
         fillResult(result, query);
@@ -64,45 +64,9 @@ public class ReportSubjectRangeServiceImpl extends BaseQueryService<ReportSubjec
         return query;
     }
 
-    /**
-     * 保存 课程分段统计
-     *
-     * @param examId 考试Id
-     */
-    @Override
-    public void saveReportRangeSubjectData(Integer examId) {
-        List<Object[]> datas = reportSubjectRangetDao.queryRangeSubjectByExamId(examId);
-        for (Object[] obj : datas) {
-            ReportSubjectRange subjectRange = new ReportSubjectRange();
-            subjectRange.setExamId(examId);
-            subjectRange.setSubjectCode(obj[0].toString());
-            subjectRange.setSubjectName(obj[1].toString());
-            subjectRange.setLevel(obj[2] != null ? obj[2].toString() : "");
-            subjectRange.setCount0_49(Integer.parseInt(obj[3].toString()));
-            subjectRange.setCount50_59(Integer.parseInt(obj[4].toString()));
-            subjectRange.setCount60_69(Integer.parseInt(obj[5].toString()));
-            subjectRange.setCount70_79(Integer.parseInt(obj[6].toString()));
-            subjectRange.setCount80_89(Integer.parseInt(obj[7].toString()));
-            subjectRange.setCount90_100(Integer.parseInt(obj[8].toString()));
-            subjectRange.setLt60(Integer.parseInt(obj[9].toString()));
-            subjectRange.setMte60(Integer.parseInt(obj[10].toString()));
-            subjectRange.setTotalCount(Integer.parseInt(obj[11].toString()));
-            subjectRange.setPercent0_49(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount0_49(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
-            subjectRange.setPercent50_59(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount50_59(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
-            subjectRange.setPercent60_69(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount60_69(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
-            subjectRange.setPercent70_79(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount70_79(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
-            subjectRange.setPercent80_89(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount80_89(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
-            subjectRange.setPercent90_100(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount90_100(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
-            subjectRange.setPercent_lt60(DoubleUtil.format(DoubleUtil.div(subjectRange.getLt60(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
-            subjectRange.setPercent_mte60(DoubleUtil.format(DoubleUtil.div(subjectRange.getMte60(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
-            reportSubjectRangetDao.save(subjectRange);
-        }
-    }
-
     @Override
     public ReportSubjectRange save(ReportSubjectRange r) {
         return reportSubjectRangetDao.save(r);
     }
 
-
 }

+ 0 - 23
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectServiceImpl.java

@@ -20,7 +20,6 @@ import cn.com.qmth.stmms.biz.report.dao.ReportSubjectDao;
 import cn.com.qmth.stmms.biz.report.model.ReportSubject;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectService;
-import cn.com.qmth.stmms.biz.utils.DoubleUtil;
 
 /**
  * 课程总量统计service
@@ -69,26 +68,4 @@ public class ReportSubjectServiceImpl extends BaseQueryService<ReportSubject> im
         return query;
     }
 
-    @Override
-    public void saveReportSubjectData(Integer examId) {
-        List<Object[]> reportSubjectList = reportSubjectDao.queryReportSubjectData(examId);
-        for (Object[] rs : reportSubjectList) {
-            ReportSubject subject = new ReportSubject();
-            subject.setExamId(Integer.parseInt(rs[0].toString()));
-            subject.setSubjectCode(rs[1].toString());
-            subject.setSubjectName(rs[2].toString());
-            subject.setTotalCount(Integer.parseInt(rs[3].toString()));
-            subject.setAbsentCount(Integer.parseInt(rs[4].toString()));
-            subject.setBreachCount(Integer.parseInt(rs[5].toString()));
-            subject.setRealityCount(Integer.parseInt(rs[6].toString()));
-            subject.setMaxScore(Double.parseDouble(rs[7].toString()));
-            subject.setMinScore(Double.parseDouble(rs[8].toString()));
-            subject.setAvgScore(DoubleUtil.format(Double.parseDouble(rs[9].toString()), "0.00"));
-            subject.setPassCount(Integer.parseInt(rs[10].toString()));
-            subject.setPassRate(DoubleUtil.div(Integer.parseInt(rs[10].toString()), Integer.parseInt(rs[6].toString()),
-                    2));
-            reportSubjectDao.save(subject);
-        }
-    }
-
 }

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

@@ -77,34 +77,6 @@ public class ReportSubjectTeacherClassServiceImpl extends BaseQueryService<Repor
         return result;
     }
 
-    @Override
-    public void saveReportSubjectTeacherClassData(Integer examId, String subjectCode) {
-//        ExamSubject examSubject = examSubjectDao.findByExamIdAndCode(examId, subjectCode);
-//        List<Object[]> reportSubjectTeacherClassList = reportSubjectTeacherClassDao.queryReportSubjectTeacherClassData(
-//                examId, subjectCode);
-//        Double subjectAvgScore = reportSubjectDao.querySubjectAvgScore(examId, subjectCode);
-//        for (Object[] rs : reportSubjectTeacherClassList) {
-//            ReportSubjectTeacherClass teacherClass = new ReportSubjectTeacherClass();
-//            teacherClass.setExamId(examId);
-//            teacherClass.setSubjectCode(subjectCode);
-//            teacherClass.setSubjectName(examSubject.getName());
-//            teacherClass.setTeacherName(rs[0].toString());
-//            teacherClass.setClassName(rs[1].toString());
-//            teacherClass.setRealityCount(Integer.parseInt(rs[2].toString()));
-//            teacherClass.setPassCount(Integer.parseInt(rs[3].toString()));
-//            teacherClass.setExcellentCount(Integer.parseInt(rs[4].toString()));
-//            teacherClass.setMaxScore(Double.parseDouble(rs[5].toString()));
-//            teacherClass.setMinScore(Double.parseDouble(rs[6].toString()));
-//            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(DoubleUtil.format(Double.parseDouble(rs[7].toString()) - subjectAvgScore,
-//                    "0.00"));
-//            reportSubjectTeacherClassDao.save(teacherClass);
-//        }
-    }
-
     @Override
     public ReportSubjectTeacherClass save(ReportSubjectTeacherClass r) {
         return reportSubjectTeacherClassDao.save(r);

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

@@ -74,32 +74,6 @@ public class ReportSubjectTeacherServiceImpl extends BaseQueryService<ReportSubj
         return result;
     }
 
-    @Override
-    public void saveReportSubjectTeacherData(Integer examId, String subjectCode) {
-//        ExamSubject examSubject = examSubjectDao.findByExamIdAndCode(examId, subjectCode);
-//        List<Object[]> reportSubjectTeacherList = reportSubjectTeacherDao.queryReportSubjectTeacherData(examId,
-//                subjectCode);
-//        Double subjectAvgScore = reportSubjectDao.querySubjectAvgScore(examId, subjectCode);
-//        for (Object[] rs : reportSubjectTeacherList) {
-//            ReportSubjectTeacher subject = new ReportSubjectTeacher();
-//            subject.setExamId(examId);
-//            subject.setSubjectCode(subjectCode);
-//            subject.setSubjectName(examSubject.getName());
-//            subject.setTeacherName(rs[0].toString());
-//            subject.setRealityCount(Integer.parseInt(rs[1].toString()));
-//            subject.setPassCount(Integer.parseInt(rs[2].toString()));
-//            subject.setExcellentCount(Integer.parseInt(rs[3].toString()));
-//            subject.setMaxScore(Double.parseDouble(rs[4].toString()));
-//            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.00"));
-//            subject.setRelativeAvgScore(DoubleUtil.format(Double.parseDouble(rs[6].toString()) - subjectAvgScore,
-//                    "0.00"));
-//            reportSubjectTeacherDao.save(subject);
-//        }
-    }
-
     @Override
     public ReportSubjectTeacher save(ReportSubjectTeacher r) {
         return reportSubjectTeacherDao.save(r);

+ 0 - 124
stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/ScoreRateDTO.java

@@ -1,124 +0,0 @@
-package cn.com.qmth.stmms.admin.dto;
-
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
-import cn.com.qmth.stmms.biz.exam.model.ScoreRate;
-import cn.com.qmth.stmms.common.annotation.ExcelField;
-
-public class ScoreRateDTO {
-	
-    @ExcelField(title = "学习中心", align = 2, sort = 10)
-    private String campusName;
-
-    @ExcelField(title = "科目代码", align = 2, sort = 20)
-    private String subjectCode;
-
-    @ExcelField(title = "科目名称", align = 2, sort = 30)
-    private String subjectName;
-
-    @ExcelField(title = "层次", align = 2, sort = 40)
-    private String level;
-
-    @ExcelField(title = "题号", align = 2, sort = 50)
-    private String questionNumber;
-
-    @ExcelField(title = "题目名称", align = 2, sort = 60)
-    private String title;
-
-    @ExcelField(title = "平均分", align = 2, sort = 70)
-    private Double avgScore;
-
-    @ExcelField(title = "应得分", align = 2, sort = 80)
-    private Double totalScore;
-    
-    @ExcelField(title = "得分率(%)", align = 2, sort = 90)
-    private double rate;
-
-    public ScoreRateDTO() {
-
-    }
-
-    public ScoreRateDTO(ScoreRate scoreRate,ExamSubject subject) {
-    	setCampusName(scoreRate.getCampusName());
-        setSubjectCode(scoreRate.getSubjectCode());
-        setSubjectName(subject != null ? subject.getName() : "");
-        setLevel(subject != null ? subject.getLevel() : "");
-        setQuestionNumber(scoreRate.getQuestionNumber());
-        setTitle(scoreRate.getMainTitle());
-        setAvgScore(scoreRate.getAvgScore());
-        setTotalScore(scoreRate.getTotalScore());
-        setRate(scoreRate.getRate());
-    }
-
-	public String getCampusName() {
-		return campusName;
-	}
-
-	public void setCampusName(String campusName) {
-		this.campusName = campusName;
-	}
-
-	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 getLevel() {
-		return level;
-	}
-
-	public void setLevel(String level) {
-		this.level = level;
-	}
-
-	public String getQuestionNumber() {
-		return questionNumber;
-	}
-
-	public void setQuestionNumber(String questionNumber) {
-		this.questionNumber = questionNumber;
-	}
-
-	public String getTitle() {
-		return title;
-	}
-
-	public void setTitle(String title) {
-		this.title = title;
-	}
-
-	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 getRate() {
-		return rate;
-	}
-
-	public void setRate(double rate) {
-		this.rate = rate;
-	}
-
-}

+ 0 - 97
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ScoreRateController.java

@@ -1,97 +0,0 @@
-package cn.com.qmth.stmms.admin.exam;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
-
-import cn.com.qmth.stmms.admin.dto.ScoreRateDTO;
-import cn.com.qmth.stmms.biz.exam.model.ScoreRate;
-import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
-import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
-import cn.com.qmth.stmms.biz.exam.service.ScoreRateService;
-import cn.com.qmth.stmms.biz.exam.service.query.ScoreRateSearchQuery;
-import cn.com.qmth.stmms.common.domain.WebUser;
-import cn.com.qmth.stmms.common.utils.DateUtils;
-import cn.com.qmth.stmms.common.utils.ExportExcel;
-import cn.com.qmth.stmms.common.utils.RequestUtils;
-/**
- * 得分率 
- */
-@Controller
-@RequestMapping("/admin/exam/rate")
-public class ScoreRateController extends BaseExamController {
-
-    protected static Logger log = LoggerFactory.getLogger(ScoreRateController.class);
-
-    @Autowired
-    private ScoreRateService scoreRateService;
-    @Autowired
-    private ExamStudentService studentService;
-    @Autowired
-    private ExamSubjectService subjectService;
-
-    @RequestMapping
-    public String list(Model model, HttpServletRequest request, ScoreRateSearchQuery query) {
-    	WebUser wu = RequestUtils.getWebUser(request);
-        int examId = getSessionExamId(request); 
-        if (examId > 0) {
-        	if (StringUtils.isNotEmpty(query.getCampusName())) {
-	            query.setExamId(examId);
-	            query.setObjective(false);
-	            query = scoreRateService.findByQuery(query);
-	            for (ScoreRate s : query.getResult()) {
-	                s.setSubject((subjectService.find(s.getExamId(), s.getSubjectCode())));
-	            }
-        	}
-            model.addAttribute("query", query);
-            model.addAttribute("campusList", studentService.findDistinctCampusName(examId));
-            model.addAttribute("subjectList", getExamSubject(examId,wu));
-            return "modules/exam/scoreRateInfo";
-        } else {
-            return "redirect:/admin/exam/list";
-        }
-    }
-    
-	@RequestMapping(value = "/export", method = RequestMethod.POST)
-	public String exportFile(ScoreRateSearchQuery query,
-			HttpServletRequest request, HttpServletResponse response,
-			RedirectAttributes redirectAttributes) {
-		int examId = getSessionExamId(request);
-		try {
-        	if (StringUtils.isNotEmpty(query.getCampusName())) {
-	            query.setExamId(examId);
-	            query.setObjective(false);
-	            query.setPageNumber(1);
-	            query.setPageSize(Integer.MAX_VALUE);
-	            String fileName = "得分率" + DateUtils.getDate("yyyyMMdd") + ".xlsx";
-	            query = scoreRateService.findByQuery(query);
-	            List<ScoreRateDTO> list = new ArrayList<>();
-	            for (ScoreRate s : query.getResult()) {
-	            	list.add(new ScoreRateDTO(s, subjectService.find(s.getExamId(), s.getSubjectCode())));
-	            }
-	            new ExportExcel("得分率", ScoreRateDTO.class)
-	            .setDataList(list).write(response, fileName)
-	            .dispose();
-	            return null;
-        	}else{
-        		addMessage(redirectAttributes, "请选择学习中心,导出数据失败!");
-        	}
-		} catch (Exception e) {
-			addMessage(redirectAttributes, "导出数据失败!" + e.getMessage());
-		}
-		return "redirect:/admin/exam/rate";
-	}
-
-}

+ 0 - 123
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/StatisticsController.java

@@ -1,123 +0,0 @@
-package cn.com.qmth.stmms.admin.exam;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.servlet.mvc.support.RedirectAttributes;
-
-import cn.com.qmth.stmms.admin.vo.StatisticsVO;
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
-import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
-import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
-import cn.com.qmth.stmms.biz.exam.service.query.ExamSubjectSearchQuery;
-import cn.com.qmth.stmms.common.domain.WebUser;
-import cn.com.qmth.stmms.common.utils.DateUtils;
-import cn.com.qmth.stmms.common.utils.ExportExcel;
-import cn.com.qmth.stmms.common.utils.RequestUtils;
-
-/**
- * 分段统计
- */
-@Controller
-@RequestMapping("/admin/exam/statistics")
-public class StatisticsController extends BaseExamController {
-
-    protected static Logger log = LoggerFactory.getLogger(StatisticsController.class);
-
-    @Autowired
-    private ExamSubjectService subjectService;
-    @Autowired
-    private ExamStudentService examStudentService;
-
-    @RequestMapping
-    public String list(Model model, HttpServletRequest request, ExamSubjectSearchQuery query,
-    		@RequestParam(required = false) Boolean upload) {
-    	WebUser wu = RequestUtils.getWebUser(request);
-        int examId = getSessionExamId(request);
-        if (examId > 0) {
-            query.setExamId(examId);
-            query = subjectService.findByQuery(query);
-            List<StatisticsVO> statisticsVOs = new ArrayList<StatisticsVO>(); 
-            for (ExamSubject subject : query.getResult()) {
-            	StatisticsVO vo = new StatisticsVO(subject);
-            	vo = getStatisticsInfo(vo,upload);
-            	statisticsVOs.add(vo);
-			}
-            model.addAttribute("statisticsVOs", statisticsVOs);
-            model.addAttribute("query", query);
-            model.addAttribute("upload", upload);
-            model.addAttribute("subjectList", getExamSubject(examId,wu));
-            model.addAttribute("levelList", subjectService.listLevel(examId));
-            model.addAttribute("categoryList", subjectService.listCategory(examId));
-            return "modules/exam/statisticsInfo";
-        } else {
-            return "redirect:/admin/exam/list";
-        }
-    }
-
-	private StatisticsVO getStatisticsInfo(StatisticsVO vo,Boolean upload) {
-		List<Object[]> list = null;
-		if(upload!=null){
-			vo.setStudentCount(examStudentService.countByExamIdAndSubjectCode(vo.getExamId(), vo.getCode(), upload,false));
-			list = examStudentService.statisticsByExamIdAndSubjectCode(vo.getExamId(), vo.getCode(),upload,false);
-		}else{
-			vo.setStudentCount(examStudentService.countByExamIdAndSubjectCode(vo.getExamId(), vo.getCode()));
-			list = examStudentService.statisticsByExamIdAndSubjectCode(vo.getExamId(), vo.getCode());
-		}
-		vo.setCount0_49((long) (list.get(0)[0]==null?0L:list.get(0)[0]));
-		vo.setCount50_59((long) (list.get(0)[1]==null?0L:list.get(0)[1]));
-		vo.setCount60_69((long) (list.get(0)[2]==null?0L:list.get(0)[2]));
-		vo.setCount70_79((long) (list.get(0)[3]==null?0L:list.get(0)[3]));
-		vo.setCount80_89((long) (list.get(0)[4]==null?0L:list.get(0)[4]));
-		vo.setCount90_100((long) (list.get(0)[5]==null?0L:list.get(0)[5]));
-		if(vo.getStudentCount()!=0){
-			vo.setPercent0_49(new BigDecimal(vo.getCount0_49()*100.0/vo.getStudentCount()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
-			vo.setPercent50_59(new BigDecimal(vo.getCount50_59()*100.0/vo.getStudentCount()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
-			vo.setPercent60_69(new BigDecimal(vo.getCount60_69()*100.0/vo.getStudentCount()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
-			vo.setPercent70_79(new BigDecimal(vo.getCount70_79()*100.0/vo.getStudentCount()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
-			vo.setPercent80_89(new BigDecimal(vo.getCount80_89()*100.0/vo.getStudentCount()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
-			vo.setPercent90_100(new BigDecimal(vo.getCount90_100()*100.0/vo.getStudentCount()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
-		}
-		return vo;
-	}
-
-	@RequestMapping(value = "/export", method = RequestMethod.POST)
-	public String exportFile(ExamSubjectSearchQuery query,
-			@RequestParam(required = false) Boolean upload,
-			HttpServletRequest request, HttpServletResponse response,
-			RedirectAttributes redirectAttributes) {
-		int examId = getSessionExamId(request);
-		try {
-			query.setPageNumber(1);
-			query.setPageSize(Integer.MAX_VALUE);
-			query.setExamId(examId);
-			String fileName = "分段统计" + DateUtils.getDate("yyyyMMdd") + ".xlsx";
-			query = subjectService.findByQuery(query);
-			List<StatisticsVO> statisticsVOs = new ArrayList<StatisticsVO>();
-			for (ExamSubject subject : query.getResult()) {
-				StatisticsVO vo = new StatisticsVO(subject);
-				vo = getStatisticsInfo(vo, upload);
-				statisticsVOs.add(vo);
-			}
-			new ExportExcel("分段统计", StatisticsVO.class)
-					.setDataList(statisticsVOs).write(response, fileName)
-					.dispose();
-			return null;
-		} catch (Exception e) {
-			addMessage(redirectAttributes, "导出数据失败!" + e.getMessage());
-		}
-		return "redirect:/admin/exam/statistics";
-	}
-}

+ 0 - 230
stmms-web/src/main/java/cn/com/qmth/stmms/admin/vo/StatisticsVO.java

@@ -1,230 +0,0 @@
-package cn.com.qmth.stmms.admin.vo;
-
-import java.io.Serializable;
-
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
-import cn.com.qmth.stmms.common.annotation.ExcelField;
-
-public class StatisticsVO implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-
-	private Integer examId;
-	
-	@ExcelField(title = "课程名称", align = 2, sort = 10)
-	private String name;
-
-	@ExcelField(title = "课程代码", align = 2, sort = 20)
-	private String code;
-
-	@ExcelField(title = "层次", align = 2, sort = 30)
-	private String level;
-
-	private String category;
-
-	private String remark;
-
-	@ExcelField(title = "0-49", align = 2, sort = 40)
-	private long count0_49;
-	
-	@ExcelField(title = "0-49占比(%)", align = 2, sort = 50)
-	private double percent0_49;
-	
-	@ExcelField(title = "50-59", align = 2, sort = 60)
-	private long count50_59;
-	
-	@ExcelField(title = "50-59占比(%)", align = 2, sort = 70)
-	private double percent50_59;
-	
-	@ExcelField(title = "60-69", align = 2, sort = 80)
-	private long count60_69;
-	
-	@ExcelField(title = "60-69占比(%)", align = 2, sort = 90)
-	private double percent60_69;
-	
-	@ExcelField(title = "70-79", align = 2, sort = 100)
-	private long count70_79;
-	
-	@ExcelField(title = "70-79占比(%)", align = 2, sort = 110)
-	private double percent70_79;
-	
-	@ExcelField(title = "80-89", align = 2, sort = 120)
-	private long count80_89;
-	
-	@ExcelField(title = "80-89占比(%)", align = 2, sort = 130)
-	private double percent80_89;
-	
-	@ExcelField(title = "90-100", align = 2, sort = 140)
-	private long count90_100;
-	
-	@ExcelField(title = "90-100占比(%)", align = 2, sort = 150)
-	private double percent90_100;
-	
-	@ExcelField(title = "总数", align = 2, sort = 160)
-	private long studentCount;
-
-	public StatisticsVO() {
-	}
-
-	public StatisticsVO(ExamSubject subject) {
-		this.examId = subject.getExamId();
-		this.name = subject.getName();
-		this.code = subject.getCode();
-		this.category = subject.getCategory();
-		this.level = subject.getLevel();
-		this.remark = subject.getRemark();
-	}
-
-	public Integer getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Integer examId) {
-		this.examId = examId;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getCode() {
-		return code;
-	}
-
-	public void setCode(String code) {
-		this.code = code;
-	}
-
-	public String getLevel() {
-		return level;
-	}
-
-	public void setLevel(String level) {
-		this.level = level;
-	}
-
-	public String getCategory() {
-		return category;
-	}
-
-	public void setCategory(String category) {
-		this.category = category;
-	}
-
-	public String getRemark() {
-		return remark;
-	}
-
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
-	public long getCount0_49() {
-		return count0_49;
-	}
-
-	public void setCount0_49(long count0_49) {
-		this.count0_49 = count0_49;
-	}
-
-	public double getPercent0_49() {
-		return percent0_49;
-	}
-
-	public void setPercent0_49(double percent0_49) {
-		this.percent0_49 = percent0_49;
-	}
-
-	public long getCount50_59() {
-		return count50_59;
-	}
-
-	public void setCount50_59(long count50_59) {
-		this.count50_59 = count50_59;
-	}
-
-	public double getPercent50_59() {
-		return percent50_59;
-	}
-
-	public void setPercent50_59(double percent50_59) {
-		this.percent50_59 = percent50_59;
-	}
-
-	public long getCount60_69() {
-		return count60_69;
-	}
-
-	public void setCount60_69(long count60_69) {
-		this.count60_69 = count60_69;
-	}
-
-	public double getPercent60_69() {
-		return percent60_69;
-	}
-
-	public void setPercent60_69(double percent60_69) {
-		this.percent60_69 = percent60_69;
-	}
-
-	public long getCount70_79() {
-		return count70_79;
-	}
-
-	public void setCount70_79(long count70_79) {
-		this.count70_79 = count70_79;
-	}
-
-	public double getPercent70_79() {
-		return percent70_79;
-	}
-
-	public void setPercent70_79(double percent70_79) {
-		this.percent70_79 = percent70_79;
-	}
-
-	public long getCount80_89() {
-		return count80_89;
-	}
-
-	public void setCount80_89(long count80_89) {
-		this.count80_89 = count80_89;
-	}
-
-	public double getPercent80_89() {
-		return percent80_89;
-	}
-
-	public void setPercent80_89(double percent80_89) {
-		this.percent80_89 = percent80_89;
-	}
-
-	public long getCount90_100() {
-		return count90_100;
-	}
-
-	public void setCount90_100(long count90_100) {
-		this.count90_100 = count90_100;
-	}
-
-	public double getPercent90_100() {
-		return percent90_100;
-	}
-
-	public void setPercent90_100(double percent90_100) {
-		this.percent90_100 = percent90_100;
-	}
-
-	public long getStudentCount() {
-		return studentCount;
-	}
-
-	public void setStudentCount(long studentCount) {
-		this.studentCount = studentCount;
-	}
-
-}

+ 0 - 93
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/scoreRateInfo.jsp

@@ -1,93 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" %>
-<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
-<html>
-<head>
-	<title>成绩分析</title>
-	<meta name="decorator" content="default"/>
-	<%@include file="/WEB-INF/views/include/head.jsp" %>
-	<%@include file="/WEB-INF/views/include/dialog.jsp" %>
-	<style type="text/css">.sort{color:#0663A2;cursor:pointer;}</style>
-</head>
-<body>
-	<ul class="nav nav-tabs">
-		<li><a href="${ctx}/admin/exam/statistics">分段统计</a></li>
-		<li class="active"><a href="${ctx}/admin/exam/rate">得分率</a></li>
-	</ul>
-	<form id="searchForm" action="${ctx}/admin/exam/rate" method="post" class="breadcrumb form-search">
-		<input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
-		<input type="hidden" id="pageSize" name="pageSize" value="${query.pageSize }"/>
-		<div>
-			<label>学习中心</label>
-			<select class="input-large" id="campusName" name="campusName">
-				<option value="">请选择...</option>
-				<c:forEach items="${campusList }" var="campus">
-					<option value="${campus}" <c:if test="${query.campusName eq campus }">selected</c:if>>${campus}</option>
-				</c:forEach>
-			</select>
-			<label>科目</label>
-			<select class="input-large" name="subjectCode" id="subject-select">
-				<option value="">请选择</option>
-				<c:forEach items="${subjectList}" var="subject">
-				<option value="${subject.code}" data-level="${subject.level}" <c:if test="${subject.code==query.subjectCode}">selected</c:if>>${subject.code}-${subject.name}</option>
-				</c:forEach>
-			</select>
-			&nbsp;
-			<input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
-			&nbsp;
-			<input id="export-button" class="btn" type="button" value="导出"/> 
-		</div>
-	</form>
-	<tags:message content="${message}"/>
-	<table id="contentTable" class="table table-striped table-bordered table-condensed">
-		<thead>
-			<tr>
-				<th>学习中心</th>
-				<th>科目名称</th>
-				<th>层次</th>
-				<th>题号</th>
-				<th>题目名称</th>
-				<th>平均分</th>
-				<th>应得分</th>
-				<th>得分率</th>
-			</tr>
-		</thead>
-		<tbody>
-		<c:forEach items="${query.result}" var="scoreRate">
-			<tr>
-				<td>${scoreRate.campusName }</td>
-				<td>
-					${scoreRate.subject.code}-${scoreRate.subject.name}&nbsp;${scoreRate.subject.remark}
-				</td>
-				<td>${scoreRate.subject.level }</td>
-				<td>${scoreRate.questionNumber}</td>
-				<td>${scoreRate.mainTitle }</td>
-				<td>${scoreRate.avgScore }</td>
-				<td>${scoreRate.totalScore}</td>
-				<td>${scoreRate.rate }%</td>
-			</tr>
-		</c:forEach>
-		</tbody>
-	</table>
-	<div class="pagination">${query}</div>
-<script type="text/javascript">
-function page(n,s){
-	$("#pageNumber").val(n);
-	$("#pageSize").val(s);
-	$("#searchForm").attr('action','${ctx}/admin/exam/rate');
-	$("#searchForm").submit();
-	return false;
-}
-function goSearch(){
-	$("#pageNumber").val(1);
-	$("#pageSize").val('${query.pageSize}');
-	$("#searchForm").attr('action','${ctx}/admin/exam/rate');
-	$("#searchForm").submit();
-	return false;
-}
-$("#export-button").click(function(){
-	$("#searchForm").attr("action","${ctx}/admin/exam/rate/export");
-	$("#searchForm").submit();
-});
-</script>	
-</body>
-</html>

+ 0 - 123
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/statisticsInfo.jsp

@@ -1,123 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" %>
-<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
-<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
-<html>
-<head>
-	<title>成绩分析</title>
-	<meta name="decorator" content="default"/>
-	<%@include file="/WEB-INF/views/include/head.jsp" %>
-	<%@include file="/WEB-INF/views/include/dialog.jsp" %>
-	<style type="text/css">.sort{color:#0663A2;cursor:pointer;}</style>
-</head>
-<body>
-	<ul class="nav nav-tabs">
-		<li class="active"><a href="${ctx}/admin/exam/statistics">分段统计</a></li>
-		<li><a href="${ctx}/admin/exam/rate">得分率</a></li>
-	</ul>
-	<form id="searchForm" action="${ctx}/admin/exam/statistics" method="post" class="breadcrumb form-search">
-		<input type="hidden" id="pageNumber" name="pageNumber" value="${query.pageNumber }"/>
-		<input type="hidden" id="pageSize" name="pageSize" value="${query.pageSize }"/>
-		<div>
-			<label>科目</label>
-			<select class="input-large" name="code" id="subject-select">
-				<option value="">请选择</option>
-				<c:forEach items="${subjectList}" var="subject">
-				<option value="${subject.code}" data-level="${subject.level}" <c:if test="${subject.code==query.code}">selected</c:if>>${subject.code}-${subject.name}</option>
-				</c:forEach>
-			</select>
-			<label>层次</label>
-			<select class="input-small" name="level" id="level-select">
-				<option value="">请选择</option>
-				<c:forEach items="${levelList}" var="level">
-				<option value="${level}" data-level="${level}" <c:if test="${level==query.level}">selected</c:if>>${level}</option>
-				</c:forEach>
-			</select>
-			<label>专业类型</label>
-			<select class="input-small" name="category" id="category-select">
-				<option value="">请选择</option>
-				<c:forEach items="${categoryList}" var="category">
-				<option value="${category}" <c:if test="${category==query.category}">selected</c:if>>${category}</option>
-				</c:forEach>
-			</select>
-			&nbsp;
-			<label>是否缺考</label>
-			<select class="input-small" name="upload">
-				<option value="">不限</option>
-				<option value="1" <c:if test="${upload!=null && upload==true}">selected</c:if>>不缺考</option>
-			</select>
-			&nbsp;
-			<input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
-			&nbsp;
-			<input id="export-button" class="btn" type="button" value="导出"/> 
-		</div>
-	</form>
-	<tags:message content="${message}"/>
-<table id="contentTable" class="table table-striped table-bordered table-condensed">
-		<thead>
-			<tr>
-				<th>科目名称</th>
-				<th>层次</th>
-				<th>专业类型</th>
-				<th>0-49</th>
-				<th>0-49占比</th>
-				<th>50-59</th>
-				<th>50-59占比</th>
-				<th>60-69</th>
-				<th>60-69占比</th>
-				<th>70-79</th>
-				<th>70-79占比</th>
-				<th>80-89</th>
-				<th>80-89占比</th>
-				<th>90-100</th>
-				<th>90-100占比</th>
-				<th>总数</th>
-			</tr>
-		</thead>
-		<tbody>
-		<c:forEach items="${statisticsVOs}" var="subject">
-			<tr>
-				<td>
-					${subject.code}-${subject.name}&nbsp;${subject.remark}
-				</td>
-				<td>${subject.level}</td>
-				<td>${subject.category}</td>
-				<td>${subject.count0_49}</td>
-				<td>${subject.percent0_49}%</td>
-				<td>${subject.count50_59}</td>
-				<td>${subject.percent50_59}%</td>
-				<td>${subject.count60_69}</td>
-				<td>${subject.percent60_69}%</td>
-				<td>${subject.count70_79}</td>
-				<td>${subject.percent70_79}%</td>
-				<td>${subject.count80_89}</td>
-				<td>${subject.percent80_89}%</td>
-				<td>${subject.count90_100}</td>
-				<td>${subject.percent90_100}%</td>
-				<td>${subject.studentCount}</td>
-			</tr>
-		</c:forEach>
-		</tbody>
-	</table>
-	<div class="pagination">${query}</div>
-<script type="text/javascript">
-function page(n,s){
-	$("#pageNumber").val(n);
-	$("#pageSize").val(s);
-	$("#searchForm").attr('action','${ctx}/admin/exam/statistics');
-	$("#searchForm").submit();
-	return false;
-}
-function goSearch(){
-	$("#pageNumber").val(1);
-	$("#pageSize").val('${query.pageSize}');
-	$("#searchForm").attr('action','${ctx}/admin/exam/statistics');
-	$("#searchForm").submit();
-	return false;
-}
-$("#export-button").click(function(){
-	$("#searchForm").attr("action","${ctx}/admin/exam/statistics/export");
-	$("#searchForm").submit();
-});
-</script>	
-</body>
-</html>