ソースを参照

复核改为根据大题查询,页面显示大题名称;修复试卷类型#在分析报告的问题

ting.yin 4 年 前
コミット
fe0e14d490

+ 3 - 3
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamQuestionDao.java

@@ -1,6 +1,7 @@
 package cn.com.qmth.stmms.biz.exam.dao;
 
 import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
+
 import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
@@ -78,8 +79,7 @@ public interface ExamQuestionDao extends JpaRepository<ExamQuestion, Integer>, J
     public long countByExamIdAndSubjectCodeAndObjectiveAndMainNumber(Integer examId, String subjectCode,
             boolean objective, Integer mainNumber, String paperType);
 
-    @Query("select DISTINCT q.paperType from ExamQuestion q where q.examId=?1 and  q.subjectCode=?2 and q.objective=?3 "
-            + "order by q.paperType")
-    public List<String> getPaperTypeWitnNull(Integer examId, String subjectCode, boolean objective);
+    public ExamQuestion findByExamIdAndSubjectCodeAndObjectiveAndMainNumberAndSubNumber(Integer examId,
+            String subjectCode, boolean objective, Integer mainNumber, Integer subNumber);
 
 }

+ 10 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/query/SubjectiveScoreSearchQuery.java

@@ -18,6 +18,8 @@ public class SubjectiveScoreSearchQuery extends BaseQuery<SubjectiveScore> {
     //
     // private Double groupEndScore;
 
+    private Integer mainNumber;
+
     private Double mainStartScore;
 
     private Double mainEndScore;
@@ -92,4 +94,12 @@ public class SubjectiveScoreSearchQuery extends BaseQuery<SubjectiveScore> {
         this.mainEndScore = mainEndScore;
     }
 
+    public Integer getMainNumber() {
+        return mainNumber;
+    }
+
+    public void setMainNumber(Integer mainNumber) {
+        this.mainNumber = mainNumber;
+    }
+
 }

+ 5 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamQuestionService.java

@@ -51,10 +51,13 @@ public interface ExamQuestionService {
     long countByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(Integer examId, String subjectCode,
             boolean objective, Integer mainNumber, Integer subNumber);
 
-    List<String> getPaperTypeWitnNull(Integer examId, String subjectCode);
-
     ExamQuestion updateObjectivePolicy(Integer questionId, ObjectivePolicy objectivePolicy);
 
     ExamQuestion findById(Integer questionId);
 
+    ExamQuestion findByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(Integer examId, String subjectCode,
+            boolean objective, Integer mainNumber, Integer subNumber);
+
+    List<ExamQuestion> findMainByExamAndSubjectAndObjective(Integer examId, String subjectCode, boolean objective);
+
 }

+ 60 - 39
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamQuestionServiceImpl.java

@@ -1,11 +1,16 @@
 package cn.com.qmth.stmms.biz.exam.service.impl;
 
-import cn.com.qmth.stmms.biz.common.BaseQueryService;
-import cn.com.qmth.stmms.biz.exam.dao.ExamQuestionDao;
-import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
-import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
-import cn.com.qmth.stmms.biz.exam.service.query.ExamQuestionSearchQuery;
-import cn.com.qmth.stmms.common.enums.ObjectivePolicy;
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Sort;
@@ -14,12 +19,14 @@ 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.ExamQuestionDao;
+import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
+import cn.com.qmth.stmms.biz.exam.service.query.ExamQuestionSearchQuery;
+import cn.com.qmth.stmms.common.enums.ObjectivePolicy;
+import cn.com.qmth.stmms.common.enums.ObjectiveStatus;
 
 @Service
 public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> implements ExamQuestionService {
@@ -27,6 +34,9 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
     @Autowired
     private ExamQuestionDao questionDao;
 
+    @Autowired
+    private ExamService examService;
+
     @Transactional
     @Override
     public ExamQuestion save(ExamQuestion question) {
@@ -67,20 +77,20 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
     @Override
     public List<ExamQuestion> findByExamAndSubjectAndObjectiveAndPaperType(Integer examId, String subjectCode,
             boolean objective, String paperType) {
-        return questionDao.findByExamIdAndSubjectCodeAndObjectiveAndPaperType(examId, subjectCode, objective, paperType,
-                new Sort(Direction.ASC, "mainNumber", "subNumber"));
+        return questionDao.findByExamIdAndSubjectCodeAndObjectiveAndPaperType(examId, subjectCode, objective,
+                paperType, new Sort(Direction.ASC, "mainNumber", "subNumber"));
     }
 
     @Override
     public List<ExamQuestion> findByExamAndSubjectAndObjectiveAndGroupNumber(Integer examId, String subjectCode,
             boolean objective, Integer groupNumber) {
-        return questionDao
-                .findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(examId, subjectCode, objective, groupNumber);
+        return questionDao.findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(examId, subjectCode, objective,
+                groupNumber);
     }
 
     @Override
-    public List<ExamQuestion> findByExamAndSubjectAndObjectiveAndGroupNumberNotEqual(Integer examId, String subjectCode,
-            boolean objective, Integer groupNumber) {
+    public List<ExamQuestion> findByExamAndSubjectAndObjectiveAndGroupNumberNotEqual(Integer examId,
+            String subjectCode, boolean objective, Integer groupNumber) {
         return questionDao.findByExamIdAndSubjectCodeAndObjectiveAndGroupNumberNotEqual(examId, subjectCode, objective,
                 groupNumber);
     }
@@ -88,8 +98,8 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
     @Override
     public List<ExamQuestion> findByExamAndSubjectAndObjectiveAndMainNumber(Integer examId, String subjectCode,
             boolean objective, Integer mainNumber) {
-        return questionDao
-                .findByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId, subjectCode, objective, mainNumber);
+        return questionDao.findByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId, subjectCode, objective,
+                mainNumber);
     }
 
     @Override
@@ -108,8 +118,8 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
     @Override
     public long countByExamAndSubjectAndObjectiveAndMainNumber(Integer examId, String subjectCode, boolean objective,
             Integer mainNumber) {
-        return questionDao
-                .countByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId, subjectCode, objective, mainNumber);
+        return questionDao.countByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId, subjectCode, objective,
+                mainNumber);
     }
 
     private Specification<ExamQuestion> buildSpecification(final ExamQuestionSearchQuery query) {
@@ -127,8 +137,6 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
                 }
                 if (query.getPaperType() != null) {
                     predicates.add(cb.equal(root.get("paperType"), query.getPaperType()));
-                } else if (query.getNullPaperType() != null && query.getNullPaperType().booleanValue()) {
-                    predicates.add(cb.isNull(root.get("paperType")));
                 }
                 if (query.getObjective() != null) {
                     predicates.add(cb.equal(root.get("objective"), query.getObjective()));
@@ -146,9 +154,8 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
                 if (query.getMainNumber() != null) {
                     predicates.add(cb.equal(root.get("mainNumber"), query.getMainNumber()));
                 }
-                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()]));
             }
         };
     }
@@ -167,22 +174,15 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
     @Override
     public long countByExamAndSubjectAndObjectiveAndMainNumberAndPaperType(Integer examId, String subjectCode,
             boolean objective, Integer mainNumber, String paperType) {
-        return questionDao
-                .countByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId, subjectCode, objective, mainNumber,
-                        paperType);
+        return questionDao.countByExamIdAndSubjectCodeAndObjectiveAndMainNumber(examId, subjectCode, objective,
+                mainNumber, paperType);
     }
 
     @Override
     public long countByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(Integer examId, String subjectCode,
             boolean objective, Integer mainNumber, Integer subNumber) {
-        return questionDao
-                .countByExamIdAndSubjectCodeAndObjectiveAndMainNumberAndSubNumber(examId, subjectCode, objective,
-                        mainNumber, subNumber);
-    }
-
-    @Override
-    public List<String> getPaperTypeWitnNull(Integer examId, String subjectCode) {
-        return questionDao.getPaperTypeWitnNull(examId, subjectCode, true);
+        return questionDao.countByExamIdAndSubjectCodeAndObjectiveAndMainNumberAndSubNumber(examId, subjectCode,
+                objective, mainNumber, subNumber);
     }
 
     @Transactional
@@ -191,7 +191,7 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
         ExamQuestion question = questionDao.findOne(questionId);
         question.setObjectivePolicy(objectivePolicy);
         questionDao.save(question);
-        // TODO - 修改后需要重新统分
+        examService.updateObjectiveStatus(question.getExamId(), ObjectiveStatus.WAITING);
         return question;
     }
 
@@ -200,4 +200,25 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
         return questionDao.findOne(questionId);
     }
 
+    @Override
+    public ExamQuestion findByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(Integer examId, String subjectCode,
+            boolean objective, Integer mainNumber, Integer subNumber) {
+        return questionDao.findByExamIdAndSubjectCodeAndObjectiveAndMainNumberAndSubNumber(examId, subjectCode,
+                objective, mainNumber, subNumber);
+    }
+
+    @Override
+    public List<ExamQuestion> findMainByExamAndSubjectAndObjective(Integer examId, String subjectCode, boolean objective) {
+        List<ExamQuestion> list = new ArrayList<ExamQuestion>();
+        Set<Integer> mainNumbers = new LinkedHashSet<>();
+        List<ExamQuestion> all = questionDao.findByExamIdAndSubjectCodeAndObjective(examId, subjectCode, objective);
+        for (ExamQuestion q : all) {
+            if (!mainNumbers.contains(q.getMainNumber())) {
+                mainNumbers.add(q.getMainNumber());
+                list.add(q);
+            }
+        }
+        return list;
+    }
+
 }

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

@@ -14,8 +14,6 @@ public class ExamQuestionSearchQuery extends BaseQuery<ExamQuestion> {
 
     private String paperType;
 
-    private Boolean nullPaperType;
-
     private Boolean objective;
 
     private Integer totalCountGt;
@@ -54,14 +52,6 @@ public class ExamQuestionSearchQuery extends BaseQuery<ExamQuestion> {
         this.paperType = paperType;
     }
 
-    public Boolean getNullPaperType() {
-        return nullPaperType;
-    }
-
-    public void setNullPaperType(Boolean nullPaperType) {
-        this.nullPaperType = nullPaperType;
-    }
-
     public Boolean getObjective() {
         return objective;
     }

+ 1 - 5
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/module/SubjectClassGroupModule.java

@@ -56,11 +56,7 @@ public class SubjectClassGroupModule extends SubjectGroupModule implements Modul
                 query.setSubjectCode(subjectCode);
                 query.setObjective(objective);
                 query.setTotalScoreGt(0d);
-                if (paperType == null) {
-                    query.setNullPaperType(true);
-                } else {
-                    query.setPaperType(paperType);
-                }
+                query.setPaperType(paperType);
                 query.setMainNumber(mainNumber);
                 int questionCount = (int) questionService.countByQuery(query);
                 r.setQuestionCount(questionCount);

+ 1 - 5
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/module/SubjectGroupModule.java

@@ -114,11 +114,7 @@ public class SubjectGroupModule implements Module {
                 query.setSubjectCode(subjectCode);
                 query.setObjective(objective);
                 query.setTotalScoreGt(0d);
-                if (paperType == null) {
-                    query.setNullPaperType(true);
-                } else {
-                    query.setPaperType(paperType);
-                }
+                query.setPaperType(paperType);
                 query.setMainNumber(mainNumber);
                 int questionCount = (int) questionService.countByQuery(query);
                 r.setQuestionCount(questionCount);

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

@@ -79,7 +79,7 @@ public class SubjectModule implements Module {
                 subject.setPassCount(0);
                 subject.setPassRate(0d);
             }
-            List<String> paperTypes = questionService.getPaperTypeWitnNull(context.getExamId(), subjectCode);
+            List<String> paperTypes = questionService.getPaperType(context.getExamId(), subjectCode);
             String paperType = null;
             if (paperTypes.size() > 0) {
                 paperType = paperTypes.get(0);
@@ -91,11 +91,7 @@ public class SubjectModule implements Module {
             query.setTotalScoreGt(0d);
             long subjectiveCcount = questionService.countByQuery(query);
             query.setObjective(true);
-            if (paperType == null) {
-                query.setNullPaperType(true);
-            } else {
-                query.setPaperType(paperType);
-            }
+            query.setPaperType(paperType);
             long ObjectiveCcount = questionService.countByQuery(query);
             subject.setQuestionCount((int) (subjectiveCcount + ObjectiveCcount));
             service.save(subject);

+ 22 - 13
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java

@@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
+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;
@@ -46,7 +47,6 @@ import cn.com.qmth.stmms.common.annotation.RoleRequire;
 import cn.com.qmth.stmms.common.domain.WebUser;
 import cn.com.qmth.stmms.common.enums.LockType;
 import cn.com.qmth.stmms.common.enums.LogType;
-import cn.com.qmth.stmms.common.enums.MarkStatus;
 import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
@@ -90,8 +90,8 @@ public class InspectedController extends BaseExamController {
     @RequestMapping
     public String list(Model model, HttpServletRequest request, ExamStudentSearchQuery query,
             @RequestParam(required = false) SubjectiveStatus status,
-            @RequestParam(required = false) Double mainStartScore, @RequestParam(required = false) Double mainEndScore,
-            @RequestParam(required = false) Double questionScore) {
+            @RequestParam(required = false) Integer mainNumber, @RequestParam(required = false) Double mainStartScore,
+            @RequestParam(required = false) Double mainEndScore, @RequestParam(required = false) Double questionScore) {
         int examId = getSessionExamId(request);
         WebUser wu = RequestUtils.getWebUser(request);
         query.setExamId(examId);
@@ -108,10 +108,11 @@ public class InspectedController extends BaseExamController {
             query.addStatus(SubjectiveStatus.INSPECTED);
             query.addStatus(SubjectiveStatus.MARKED);
         }
-        if (mainStartScore != null || mainEndScore != null || questionScore != null) {
+        if (mainNumber != null || mainStartScore != null || mainEndScore != null || questionScore != null) {
             SubjectiveScoreSearchQuery query2 = new SubjectiveScoreSearchQuery();
             query2.setExamId(examId);
             query2.setSubjectCode(query.getSubjectCode());
+            query2.setMainNumber(mainNumber);
             query2.setMainStartScore(mainStartScore);
             query2.setMainEndScore(mainEndScore);
             query2.setScore(questionScore);
@@ -122,18 +123,15 @@ public class InspectedController extends BaseExamController {
         if (query.getStudentIds() == null || query.getStudentIds().size() != 0) {
             query = studentService.findByQuery(query);
         }
-        List<MarkGroup> groupList = groupService.findByExamAndSubjectAndStatus(examId, query.getSubjectCode(),
-                MarkStatus.FORMAL);
-        for (MarkGroup group : groupList) {
-            group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,
-                    group.getSubjectCode(), false, group.getNumber()));
-        }
+
         query.clearStatus();
         query.addStatus(SubjectiveStatus.MARKED);
         long inspectCount = studentService.countByQuery(query);
         model.addAttribute("query", query);
         model.addAttribute("inspectCount", inspectCount);
-        model.addAttribute("groupList", groupList);
+        model.addAttribute("questionList",
+                questionService.findMainByExamAndSubjectAndObjective(examId, query.getSubjectCode(), false));
+        model.addAttribute("mainNumber", mainNumber);
         model.addAttribute("mainStartScore", mainStartScore);
         model.addAttribute("mainEndScore", mainEndScore);
         model.addAttribute("questionScore", questionScore);
@@ -147,7 +145,7 @@ public class InspectedController extends BaseExamController {
     @RequestMapping("/start")
     @ResponseBody
     public ModelAndView start(HttpServletRequest request, RedirectAttributes redirectAttributes,
-            ExamStudentSearchQuery query, @RequestParam(required = false) Integer groupNumber,
+            ExamStudentSearchQuery query, @RequestParam(required = false) Integer mainNumber,
             @RequestParam(required = false) Double mainStartScore, @RequestParam(required = false) Double mainEndScore,
             @RequestParam(required = false) Double questionScore) {
         int examId = getSessionExamId(request);
@@ -164,10 +162,11 @@ public class InspectedController extends BaseExamController {
         if (query.getSubjectCode() == null && !subjectList.isEmpty()) {
             query.setSubjectCode(subjectList.get(0).getCode());
         }
-        if (mainStartScore != null || mainEndScore != null || questionScore != null) {
+        if (mainNumber != null || mainStartScore != null || mainEndScore != null || questionScore != null) {
             SubjectiveScoreSearchQuery query2 = new SubjectiveScoreSearchQuery();
             query2.setExamId(examId);
             query2.setSubjectCode(query.getSubjectCode());
+            query2.setMainNumber(mainNumber);
             query2.setMainStartScore(mainStartScore);
             query2.setMainEndScore(mainEndScore);
             query2.setScore(questionScore);
@@ -222,6 +221,7 @@ public class InspectedController extends BaseExamController {
 
             List<MarkGroup> groups = groupService.findByExamAndSubject(student.getExamId(), student.getSubjectCode());
             JSONArray groupArray = new JSONArray();
+            Map<Integer, String> mainTitleMap = new HashMap<Integer, String>();
             for (MarkGroup markGroup : groups) {
                 JSONObject group = new JSONObject();
                 group.accumulate("groupNumber", markGroup.getNumber());
@@ -230,6 +230,15 @@ public class InspectedController extends BaseExamController {
                 JSONArray array = new JSONArray();
                 for (SubjectiveScore scoreItem : scores) {
                     JSONObject obj = new JSONObject();
+                    String mainTitle = mainTitleMap.get(scoreItem.getMainNumber());
+                    if (mainTitle == null) {
+                        ExamQuestion q = questionService.findByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(
+                                student.getExamId(), student.getSubjectCode(), false, scoreItem.getMainNumber(),
+                                scoreItem.getSubNumber());
+                        mainTitleMap.put(scoreItem.getMainNumber(), mainTitle);
+                        mainTitle = q.getMainTitle();
+                    }
+                    obj.accumulate("mainTitle", mainTitle);
                     obj.accumulate("questionNumber", scoreItem.getMainNumber() + "-" + scoreItem.getSubNumber());
                     obj.accumulate("score", scoreItem.getScore());
                     array.add(obj);

+ 17 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/PaperController.java

@@ -25,6 +25,7 @@ import cn.com.qmth.stmms.common.utils.ImportExcel;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
+
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -40,6 +41,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import java.util.*;
 
 @Controller("examPaperController")
@@ -392,4 +394,19 @@ public class PaperController extends BaseExamController {
         }
         return new ModelAndView("redirect:/admin/exam/paper");
     }
+
+    @RequestMapping("/question/query")
+    @ResponseBody
+    public JSONArray questionQuery(HttpServletRequest request, @RequestParam String subjectCode) {
+        int examId = getSessionExamId(request);
+        JSONArray array = new JSONArray();
+        List<ExamQuestion> list = questionService.findMainByExamAndSubjectAndObjective(examId, subjectCode, false);
+        for (ExamQuestion question : list) {
+            JSONObject obj = new JSONObject();
+            obj.accumulate("mainNumber", question.getMainNumber());
+            obj.accumulate("mainTitle", question.getMainTitle());
+            array.add(obj);
+        }
+        return array;
+    }
 }

+ 3 - 8
stmms-web/src/main/java/cn/com/qmth/stmms/report/ReportController.java

@@ -156,7 +156,8 @@ public class ReportController {
             subjectGroups.addAll(objectiveGroup);
             subjectGroups.addAll(subjectiveGroup);
             result.accumulate("basic_paper", getPaperJson(reportSubject));
-            result.accumulate("basic_question_subjective", getQuestionJson(examId, subjectCode, false, null));
+            result.accumulate("basic_question_subjective",
+                    getQuestionJson(examId, subjectCode, false, NULL_PAPER_TYPE_PLACEHOLDER));
             result.accumulate("basic_question_objective", getQuestionJson(examId, subjectCode, true, paperType));
             result.accumulate("basic_class", getClassJson(subjectClasses));
             result.accumulate("basic_teacher", getTeacerJson(query));
@@ -181,18 +182,12 @@ public class ReportController {
     }
 
     private boolean contains(boolean objective, List<String> paperTypes, String paperType) {
-        if (paperType == null) {
+        if (NULL_PAPER_TYPE_PLACEHOLDER.equals(paperType)) {
             if (!objective) {
                 // 纯主观题
                 return true;
-            } else if (paperTypes.contains(paperType)) {
-                // null卷型
-                return true;
-            } else {
-                return false;
             }
         }
-        paperTypes.remove(null);
         for (String s : paperTypes) {
             if (paperType.equalsIgnoreCase(s)) {
                 return true;

+ 2 - 2
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/inspected.jsp

@@ -153,11 +153,11 @@
 
             $('<table id="table_' + group.groupNumber + '" cellpadding="0" cellspacing="0" width="100%"></table>').appendTo("#div_" + group.groupNumber);
 
-            $("<thead><tr><td>分组" + group.groupNumber + "</td><td>给分</td><td class='td'><a href='#' onclick='back("+group.groupNumber+")'>打回</a></td></tr></thead>").appendTo("#table_" + group.groupNumber);
+            $("<thead><tr><td>分组" + group.groupNumber + "</td><td>给分 &nbsp;<a href='#' onclick='back("+group.groupNumber+")'>打回</a></td></tr></thead>").appendTo("#table_" + group.groupNumber);
             $('<tbody id="tbody_' + group.groupNumber + '"></tbody>').appendTo("#table_" + group.groupNumber);
             for (var j = 0; j < group.questions.length; j++) {
                 var question = group.questions[j];
-                $("<tr><td>" + question.questionNumber + "</td><td>" + question.score + "</td><td class='td'></td></tr>").appendTo("#tbody_" + group.groupNumber);
+                $("<tr><td>" +question.mainTitle+":"+ question.questionNumber + "</td><td>" + question.score + "</td></tr>").appendTo("#tbody_" + group.groupNumber);
             }
         }
 

+ 31 - 3
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/inspectedList.jsp

@@ -23,6 +23,14 @@
             </c:forEach>
         </select>
         &nbsp;
+        <label>大题</label>
+        <select class="input-medium" id="question-select" name="mainNumber">
+            <option value="">请选择</option>
+            <c:forEach items="${questionList}" var="result">
+                <option value="${result.mainNumber}" <c:if test="${result.mainNumber==mainNumber}">selected</c:if>>${result.mainNumber}-${result.mainTitle}</option>
+            </c:forEach>
+        </select>
+        &nbsp;
         <label>状态</label>
         <select class="input-medium" name="status">
             <option value="">请选择</option>
@@ -30,7 +38,8 @@
                 <option value="${result}" <c:if test="${status==result}">selected</c:if>>${result.name}</option>
             </c:forEach>
         </select>
-        &nbsp;<br/><br/>
+        <br/><br/>
+		
         <label>试卷总分:从</label>
         <input type="text" number="true" id="startScroe" name="startScore" value="${query.startScore}" class="input-mini"/>
         <label> 到&nbsp;&nbsp;&nbsp;</label>
@@ -39,7 +48,7 @@
         <label>大题得分:从</label>
         <input type="text" number="true" name="mainStartScore" id="mainStartScore" value="${mainStartScore }" class="input-mini"/>
         <label> 到&nbsp;&nbsp;&nbsp;</label>
-        <input type="text" number="true" id="mainEndScroe" name="mainEndScroe" value="${mainEndScroe }" class="input-mini"/>
+        <input type="text" number="true" id="mainEndScore" name="mainEndScore" value="${mainEndScore }" class="input-mini"/>
         &nbsp;
         
         <label>小题得分</label>
@@ -117,7 +126,26 @@
             initTrackPopover($(this).attr('data-title'), $(this).attr('data-image-url'));
             return false;
         });
-       
+        $('#subject-select').change(function () {
+            var code = $(this).val();
+            $('#question-select').empty();
+            if (code == '') {
+                $('#question-select').val('').trigger('change');
+                return;
+            }
+            $.post('${ctx}/admin/exam/paper/question/query', {subjectCode: code, status: 'FORMAL'}, function (result) {
+                var parent = $('#question-select');
+                var first = '';
+                for (var i = 0; i < result.length; i++) {
+                    var question = result[i];
+                    $('<option value="' + question.mainNumber + '">' + question.mainNumber + '-' + question.mainTitle + '</option>').appendTo(parent);
+                    if (i == 0) {
+                        first = question.mainNumber;
+                    }
+                }
+                parent.val(first).trigger('change');
+            });
+        });
     });
 
     function page(n, s) {