فهرست منبع

成绩分析保存;修改部分属性名

ting.yin 6 سال پیش
والد
کامیت
217177f015
24فایلهای تغییر یافته به همراه210 افزوده شده و 45 حذف شده
  1. 16 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectCollege.java
  2. 12 12
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectGroup.java
  3. 6 6
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectQuestion.java
  4. 2 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubjectTeacherClass.java
  5. 4 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectClassService.java
  6. 4 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectCollegeService.java
  7. 8 4
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectGroupService.java
  8. 2 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectRangeService.java
  9. 4 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectTeacherClassService.java
  10. 4 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectTeacherService.java
  11. 5 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectClassServiceImpl.java
  12. 5 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectCollegeServiceImpl.java
  13. 9 4
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectGroupServiceImpl.java
  14. 1 1
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectQuestionServiceImpl.java
  15. 5 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectRangeServiceImpl.java
  16. 5 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectTeacherClassServiceImpl.java
  17. 5 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectTeacherServiceImpl.java
  18. 20 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/ReportContext.java
  19. 23 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/module/SubjectClassModule.java
  20. 25 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/module/SubjectCollegeModule.java
  21. 29 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/module/SubjectModule.java
  22. 13 1
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/unit/BaseCalculatorUnit.java
  23. 2 2
      stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectGroup.jsp
  24. 1 1
      stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectQuestion.jsp

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

@@ -99,6 +99,13 @@ public class ReportSubjectCollege implements Serializable {
     @Column(name = "excellent_rate")
     private Double excellentRate;
 
+    /**
+     * 优秀人数
+     */
+    @ExcelField(title = "优秀人数", align = 2, sort = 100)
+    @Column(name = "excellent_count")
+    private Integer excellentCount;
+
     public Integer getId() {
         return id;
     }
@@ -186,4 +193,13 @@ public class ReportSubjectCollege implements Serializable {
     public void setExcellentRate(Double excellentRate) {
         this.excellentRate = excellentRate;
     }
+
+    public Integer getExcellentCount() {
+        return excellentCount;
+    }
+
+    public void setExcellentCount(Integer excellentCount) {
+        this.excellentCount = excellentCount;
+    }
+
 }

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

@@ -96,15 +96,15 @@ public class ReportSubjectGroup implements Serializable {
      * 标准差
      */
     @ExcelField(title = "标准差", align = 2, sort = 90)
-    @Column(name = "sd")
-    private Double SD;
+    @Column(name = "stdev")
+    private Double stdev;
 
     /**
      * 差异系数
      */
     @ExcelField(title = "差异系数(%)", align = 2, sort = 100)
-    @Column(name = "cv")
-    private Double CV;
+    @Column(name = "coefficient")
+    private Double coefficient;
 
     /**
      * 得分率
@@ -205,20 +205,20 @@ public class ReportSubjectGroup implements Serializable {
         this.totalScore = totalScore;
     }
 
-    public Double getSD() {
-        return SD;
+    public Double getStdev() {
+        return stdev;
     }
 
-    public void setSD(Double sD) {
-        SD = sD;
+    public void setStdev(Double stdev) {
+        this.stdev = stdev;
     }
 
-    public Double getCV() {
-        return CV;
+    public Double getCoefficient() {
+        return coefficient;
     }
 
-    public void setCV(Double cV) {
-        CV = cV;
+    public void setCoefficient(Double coefficient) {
+        this.coefficient = coefficient;
     }
 
     public Integer getZeroCount() {

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

@@ -89,8 +89,8 @@ public class ReportSubjectQuestion implements Serializable {
      * 标准差
      */
     @ExcelField(title = "标准差", align = 2, sort = 80)
-    @Column(name = "sd")
-    private Double sd;
+    @Column(name = "stdev")
+    private Double stdev;
 
     /**
      * 得分率
@@ -175,12 +175,12 @@ public class ReportSubjectQuestion implements Serializable {
         this.avgScore = avgScore;
     }
 
-    public Double getSd() {
-        return sd;
+    public Double getStdev() {
+        return stdev;
     }
 
-    public void setSd(Double sd) {
-        this.sd = sd;
+    public void setStdev(Double stdev) {
+        this.stdev = stdev;
     }
 
     public Double getScoreRate() {

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

@@ -121,9 +121,9 @@ public class ReportSubjectTeacherClass implements Serializable {
     private Double avgScore;
 
     /**
-     * 相对平均
+     * 平均相对分
      */
-    @ExcelField(title = "相对平均分", align = 2, sort = 130)
+    @ExcelField(title = "平均相对分", align = 2, sort = 130)
     @Column(name = "relative_avg_score")
     private Double relativeAvgScore;
 

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

@@ -1,10 +1,10 @@
 package cn.com.qmth.stmms.biz.report.service;
 
+import java.util.List;
+
 import cn.com.qmth.stmms.biz.report.model.ReportSubjectClass;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 
-import java.util.List;
-
 /**
  * 课程班级成绩分析
  *
@@ -18,5 +18,7 @@ public interface ReportSubjectClassService {
     List<ReportSubjectClass> findByQuery(ReportSubjectQuery query);
 
     void saveReportSubjectClassData(Integer examId, String subjectCode);
+    
+    ReportSubjectClass save(ReportSubjectClass r);
 
 }

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

@@ -1,10 +1,10 @@
 package cn.com.qmth.stmms.biz.report.service;
 
+import java.util.List;
+
 import cn.com.qmth.stmms.biz.report.model.ReportSubjectCollege;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 
-import java.util.List;
-
 /**
  * 课程学院分析 service 接口
  *
@@ -19,4 +19,6 @@ public interface ReportSubjectCollegeService {
 
     void saveReportSubjectCollegeData(Integer examId, String subjectCode);
 
+    ReportSubjectCollege save(ReportSubjectCollege r);
+
 }

+ 8 - 4
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/ReportSubjectGroupService.java

@@ -1,10 +1,10 @@
 package cn.com.qmth.stmms.biz.report.service;
 
+import java.util.List;
+
 import cn.com.qmth.stmms.biz.report.model.ReportSubjectGroup;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 
-import java.util.List;
-
 /**
  * 大题统计分析 service 接口
  *
@@ -20,9 +20,13 @@ public interface ReportSubjectGroupService {
     /**
      * 保存大题统计分析
      *
-     * @param examId      考试Id
-     * @param subjectCode 科目Code
+     * @param examId
+     *            考试Id
+     * @param subjectCode
+     *            科目Code
      */
     void saveReportSubjectGroupData(Integer examId, String subjectCode);
 
+    ReportSubjectGroup save(ReportSubjectGroup r);
+
 }

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

@@ -1,5 +1,6 @@
 package cn.com.qmth.stmms.biz.report.service;
 
+import cn.com.qmth.stmms.biz.report.model.ReportSubjectRange;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectRangeQuery;
 
 /**
@@ -16,4 +17,5 @@ public interface ReportSubjectRangeService {
 
     void saveReportRangeSubjectData(Integer examId);
 
+    ReportSubjectRange save(ReportSubjectRange r);
 }

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

@@ -1,10 +1,10 @@
 package cn.com.qmth.stmms.biz.report.service;
 
+import java.util.List;
+
 import cn.com.qmth.stmms.biz.report.model.ReportSubjectTeacherClass;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 
-import java.util.List;
-
 /**
  * 课程教师班级 成绩分析
  *
@@ -19,4 +19,6 @@ public interface ReportSubjectTeacherClassService {
 
     void saveReportSubjectTeacherClassData(Integer examId, String subjectCode);
 
+    ReportSubjectTeacherClass save(ReportSubjectTeacherClass r);
+
 }

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

@@ -1,10 +1,10 @@
 package cn.com.qmth.stmms.biz.report.service;
 
+import java.util.List;
+
 import cn.com.qmth.stmms.biz.report.model.ReportSubjectTeacher;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 
-import java.util.List;
-
 /**
  * 课程教师成绩分析
  *
@@ -19,4 +19,6 @@ public interface ReportSubjectTeacherService {
 
     void saveReportSubjectTeacherData(Integer examId, String subjectCode);
 
+    ReportSubjectTeacher save(ReportSubjectTeacher r);
+
 }

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

@@ -88,4 +88,9 @@ public class ReportSubjectClassServiceImpl extends BaseQueryService<ReportSubjec
         }
     }
 
+    @Override
+    public ReportSubjectClass save(ReportSubjectClass r) {
+        return reportSubjectClassDao.save(r);
+    }
+
 }

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

@@ -87,4 +87,9 @@ public class ReportSubjectCollegeServiceImpl extends BaseQueryService<ReportSubj
         }
     }
 
+    @Override
+    public ReportSubjectCollege save(ReportSubjectCollege r) {
+        return reportSubjectCollegeDao.save(r);
+    }
+
 }

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

@@ -199,8 +199,8 @@ public class ReportSubjectGroupServiceImpl extends BaseQueryService<ReportSubjec
             reportSubjectGroup.setMinScore(minScore);
             reportSubjectGroup.setAvgScore(avgScore);
             reportSubjectGroup.setTotalScore(fullScore);
-            reportSubjectGroup.setSD(sd);
-            reportSubjectGroup.setCV(cv);
+            reportSubjectGroup.setStdev(sd);
+            reportSubjectGroup.setCoefficient(cv);
             reportSubjectGroup.setScoreRate(scoreRate);
             reportSubjectGroup.setZeroCount(zeroScoreCount);
             reportSubjectGroup.setFullCount(fullScoreCount);
@@ -322,8 +322,8 @@ public class ReportSubjectGroupServiceImpl extends BaseQueryService<ReportSubjec
             reportSubjectGroup.setMinScore(minScore);
             reportSubjectGroup.setAvgScore(avgScore);
             reportSubjectGroup.setTotalScore(fullScore);
-            reportSubjectGroup.setSD(sd);
-            reportSubjectGroup.setCV(cv);
+            reportSubjectGroup.setStdev(sd);
+            reportSubjectGroup.setCoefficient(cv);
             reportSubjectGroup.setScoreRate(scoreRate);
             reportSubjectGroup.setZeroCount(zeroScoreCount);
             reportSubjectGroup.setFullCount(fullScoreCount);
@@ -334,4 +334,9 @@ public class ReportSubjectGroupServiceImpl extends BaseQueryService<ReportSubjec
 
     }
 
+    @Override
+    public ReportSubjectGroup save(ReportSubjectGroup r) {
+        return reportSubjectGroupDao.save(r);
+    }
+
 }

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

@@ -159,7 +159,7 @@ public class ReportSubjectQuestionServiceImpl extends BaseQueryService<ReportSub
                     reportSubjectQuestion.setTotalScore(question.getTotalScore());
                     reportSubjectQuestion.setAvgScore(avgScore);
                     reportSubjectQuestion.setScoreRate(DoubleUtil.div(avgScore, question.getTotalScore(), 2));
-                    reportSubjectQuestion.setSd(studentCount==0?0:DoubleUtil.format(Math.sqrt(variance / studentCount), "0.00"));
+                    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);

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

@@ -99,5 +99,10 @@ public class ReportSubjectRangeServiceImpl extends BaseQueryService<ReportSubjec
         }
     }
 
+    @Override
+    public ReportSubjectRange save(ReportSubjectRange r) {
+        return reportSubjectRangetDao.save(r);
+    }
+
 
 }

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

@@ -98,4 +98,9 @@ public class ReportSubjectTeacherClassServiceImpl extends BaseQueryService<Repor
         }
     }
 
+    @Override
+    public ReportSubjectTeacherClass save(ReportSubjectTeacherClass r) {
+        return reportSubjectTeacherClassDao.save(r);
+    }
+
 }

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

@@ -96,4 +96,9 @@ public class ReportSubjectTeacherServiceImpl extends BaseQueryService<ReportSubj
         }
     }
 
+    @Override
+    public ReportSubjectTeacher save(ReportSubjectTeacher r) {
+        return reportSubjectTeacherDao.save(r);
+    }
+
 }

+ 20 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/ReportContext.java

@@ -1,13 +1,18 @@
 package cn.com.qmth.stmms.biz.report.utils;
 
+import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
 import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.report.utils.module.SubjectClassModule;
 import cn.com.qmth.stmms.biz.report.utils.module.SubjectCollegeModule;
+import cn.com.qmth.stmms.biz.report.utils.module.SubjectGroupModule;
 import cn.com.qmth.stmms.biz.report.utils.module.SubjectModule;
+import cn.com.qmth.stmms.biz.report.utils.module.SubjectQuestionModule;
+import cn.com.qmth.stmms.biz.report.utils.module.SubjectRangeModule;
 import cn.com.qmth.stmms.biz.report.utils.module.SubjectTeacherClassModule;
 import cn.com.qmth.stmms.biz.report.utils.module.SubjectTeacherModule;
 
@@ -16,20 +21,28 @@ public class ReportContext {
     private Exam exam;
 
     private List<Module> modules;
+    
+    private Map<String,String> subjectMap;
 
     public ReportContext(Exam exam) {
         this.exam = exam;
         this.modules = new LinkedList<Module>();
 
+        this.modules.add(new SubjectRangeModule(this));
         this.modules.add(new SubjectModule(this));
         this.modules.add(new SubjectClassModule(this));
         this.modules.add(new SubjectCollegeModule(this));
         this.modules.add(new SubjectTeacherModule(this));
         this.modules.add(new SubjectTeacherClassModule(this));
+        this.modules.add(new SubjectQuestionModule(this));
+        this.modules.add(new SubjectGroupModule(this));
+        
+        this.subjectMap = new HashMap<String, String>();
     }
 
     public void process(ExamStudent student) {
         for (Module module : modules) {
+            subjectMap.put(student.getSubjectCode(), student.getSubjectName());
             module.process(student);
         }
     }
@@ -51,5 +64,12 @@ public class ReportContext {
     public double getRangeInterval() {
         return 1;
     }
+    
+    public Integer getExamId() {
+        return exam.getId();
+    }
 
+    public String getSubjectName(String subjectCode){
+        return subjectMap.get(subjectCode);
+    }
 }

+ 23 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/module/SubjectClassModule.java

@@ -3,9 +3,11 @@ package cn.com.qmth.stmms.biz.report.utils.module;
 import org.apache.commons.lang.StringUtils;
 
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
+import cn.com.qmth.stmms.biz.report.model.ReportSubjectClass;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectClassService;
 import cn.com.qmth.stmms.biz.report.utils.Module;
 import cn.com.qmth.stmms.biz.report.utils.ReportContext;
+import cn.com.qmth.stmms.biz.report.utils.unit.BaseCalculatorUnit;
 import cn.com.qmth.stmms.biz.utils.SpringContextHolder;
 
 public class SubjectClassModule extends SubjectModule implements Module {
@@ -20,6 +22,27 @@ public class SubjectClassModule extends SubjectModule implements Module {
 
     public void save() {
         ReportSubjectClassService service = SpringContextHolder.getBean(ReportSubjectClassService.class);
+        for (String key : this.units.keySet()) {
+            String s[] = key.split("\t");
+            if (s.length > 1) {
+                String subjectCode = s[0];
+                String className = s[1];
+                BaseCalculatorUnit unit = units.get(key);
+                ReportSubjectClass r = new ReportSubjectClass();
+                r.setExamId(this.context.getExamId());
+                r.setSubjectCode(subjectCode);
+                r.setSubjectName(this.context.getSubjectName(subjectCode));
+                r.setClassName(className);
+                r.setAvgScore(unit.avgScore);
+                r.setMaxScore(unit.maxScore);
+                r.setMinScore(unit.minScore);
+                r.setPassCount(unit.passCount);
+                r.setPassRate(unit.passRate);
+                r.setExcellentCount(unit.excellentCount);
+                r.setExcellentRate(unit.excellentRate);
+                service.save(r);
+            }
+        }
     }
 
 }

+ 25 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/module/SubjectCollegeModule.java

@@ -3,9 +3,11 @@ package cn.com.qmth.stmms.biz.report.utils.module;
 import org.apache.commons.lang.StringUtils;
 
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
-import cn.com.qmth.stmms.biz.report.service.ReportSubjectClassService;
+import cn.com.qmth.stmms.biz.report.model.ReportSubjectCollege;
+import cn.com.qmth.stmms.biz.report.service.ReportSubjectCollegeService;
 import cn.com.qmth.stmms.biz.report.utils.Module;
 import cn.com.qmth.stmms.biz.report.utils.ReportContext;
+import cn.com.qmth.stmms.biz.report.utils.unit.BaseCalculatorUnit;
 import cn.com.qmth.stmms.biz.utils.SpringContextHolder;
 
 public class SubjectCollegeModule extends SubjectModule implements Module {
@@ -19,7 +21,28 @@ public class SubjectCollegeModule extends SubjectModule implements Module {
     }
 
     public void save() {
-        ReportSubjectClassService service = SpringContextHolder.getBean(ReportSubjectClassService.class);
+        ReportSubjectCollegeService service = SpringContextHolder.getBean(ReportSubjectCollegeService.class);
+        for (String key : this.units.keySet()) {
+            String s[] = key.split("\t");
+            if (s.length > 1) {
+                String subjectCode = s[0];
+                String collegeName = s[1];
+                BaseCalculatorUnit unit = units.get(key);
+                ReportSubjectCollege r = new ReportSubjectCollege();
+                r.setExamId(this.context.getExamId());
+                r.setSubjectCode(subjectCode);
+                r.setSubjectName(this.context.getSubjectName(subjectCode));
+                r.setCollegeName(collegeName);
+                r.setAvgScore(unit.avgScore);
+                r.setMaxScore(unit.maxScore);
+                r.setMinScore(unit.minScore);
+                r.setPassCount(unit.passCount);
+                r.setPassRate(unit.passRate);
+                r.setExcellentCount(unit.excellentCount);
+                r.setExcellentRate(unit.excellentRate);
+                service.save(r);
+            }
+        }
     }
 
 }

+ 29 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/module/SubjectModule.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
+import cn.com.qmth.stmms.biz.report.model.ReportSubject;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectService;
 import cn.com.qmth.stmms.biz.report.utils.Module;
 import cn.com.qmth.stmms.biz.report.utils.ReportContext;
@@ -18,7 +19,7 @@ public class SubjectModule implements Module {
 
     protected Map<String, BaseCounter> counters;
 
-    private ReportContext context;
+    protected ReportContext context;
 
     public SubjectModule(ReportContext context) {
         this.units = new HashMap<String, BaseCalculatorUnit>();
@@ -43,9 +44,35 @@ public class SubjectModule implements Module {
 
     public void save() {
         ReportSubjectService service = SpringContextHolder.getBean(ReportSubjectService.class);
+        for (String subjectCode : this.counters.keySet()) {
+            BaseCounter counter = counters.get(subjectCode);
+            BaseCalculatorUnit unit = units.get(subjectCode);
+            ReportSubject subject = new ReportSubject();
+            subject.setExamId(this.context.getExamId());
+            subject.setSubjectCode(subjectCode);
+            subject.setSubjectName(this.context.getSubjectName(subjectCode));
+            subject.setTotalCount(counter.totalCount);
+            subject.setAbsentCount(counter.absentCount);
+            subject.setBreachCount(counter.breachCount);
+            subject.setRealityCount(counter.realityCount);
+            if (unit != null) {
+                subject.setMaxScore(unit.maxScore);
+                subject.setMinScore(unit.minScore);
+                subject.setAvgScore(unit.avgScore);
+                subject.setPassCount(unit.passCount);
+                subject.setPassRate(unit.passRate);
+            } else {
+                subject.setMaxScore(0d);
+                subject.setMinScore(0d);
+                subject.setAvgScore(0d);
+                subject.setPassCount(0);
+                subject.setPassRate(0d);
+            }
+            service.save(subject);
+        }
     }
 
-    private BaseCalculatorUnit findUnit(String key) {
+    protected BaseCalculatorUnit findUnit(String key) {
         BaseCalculatorUnit unit = units.get(key);
         if (unit == null) {
             unit = new BaseCalculatorUnit();

+ 13 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/unit/BaseCalculatorUnit.java

@@ -13,10 +13,14 @@ public class BaseCalculatorUnit {
     public Double passScore;
 
     public int passCount;
+    
+    public double passRate;
 
     public Double excellentScore;
 
     public int excellentCount;
+    
+    public double excellentRate;
 
     public double aggScore;
 
@@ -43,7 +47,9 @@ public class BaseCalculatorUnit {
     public double coefficient;
 
     public double discrimination;
-
+    
+    public double scoreRate;
+    
     public BaseCalculatorUnit() {
         minScore = Double.MAX_VALUE;
     }
@@ -85,6 +91,12 @@ public class BaseCalculatorUnit {
         // 区分度
         discrimination = (aggScore - sumScore * sumTotalScore / count) / Math.sqrt(
                 (sumScore2 - sumScore * sumScore / count) * (sumTotalScore2 - sumTotalScore * sumTotalScore / count));
+        // 及格率
+        passRate = passCount / count;
+        // 优秀率
+        excellentRate = excellentCount / count;
+        // 得分率
+        scoreRate = avgScore / fullCount;
     }
 
     @Override

+ 2 - 2
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectGroup.jsp

@@ -71,8 +71,8 @@
             <td>${group.maxScore}</td>
             <td>${group.minScore}</td>
             <td>${group.avgScore}</td>
-            <td>${group.SD}</td>
-            <td>${group.CV}</td>
+            <td>${group.stdev}</td>
+            <td>${group.coefficient}</td>
             <td>${group.scoreRate}</td>
             <td>${group.zeroCount}</td>
             <td>${group.fullCount}</td>

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectQuestion.jsp

@@ -72,7 +72,7 @@
             </c:if>
             <td>${question.totalScore}</td>
             <td>${question.avgScore}</td>
-            <td>${question.sd}</td>
+            <td>${question.stdev}</td>
             <td>${question.scoreRate}</td>
             <td>${question.fullScoreRate}</td>
         </tr>