Bladeren bron

研究生补充需求

ting.yin 3 jaren geleden
bovenliggende
commit
7d0f32bd1b
21 gewijzigde bestanden met toevoegingen van 234 en 21 verwijderingen
  1. 2 2
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/model/SpecialTagDTO.java
  2. 24 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/query/MarkLibrarySearchQuery.java
  3. 7 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkLibraryServiceImpl.java
  4. 33 3
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubject.java
  5. 2 0
      stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/utils/module/SubjectModule.java
  6. 17 5
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/MarkerInfoDTO.java
  7. 5 1
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ImportQueryController.java
  8. 1 1
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java
  9. 27 0
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/LibraryController.java
  10. 4 2
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkController.java
  11. 46 0
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ProblemHistoryController.java
  12. 1 0
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/report/ReportSubjectController.java
  13. 10 0
      stmms-web/src/main/java/cn/com/qmth/stmms/admin/vo/SubjectLibraryVO.java
  14. 4 1
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/libraryList.jsp
  15. 2 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/markInfo.jsp
  16. 35 0
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/problemHistory.jsp
  17. 1 1
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/selectiveList.jsp
  18. 2 2
      stmms-web/src/main/webapp/WEB-INF/views/modules/exam/studentList.jsp
  19. 5 1
      stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubject.jsp
  20. 3 1
      stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectCollege.jsp
  21. 3 1
      stmms-web/src/main/webapp/sql/stmms_ft.sql

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/model/SpecialTagDTO.java

@@ -25,7 +25,7 @@ public class SpecialTagDTO implements Serializable {
     public SpecialTagDTO(MarkSpecialTag markSpecialTag) {
         this.tagName = markSpecialTag.getTagName();
         this.positionX = markSpecialTag.getPositionX();
-        this.offsetY = markSpecialTag.getOffsetY();
+        this.positionY = markSpecialTag.getPositionY();
         this.offsetIndex = markSpecialTag.getOffsetIndex();
         this.offsetX = markSpecialTag.getOffsetX();
         this.offsetY = markSpecialTag.getOffsetY();
@@ -34,7 +34,7 @@ public class SpecialTagDTO implements Serializable {
     public SpecialTagDTO(TrialTag tag) {
         this.tagName = tag.getContent();
         this.positionX = tag.getPositionX();
-        this.offsetY = tag.getOffsetY();
+        this.positionY = tag.getPositionY();
         this.offsetIndex = tag.getOffsetIndex();
         this.offsetX = tag.getOffsetX();
         this.offsetY = tag.getOffsetY();

+ 24 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/query/MarkLibrarySearchQuery.java

@@ -37,6 +37,10 @@ public class MarkLibrarySearchQuery extends BaseQuery<MarkLibrary> {
 
     private boolean unselective;
 
+    private String questionScore;
+
+    private Integer headerId;
+
     public MarkLibrarySearchQuery() {
         super();
         this.statusSet = new HashSet<>();
@@ -46,6 +50,10 @@ public class MarkLibrarySearchQuery extends BaseQuery<MarkLibrary> {
         setSort(new Sort(Direction.DESC, "markerTime"));
     }
 
+    public void orderByHeaderTimeDesc() {
+        setSort(new Sort(Direction.DESC, "headerTime"));
+    }
+
     public void orderByExamNumber() {
         setSort(new Sort(Direction.ASC, "examNumber"));
     }
@@ -162,4 +170,20 @@ public class MarkLibrarySearchQuery extends BaseQuery<MarkLibrary> {
         this.unselective = unselective;
     }
 
+    public String getQuestionScore() {
+        return questionScore;
+    }
+
+    public void setQuestionScore(String questionScore) {
+        this.questionScore = questionScore;
+    }
+
+    public Integer getHeaderId() {
+        return headerId;
+    }
+
+    public void setHeaderId(Integer headerId) {
+        this.headerId = headerId;
+    }
+
 }

+ 7 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkLibraryServiceImpl.java

@@ -149,6 +149,13 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
                     Predicate predicate2 = cb.equal(root.get("headerScore"), -1);
                     predicates.add(cb.or(predicate1, predicate2));
                 }
+                if (query.getQuestionScore() != null) {
+                    predicates.add(cb.like(root.get("markerScoreList").as(String.class), "%" + query.getQuestionScore()
+                            + "%"));
+                }
+                if (query.getHeaderId() != null) {
+                    predicates.add(cb.equal(root.get("headerId"), query.getHeaderId()));
+                }
                 return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
                         .size()]));
             }

+ 33 - 3
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/model/ReportSubject.java

@@ -95,24 +95,38 @@ public class ReportSubject implements Serializable {
     @Column(name = "pass_rate")
     private Double passRate;
 
+    /**
+     * 优秀率
+     */
+    @ExcelField(title = "优秀率(%)", align = 2, sort = 90)
+    @Column(name = "excellent_rate")
+    private Double excellentRate;
+
+    /**
+     * 优秀人数
+     */
+    @ExcelField(title = "优秀人数", align = 2, sort = 100)
+    @Column(name = "excellent_count")
+    private Integer excellentCount;
+
     /**
      * 缺考人数
      */
-    @ExcelField(title = "缺考人数", align = 2, sort = 90)
+    @ExcelField(title = "缺考人数", align = 2, sort = 110)
     @Column(name = "absent_count")
     private Integer absentCount;
 
     /**
      * 违纪人数
      */
-    @ExcelField(title = "违纪人数", align = 2, sort = 100)
+    @ExcelField(title = "违纪人数", align = 2, sort = 120)
     @Column(name = "breach_count")
     private Integer breachCount;
 
     /**
      * 有效人数
      */
-    @ExcelField(title = "有效人数", align = 2, sort = 110)
+    @ExcelField(title = "有效人数", align = 2, sort = 130)
     @Column(name = "reality_count")
     private Integer realityCount;
 
@@ -402,6 +416,22 @@ public class ReportSubject implements Serializable {
         this.questionCount = questionCount;
     }
 
+    public Double getExcellentRate() {
+        return excellentRate;
+    }
+
+    public void setExcellentRate(Double excellentRate) {
+        this.excellentRate = excellentRate;
+    }
+
+    public Integer getExcellentCount() {
+        return excellentCount;
+    }
+
+    public void setExcellentCount(Integer excellentCount) {
+        this.excellentCount = excellentCount;
+    }
+
     // public void addOptions(String option) {
     // options = StringUtils.trimToNull(options);
     // StringBuilder sb = new StringBuilder(options);

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

@@ -65,6 +65,8 @@ public class SubjectModule implements Module {
                 subject.setAvgScore(unit.avgScore);
                 subject.setPassCount(unit.passCount);
                 subject.setPassRate(unit.passRate);
+                subject.setExcellentCount(unit.excellentCount);
+                subject.setExcellentRate(unit.excellentRate);
                 subject.setDifficulty(unit.difficulty);
                 subject.setDiscrimination(unit.discrimination);
                 subject.setCoefficient(unit.coefficient);

+ 17 - 5
stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/MarkerInfoDTO.java

@@ -13,22 +13,26 @@ public class MarkerInfoDTO {
     @ExcelField(title = "课程名称", align = 2, sort = 20)
     private String subjectName;
 
-    @ExcelField(title = "大题名称", align = 2, sort = 30)
+    @ExcelField(title = "分组序号", align = 2, sort = 30)
+    private String groupNumber;
+
+    @ExcelField(title = "大题名称", align = 2, sort = 40)
     private String groupName;
 
-    @ExcelField(title = "登录名", align = 2, sort = 40)
+    @ExcelField(title = "登录名", align = 2, sort = 50)
     private String loginName;
 
-    @ExcelField(title = "姓名", align = 2, sort = 50)
+    @ExcelField(title = "姓名", align = 2, sort = 60)
     private String name;
 
-    @ExcelField(title = "评卷数量", align = 2, sort = 60)
+    @ExcelField(title = "评卷数量", align = 2, sort = 70)
     private long markedCount;
 
     public MarkerInfoDTO(Marker marker, ExamSubject subject, MarkGroup group) {
         setSubjectCode(subject.getCode());
         setSubjectName(subject.getName());
-        setGroupName(group.getNumber() + "_" + group.getTitle());
+        setGroupName(group.getTitle());
+        setGroupNumber(String.valueOf(group.getNumber()));
         setLoginName(marker.getUser().getLoginName());
         setName(marker.getUser().getName());
         setMarkedCount(marker.getMarkedCount());
@@ -82,4 +86,12 @@ public class MarkerInfoDTO {
         this.groupName = groupName;
     }
 
+    public String getGroupNumber() {
+        return groupNumber;
+    }
+
+    public void setGroupNumber(String groupNumber) {
+        this.groupNumber = groupNumber;
+    }
+
 }

+ 5 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ImportQueryController.java

@@ -44,6 +44,7 @@ import cn.com.qmth.stmms.common.annotation.Logging;
 import cn.com.qmth.stmms.common.domain.WebUser;
 import cn.com.qmth.stmms.common.enums.ImportType;
 import cn.com.qmth.stmms.common.enums.LogType;
+import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
 import cn.com.qmth.stmms.common.utils.ExportExcel;
 import cn.com.qmth.stmms.common.utils.ImportExcel;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
@@ -154,7 +155,10 @@ public class ImportQueryController extends BaseExamController {
                         studentVO.getStudentCode(), studentVO.getSubjectCode());
                 if (!studentList.isEmpty()) {
                     for (ExamStudent examStudent : studentList) {
-                        successStudent.add(examStudent.getId());
+                        if (SubjectiveStatus.MARKED.equals(examStudent.getSubjectiveStatus())
+                                || SubjectiveStatus.INSPECTED.equals(examStudent.getSubjectiveStatus())) {
+                            successStudent.add(examStudent.getId());
+                        }
                     }
                     successNum++;
                 } else {

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

@@ -286,7 +286,7 @@ public class InspectedController extends BaseExamController {
         return obj;
     }
 
-    @Logging(menu = "回看复核任务", type = LogType.QUERY)
+    @Logging(menu = "回看全卷复核任务", type = LogType.QUERY)
     @RequestMapping(value = "/getHistory", method = RequestMethod.POST)
     @ResponseBody
     public Object getHistory(HttpServletRequest request, @RequestParam String subjectCode,

+ 27 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/LibraryController.java

@@ -388,4 +388,31 @@ public class LibraryController extends BaseExamController {
         }
         return obj;
     }
+
+    @Logging(menu = "回看评卷复核任务", type = LogType.QUERY)
+    @RequestMapping(value = "/getHistory", method = RequestMethod.POST)
+    @ResponseBody
+    public Object getHistory(HttpServletRequest request, @RequestParam String subjectCode,
+            @RequestParam Integer groupNumber, @RequestParam int pageNumber, @RequestParam int pageSize)
+            throws Exception {
+        int examId = getSessionExamId(request);
+        WebUser wu = RequestUtils.getWebUser(request);
+        List<Task> list = new ArrayList<>();
+        MarkLibrarySearchQuery query = new MarkLibrarySearchQuery();
+        query.setExamId(examId);
+        query.setSubjectCode(subjectCode);
+        query.setGroupNumber(groupNumber);
+        query.addStatus(LibraryStatus.INSPECTED);
+        query.setHeaderId(wu.getId());
+        query.setPageNumber(pageNumber);
+        query.setPageSize(pageSize);
+        query.orderByHeaderTimeDesc();
+        query = libraryService.findByQuery(query);
+        for (MarkLibrary library : query.getResult()) {
+            Task task = taskService.build(library);
+            task.setPrevious(true);
+            list.add(task);
+        }
+        return list;
+    }
 }

+ 4 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkController.java

@@ -109,10 +109,12 @@ public class MarkController extends BaseExamController {
             mQuery.setSubjectCode(subject.getCode());
             long libraryCount = libraryService.countByQuery(mQuery);
             mQuery.addStatus(LibraryStatus.MARKED);
+            long markedCount = libraryService.countByQuery(mQuery);
+            vo.setMarkedCount(markedCount);
             mQuery.addStatus(LibraryStatus.ARBITRATED);
             mQuery.addStatus(LibraryStatus.INSPECTED);
-            long markedCount = libraryService.countByQuery(mQuery);
-            String percent = libraryCount > 0 ? (new DecimalFormat("####.###").format(markedCount * 100.0
+            long totalMarkedCount = libraryService.countByQuery(mQuery);
+            String percent = libraryCount > 0 ? (new DecimalFormat("####.###").format(totalMarkedCount * 100.0
                     / libraryCount) + "%") : "0%";
             vo.setPercent(percent);
             long count = questionService.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId,

+ 46 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ProblemHistoryController.java

@@ -14,6 +14,8 @@ 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.RequestParam;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
@@ -25,17 +27,25 @@ import cn.com.qmth.stmms.biz.exam.service.ExamService;
 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.MarkGroupService;
+import cn.com.qmth.stmms.biz.lock.LockService;
+import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
 import cn.com.qmth.stmms.biz.mark.model.ProblemHistory;
 import cn.com.qmth.stmms.biz.mark.model.ProblemType;
 import cn.com.qmth.stmms.biz.mark.query.ProblemHistorySearchQuery;
+import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
+import cn.com.qmth.stmms.biz.mark.service.MarkService;
 import cn.com.qmth.stmms.biz.mark.service.ProblemHistoryService;
 import cn.com.qmth.stmms.biz.mark.service.ProblemTypeService;
 import cn.com.qmth.stmms.biz.user.service.UserService;
 import cn.com.qmth.stmms.common.annotation.Logging;
+import cn.com.qmth.stmms.common.annotation.RoleRequire;
 import cn.com.qmth.stmms.common.domain.WebUser;
 import cn.com.qmth.stmms.common.enums.HistoryStatus;
+import cn.com.qmth.stmms.common.enums.LibraryStatus;
+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.utils.DateUtils;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 
@@ -69,6 +79,15 @@ public class ProblemHistoryController extends BaseExamController {
     @Autowired
     private UserService userService;
 
+    @Autowired
+    private MarkLibraryService libraryService;
+
+    @Autowired
+    private LockService lockService;
+
+    @Autowired
+    private MarkService markService;
+
     @Logging(menu = "问题卷查询", type = LogType.QUERY)
     @RequestMapping
     public String list(HttpServletRequest request, Model model, ProblemHistorySearchQuery query) {
@@ -130,4 +149,31 @@ public class ProblemHistoryController extends BaseExamController {
         return list;
     }
 
+    @Logging(menu = "任务批量重置", type = LogType.QUERY)
+    @RequestMapping("/restBatch")
+    @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
+    public String restBatch(HttpServletRequest request, Model model, RedirectAttributes redirectAttributes,
+            @RequestParam Integer[] libraryIds) {
+        WebUser wu = RequestUtils.getWebUser(request);
+        for (Integer libraryId : libraryIds) {
+            MarkLibrary library = libraryService.findById(libraryId);
+            if (library != null && subjectCheck(library.getSubjectCode(), RequestUtils.getWebUser(request))) {
+                try {
+                    lockService.watch(LockType.EXAM_SUBJECT, library.getExamId(), library.getSubjectCode());
+                    lockService.watch(LockType.GROUP, library.getExamId(), library.getSubjectCode(),
+                            library.getGroupNumber());
+                    if (library.getStatus().equals(LibraryStatus.PROBLEM)) {
+                        markService.rejectLibrary(library, wu.getId(), true);
+                    }
+                } catch (Exception e) {
+                    log.error("back library error", e);
+                } finally {
+                    lockService.unwatch(LockType.GROUP, library.getExamId(), library.getSubjectCode(),
+                            library.getGroupNumber());
+                    lockService.unwatch(LockType.EXAM_SUBJECT, library.getExamId(), library.getSubjectCode());
+                }
+            }
+        }
+        return "redirect:/admin/exam/problem/history";
+    }
 }

+ 1 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/report/ReportSubjectController.java

@@ -78,6 +78,7 @@ public class ReportSubjectController extends BaseExamController {
         for (ReportSubject r : list) {
             r.setAvgScore(new BigDecimal(r.getAvgScore()).setScale(2, RoundingMode.HALF_UP).doubleValue());
             r.setPassRate(new BigDecimal(r.getPassRate()).setScale(2, RoundingMode.HALF_UP).doubleValue());
+            r.setExcellentRate(new BigDecimal(r.getExcellentRate()).setScale(2, RoundingMode.HALF_UP).doubleValue());
         }
         String fileName = "课程总量统计.xlsx";
         try {

+ 10 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/vo/SubjectLibraryVO.java

@@ -17,6 +17,8 @@ public class SubjectLibraryVO {
      */
     private boolean groupFinish;
 
+    private long markedCount;
+
     public ExamSubject getSubject() {
         return subject;
     }
@@ -57,4 +59,12 @@ public class SubjectLibraryVO {
         this.groupFinish = groupFinish;
     }
 
+    public long getMarkedCount() {
+        return markedCount;
+    }
+
+    public void setMarkedCount(long markedCount) {
+        this.markedCount = markedCount;
+    }
+
 }

+ 4 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/libraryList.jsp

@@ -68,7 +68,10 @@
         <input type="number" id="startScroe" name="startScroe" value="${query.startScroe}" class="input-mini"/>
         <label> 到&nbsp;&nbsp;&nbsp;</label>
         <input type="number" id="endScroe" name="endScroe" value="${query.endScroe}" class="input-mini"/>
-        &nbsp;&nbsp;
+        &nbsp;
+        <label>小题得分</label>
+        <input type="text" number="true" name="questionScore" id="questionScore" value="${query.questionScore }" class="input-mini"/>
+        &nbsp;
         <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
         &nbsp;
         <c:if test="${examType!='MULTI_MEDIA' && inspectedCount!=null}">

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

@@ -63,6 +63,7 @@
 				<th>主观总分</th>
 				<th>分组总数</th>
 				<th>完成进度</th>
+				<th>待复核量</th>
 			</tr>
 		</thead>
 		<tbody>
@@ -79,6 +80,7 @@
 					${result.groupCount}</a>
 				</td>
 				<td>${result.percent}</td>
+				<td>${result.markedCount}</td>
 			</tr>
 		</c:forEach>
 		</tbody>

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

@@ -41,12 +41,15 @@
         <input type="text" name="secretNumber" id="secretNumber" value="${query.secretNumber}" class="input-medium"/>
         &nbsp;
         <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"/>
+        <input id="btnRest" class="btn" type="button" value="批量重置" onclick="goRest()"/>
     </div>
 </form>
 <tags:message content="${message}"/>
+<form id="restForm" action="${ctx}/admin/exam/problem/history/restBatch" method="post" class="breadcrumb form-search">
 <table id="contentTable" class="table table-striped table-bordered table-condensed">
     <thead>
     <tr>
+    	<th><input type="checkbox" id="checkAll"></th>
         <th>科目</th>
         <th>分组序号</th>
         <th>准考证号</th>
@@ -61,6 +64,7 @@
     <tbody>
     <c:forEach items="${resultList}" var="result">
         <tr>
+        	<td><input type="checkbox" class="libraryIds" name="libraryIds" value="${result.libraryId}"></td>
             <td>${result.subjectCode}-${result.subjectName}</td>
             <td>${result.number}</td>
             <td>
@@ -93,6 +97,7 @@
     </c:forEach>
     </tbody>
 </table>
+</form>
 <div class="pagination">${query}</div>
 <%@include file="/WEB-INF/views/include/trackView.jsp" %>
 <script type="text/javascript">
@@ -159,6 +164,36 @@
         $("#searchForm").submit();
         return false;
     }
+    $("#checkAll").change(function () {
+        if ($("#checkAll").is(':checked')) {
+            $(".libraryIds").attr("checked", true);
+        } else {
+        	$(".libraryIds").attr("checked", false);
+        }
+    });
+    
+    $(".libraryIds").change(function () {
+    	var all = true;
+    	$("input[name='libraryIds']").each(function(){
+    		if(!$(this).is(':checked')){
+    			all = false;
+    		}
+    	})
+		 $("#checkAll").attr("checked", all);
+    });
+    
+    function goRest() {
+    	var check_list = []
+    	$("input[name='libraryIds']:checked").each(function(){
+    		check_list.push($(this).val())
+    	})
+        if(check_list.length==0) {
+            alert('请选择问题卷');
+            return false;
+        }
+        $("#restForm").submit();
+        return false;
+    }
 </script>
 </body>
 </html>

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/selectiveList.jsp

@@ -23,7 +23,7 @@
 		</div>
 		<div>
 		<label>合分数量:</label><input name="selectiveCount" min="1" class="digits" type="number" id="selectiveCount" value="${selectiveCount }"/> 
-		<a id="btnSubmit" href="##" class="btn btn-primary">确定</a>
+		<a id="btnSubmit" href="##" class="btn btn-primary">确定</a>*如选做为5选3,则合分数写3
 		
 		</div>
 		<br/>

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

@@ -51,7 +51,7 @@
         <input type="text" name="name" value="${query.name}" maxlength="10" class="input-mini"/>
         <label>准考证号</label>
         <input type="text" name="examNumber" value="${query.examNumber}" maxlength="50" class="input-small"/>
-        <label>号</label>
+        <label>考生编号</label>
         <input type="text" name="secretNumber" value="${query.secretNumber}" maxlength="50" class="input-small"/>
         <label>学号</label>
         <input type="text" name="studentCode" value="${query.studentCode}" maxlength="30" class="input-small"/>
@@ -132,7 +132,7 @@
     <thead>
     <tr>
         <th>准考证号</th>
-        <th>号</th>
+        <th>考生编号</th>
         <th>姓名</th>
         <th>学号</th>
         <th>科目</th>

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

@@ -45,6 +45,8 @@
 				<th data-i18n-text="report.subject.minScore">最低分</th>
 				<th data-i18n-text="report.subject.passCount">及格人数</th>
 				<th data-i18n-text="report.subject.passRate">及格率</th>
+				<th data-i18n-text="report.subject.excellentCount">优秀数</th>
+        		<th data-i18n-text="report.subject.excellentRate">优秀率</th>
 			</tr>
 		</thead>
 		<tbody>
@@ -61,7 +63,9 @@
 				<td>${reportSubject.maxScore}</td>
 				<td>${reportSubject.minScore}</td>
 				<td>${reportSubject.passCount}</td>
-				<td><fmt:formatNumber type="number" value="${reportSubject.passRate}" pattern="0.00" maxFractionDigits="2"/></td>
+				<td><fmt:formatNumber type="number" value="${reportSubject.passRate}" pattern="0.00" maxFractionDigits="2"/></td>            
+				<td>${reportSubject.excellentCount}</td>
+           		<td><fmt:formatNumber type="number" value="${reportSubject.excellentRate}" pattern="0.00" maxFractionDigits="2"/></td>
 			</tr>
 		</c:forEach>
 		</tbody>

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

@@ -60,6 +60,7 @@
         <th data-i18n-text="report.college.minScore">最低分</th>
         <th data-i18n-text="report.college.passCount">及格数</th>
         <th data-i18n-text="report.college.passRate">及格率</th>
+        <th data-i18n-text="report.college.excellentCount">优秀数</th>
         <th data-i18n-text="report.college.excellentRate">优秀率</th>
     </tr>
     </thead>
@@ -72,6 +73,7 @@
             <td>${reportSubjectCollege.minScore}</td>
             <td>${reportSubjectCollege.passCount}</td>
             <td><fmt:formatNumber type="number" value="${reportSubjectCollege.passRate}" pattern="0.00" maxFractionDigits="2"/></td>
+            <td>${reportSubjectCollege.excellentCount}</td>
             <td><fmt:formatNumber type="number" value="${reportSubjectCollege.excellentRate}" pattern="0.00" maxFractionDigits="2"/></td>
         </tr>
     </c:forEach>
@@ -107,7 +109,7 @@ $("#export-button").click(function(){
                     minScores.push($(this).text());
                 } else if(j == 5){
                     passRates.push($(this).text()*100);
-                } else if(j == 6){
+                } else if(j == 7){
                     excellentRates.push($(this).text()*100);
                 }
             });

+ 3 - 1
stmms-web/src/main/webapp/sql/stmms_ft.sql

@@ -812,12 +812,14 @@ CREATE TABLE `s_basic_subject`
     `breach_count`         int(11)     DEFAULT NULL COMMENT '违纪人数',
     `pass_count`           int(11)     DEFAULT NULL COMMENT '及格人数',
     `pass_rate`            double      DEFAULT NULL COMMENT '及格率',
+    `excellent_count`      int(11)     DEFAULT NULL COMMENT '优秀人数',
+    `excellent_rate`       double      DEFAULT NULL COMMENT '优秀率',
     `reality_count`        int(11)     DEFAULT NULL COMMENT '有效人数',
     `max_score`            double      DEFAULT NULL COMMENT '最高分',
     `min_score`            double      DEFAULT NULL COMMENT '最低分',
     `avg_score`            double      DEFAULT NULL COMMENT '平均分',
     `total_count`          int(11)     DEFAULT NULL COMMENT '总人数',
-    `score_range`          text COMMENT '分数分布',
+    `score_range`          text 	   DEFAULT NULL COMMENT '分数分布',
     `options`              text        DEFAULT NULL COMMENT '选项',
     `difficulity_level`    text        DEFAULT NULL COMMENT '难度分布',
     `discrimination_level` text        DEFAULT NULL COMMENT '区分度分布',