|
@@ -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();
|