|
@@ -1,5 +1,6 @@
|
|
|
package cn.com.qmth.stmms.report;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@@ -108,18 +109,25 @@ public class ReportController {
|
|
|
query.setPageSize(Integer.MAX_VALUE);
|
|
|
ReportSubject reportSubject = reportSubjectService.findOne(query.getExamId(), query.getSubjectCode());
|
|
|
List<ReportSubjectClass> subjectClasses = classService.findByQuery(query);
|
|
|
- List<ReportSubjectGroup> subjectGroups = groupService.findByQuery(query);
|
|
|
+ List<ReportSubjectGroup> subjectGroups = new ArrayList<ReportSubjectGroup>();
|
|
|
+ query.setObjective(true);
|
|
|
+ List<ReportSubjectGroup> subjectGroupO = groupService.findByQuery(query);
|
|
|
+ query.setObjective(false);
|
|
|
+ List<ReportSubjectGroup> subjectGroupsS = groupService.findByQuery(query);
|
|
|
+ subjectGroups.addAll(subjectGroupO);
|
|
|
+ subjectGroups.addAll(subjectGroupsS);
|
|
|
result.accumulate("basic_paper", getPaperJson(reportSubject));
|
|
|
- result.accumulate("basic_question_objective", getQuestionJson(query, true));
|
|
|
- result.accumulate("basic_question_subjective", getQuestionJson(query, false));
|
|
|
+ result.accumulate("basic_question_subjective", getQuestionJson(query, false, paperType));
|
|
|
+ result.accumulate("basic_question_objective", getQuestionJson(query, true, paperType));
|
|
|
result.accumulate("basic_class", getClassJson(subjectClasses));
|
|
|
result.accumulate("basic_teacher", getTeacerJson(query));
|
|
|
result.accumulate("basic_college", getCollegeJson(query));
|
|
|
result.accumulate("basic_main_question", getGroupJson(subjectGroups));
|
|
|
- result.accumulate("basic_question_option", getOptionJson(query, reportSubject));
|
|
|
+ result.accumulate("basic_question_option", getOptionJson(query, reportSubject, paperType));
|
|
|
result.accumulate("discrimination_level",
|
|
|
- getDiscrimination(query, reportSubject, subjectClasses, subjectGroups));
|
|
|
- result.accumulate("difficulty_level", getDifficulty(query, reportSubject, subjectClasses, subjectGroups));
|
|
|
+ getDiscrimination(query, paperType, reportSubject, subjectClasses, subjectGroups));
|
|
|
+ result.accumulate("difficulty_level",
|
|
|
+ getDifficulty(query, paperType, reportSubject, subjectClasses, subjectGroups));
|
|
|
result.accumulate("range_level", getRangeLevel(query, reportSubject, subjectClasses));
|
|
|
result.accumulate("range_10_totalScore", getRange10(reportSubject, subjectClasses));
|
|
|
result.accumulate("range_1_totalScore", getRange1(reportSubject, subjectClasses));
|
|
@@ -284,7 +292,7 @@ public class ReportController {
|
|
|
return array.toString();
|
|
|
}
|
|
|
|
|
|
- private String getDifficulty(ReportSubjectQuery query, ReportSubject reportSubject,
|
|
|
+ private String getDifficulty(ReportSubjectQuery query, String paperType, ReportSubject reportSubject,
|
|
|
List<ReportSubjectClass> subjectClasses, List<ReportSubjectGroup> subjectGroups) {
|
|
|
JSONObject defaultLevels = new JSONObject();
|
|
|
JSONObject content = new JSONObject();
|
|
@@ -333,8 +341,14 @@ public class ReportController {
|
|
|
: reportSubjectClass.getDifficulityLevel());
|
|
|
classGroups.add(group);
|
|
|
query.setClassName(reportSubjectClass.getClassName());
|
|
|
- query.setObjective(null);
|
|
|
- List<ReportSubjectClassGroup> classGroupsList = classGroupService.findByQuery(query);
|
|
|
+ List<ReportSubjectClassGroup> classGroupsList = new ArrayList<ReportSubjectClassGroup>();
|
|
|
+ query.setObjective(true);
|
|
|
+ query.setPaperType(paperType);
|
|
|
+ List<ReportSubjectClassGroup> classGroupsListO = classGroupService.findByQuery(query);
|
|
|
+ query.setObjective(false);
|
|
|
+ List<ReportSubjectClassGroup> classGroupsListS = classGroupService.findByQuery(query);
|
|
|
+ classGroupsList.addAll(classGroupsListO);
|
|
|
+ classGroupsList.addAll(classGroupsListS);
|
|
|
for (ReportSubjectClassGroup r : classGroupsList) {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.accumulate("name", r.getGroupName());
|
|
@@ -351,7 +365,7 @@ public class ReportController {
|
|
|
return result.toString();
|
|
|
}
|
|
|
|
|
|
- private String getDiscrimination(ReportSubjectQuery query, ReportSubject reportSubject,
|
|
|
+ private String getDiscrimination(ReportSubjectQuery query, String paperType, ReportSubject reportSubject,
|
|
|
List<ReportSubjectClass> subjectClasses, List<ReportSubjectGroup> subjectGroups) {
|
|
|
JSONObject defaultLevels = new JSONObject();
|
|
|
JSONObject content = new JSONObject();
|
|
@@ -401,8 +415,14 @@ public class ReportController {
|
|
|
: reportSubjectClass.getDiscriminationLevel());
|
|
|
classGroups.add(group);
|
|
|
query.setClassName(reportSubjectClass.getClassName());
|
|
|
- query.setObjective(null);
|
|
|
- List<ReportSubjectClassGroup> classGroupsList = classGroupService.findByQuery(query);
|
|
|
+ List<ReportSubjectClassGroup> classGroupsList = new ArrayList<ReportSubjectClassGroup>();
|
|
|
+ query.setObjective(true);
|
|
|
+ query.setPaperType(paperType);
|
|
|
+ List<ReportSubjectClassGroup> classGroupsListO = classGroupService.findByQuery(query);
|
|
|
+ query.setObjective(false);
|
|
|
+ List<ReportSubjectClassGroup> classGroupsListS = classGroupService.findByQuery(query);
|
|
|
+ classGroupsList.addAll(classGroupsListO);
|
|
|
+ classGroupsList.addAll(classGroupsListS);
|
|
|
for (ReportSubjectClassGroup r : classGroupsList) {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.accumulate("name", r.getGroupName());
|
|
@@ -419,13 +439,14 @@ public class ReportController {
|
|
|
return result.toString();
|
|
|
}
|
|
|
|
|
|
- private String getOptionJson(ReportSubjectQuery query, ReportSubject reportSubject) {
|
|
|
+ private String getOptionJson(ReportSubjectQuery query, ReportSubject reportSubject, String paperType) {
|
|
|
JSONObject value = new JSONObject();
|
|
|
if (reportSubject.getOptions() != null) {
|
|
|
value.accumulate("options", reportSubject.getOptions().split(ANSWER_SPLIT));
|
|
|
}
|
|
|
JSONArray array = new JSONArray();
|
|
|
query.setObjective(true);
|
|
|
+ query.setPaperType(paperType);
|
|
|
List<ReportSubjectQuestion> list = questionService.findByQuery(query);
|
|
|
for (ReportSubjectQuestion r : list) {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
@@ -538,8 +559,11 @@ public class ReportController {
|
|
|
return array.toString();
|
|
|
}
|
|
|
|
|
|
- private String getQuestionJson(ReportSubjectQuery query, boolean isObjective) {
|
|
|
+ private String getQuestionJson(ReportSubjectQuery query, boolean isObjective, String paperType) {
|
|
|
query.setObjective(isObjective);
|
|
|
+ if (isObjective) {
|
|
|
+ query.setPaperType(paperType);
|
|
|
+ }
|
|
|
JSONArray array = new JSONArray();
|
|
|
List<ReportSubjectQuestion> list = questionService.findByQuery(query);
|
|
|
for (ReportSubjectQuestion r : list) {
|