ting.yin 4 ani în urmă
părinte
comite
682204c92e

+ 25 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/ExamSubject.java

@@ -97,6 +97,12 @@ public class ExamSubject implements Serializable {
     @Transient
     private String answerUrl;
 
+    @Transient
+    private String cardUrl;
+
+    @Transient
+    private String paperType;
+
     @Transient
     private boolean locked;
 
@@ -273,6 +279,14 @@ public class ExamSubject implements Serializable {
         this.answerUrl = answerUrl;
     }
 
+    public String getCardUrl() {
+        return cardUrl;
+    }
+
+    public void setCardUrl(String cardUrl) {
+        this.cardUrl = cardUrl;
+    }
+
     public void setPaperAnswerUrl(FileService fileService) {
         if (paperFileType != null) {
             paperUrl = fileService.getPaperUri(getExamId(), getCode(), paperFileType);
@@ -280,6 +294,9 @@ public class ExamSubject implements Serializable {
         if (answerFileType != null) {
             answerUrl = fileService.getAnswerUri(getExamId(), getCode(), answerFileType);
         }
+        if (cardType != null) {
+            cardUrl = fileService.getCardUri(getExamId(), getCode(), cardType);
+        }
     }
 
     public String getSasConfig() {
@@ -318,4 +335,12 @@ public class ExamSubject implements Serializable {
         this.locked = locked;
     }
 
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
 }

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

@@ -75,9 +75,9 @@ public class ExamStudentSearchQuery extends BaseQuery<ExamStudent> {
 
     private String ids;
 
-    private Double startScroe;
+    private Double startScore;
 
-    private Double endScroe;
+    private Double endScore;
 
     private Boolean breach;
 
@@ -339,20 +339,20 @@ public class ExamStudentSearchQuery extends BaseQuery<ExamStudent> {
         this.ids = ids;
     }
 
-    public Double getStartScroe() {
-        return startScroe;
+    public Double getStartScore() {
+        return startScore;
     }
 
-    public void setStartScroe(Double startScroe) {
-        this.startScroe = startScroe;
+    public void setStartScore(Double startScore) {
+        this.startScore = startScore;
     }
 
-    public Double getEndScroe() {
-        return endScroe;
+    public Double getEndScore() {
+        return endScore;
     }
 
-    public void setEndScroe(Double endScroe) {
-        this.endScroe = endScroe;
+    public void setEndScore(Double endScore) {
+        this.endScore = endScore;
     }
 
     public Boolean getBreach() {

+ 4 - 4
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -469,10 +469,10 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
                 List<Predicate> predicates = new LinkedList<Predicate>();
                 Expression<Double> evaluationItemSum = cb.sum(root.get("objectiveScore").as(Double.class),
                         root.get("subjectiveScore").as(Double.class));
-                if (query.getStartScroe() != null) {
-                    Predicate predicate1 = cb.ge(evaluationItemSum, query.getStartScroe());
-                    Predicate predicate2 = cb.le(evaluationItemSum, query.getEndScroe());
-                    if (query.getStartScroe() == 0) {
+                if (query.getStartScore() != null) {
+                    Predicate predicate1 = cb.ge(evaluationItemSum, query.getStartScore());
+                    Predicate predicate2 = cb.le(evaluationItemSum, query.getEndScore());
+                    if (query.getStartScore() == 0) {
                         Predicate predicate = cb.or(cb.equal(root.get("absent"), true),
                                 cb.equal(root.get("breach"), true));
                         Predicate predicate3 = cb.and(predicate1, predicate2);

+ 4 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/SubjectiveScoreServiceImpl.java

@@ -68,11 +68,13 @@ public class SubjectiveScoreServiceImpl extends BaseQueryService<SubjectiveScore
                     predicates.add(root.get("groupNumber").in(list));
                 }
                 if (query.getGroupStartScore() != null) {
-                    Predicate predicate = cb.ge(root.get("groupScore").as(Double.class), query.getGroupStartScore());
+                    Predicate predicate = cb.greaterThan(root.get("groupScore").as(Double.class),
+                            query.getGroupStartScore());
                     predicates.add(predicate);
                 }
                 if (query.getGroupEndScore() != null) {
-                    Predicate predicate = cb.le(root.get("groupScore").as(Double.class), query.getGroupEndScore());
+                    Predicate predicate = cb
+                            .lessThan(root.get("groupScore").as(Double.class), query.getGroupEndScore());
                     predicates.add(predicate);
                 }
                 if (query.getScore() != null) {

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

@@ -104,7 +104,9 @@ public class InspectedController extends BaseExamController {
             List<Integer> studentIds = scoreService.findStudentIdByQuery(query2);
             query.setStudentIds(studentIds);
         }
-        query = studentService.findByQuery(query);
+        if (query.getStudentIds() == null || query.getStudentIds().size() != 0) {
+            query = studentService.findByQuery(query);
+        }
         List<MarkGroup> groupList = groupService.findByExamAndSubject(examId, query.getSubjectCode());
         for (MarkGroup group : groupList) {
             group.setQuestionList(questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(examId,

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

@@ -434,7 +434,11 @@ public class MarkerController extends BaseExamController {
             RequestUtils.setLog(request, message + failureMsg);
         } catch (Exception e) {
             log.error("Batch import marker error!", e);
-            addMessage(redirectAttributes, "导入评卷员失败!失败信息:" + e.getMessage());
+            if (StringUtils.isBlank(e.getMessage())) {
+                addMessage(redirectAttributes, "导入评卷员失败!");
+            } else {
+                addMessage(redirectAttributes, "导入评卷员失败!失败信息:" + e.getMessage());
+            }
         }
         return "redirect:" + "/admin/exam/marker?subjectCode=" + subjectCode;
     }

+ 10 - 8
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/PaperController.java

@@ -90,6 +90,8 @@ public class PaperController extends BaseExamController {
         }
         query = subjectService.findByQuery(query);
         for (ExamSubject subject : query.getResult()) {
+            List<String> paperTypes = questionService.getPaperType(examId, subject.getCode());
+            subject.setPaperType(StringUtils.join(paperTypes, ","));
             subject.setPaperAnswerUrl(fileService);
             subject.setLocked(lockService.isLocked(LockType.SCORE_CALCULATE, examId, subject.getCode()));
         }
@@ -110,8 +112,8 @@ public class PaperController extends BaseExamController {
         WebUser wu = RequestUtils.getWebUser(request);
         int examId = getSessionExamId(request);
         if (wu.isSubjectHeader()
-            // TODO - subjectheader check
-            // &&!subjectCode.equals(wu.getUser().getSubjectCode())
+        // TODO - subjectheader check
+        // &&!subjectCode.equals(wu.getUser().getSubjectCode())
         ) {
             return "redirect:/admin/exam/paper";
         }
@@ -177,10 +179,9 @@ public class PaperController extends BaseExamController {
         query.setPageSize(Integer.MAX_VALUE);
         query = questionService.findByQuery(query);
         for (ExamQuestion q : query.getResult()) {
-            list.add(objective ?
-                    new ObjectiveQuestionDTO(q, subjectMap.get(q.getSubjectCode())) :
-                    new SubjectiveQuestionDTO(q, subjectMap.get(q.getSubjectCode()),
-                            groupMap.get(q.getSubjectCode() + "_" + q.getGroupNumber())));
+            list.add(objective ? new ObjectiveQuestionDTO(q, subjectMap.get(q.getSubjectCode()))
+                    : new SubjectiveQuestionDTO(q, subjectMap.get(q.getSubjectCode()), groupMap.get(q.getSubjectCode()
+                            + "_" + q.getGroupNumber())));
         }
         try {
             String fileName = objective ? "客观题数据.xlsx" : "主观题数据.xlsx";
@@ -225,8 +226,9 @@ public class PaperController extends BaseExamController {
                                     boolean validate = true;
                                     for (ExamQuestion question : group.getImportQuestionList()) {
                                         if (questionService.countByExamAndSubjectAndObjectiveAndMainNumberAndSubNumber(
-                                                question.getExamId(), question.getSubjectCode(), question.isObjective(),
-                                                question.getMainNumber(), question.getSubNumber()) > 0) {
+                                                question.getExamId(), question.getSubjectCode(),
+                                                question.isObjective(), question.getMainNumber(),
+                                                question.getSubNumber()) > 0) {
                                             error.add("[" + group.getSubjectCode() + "_" + group.getNumber()
                                                     + "] 有小题已存在");
                                             validate = false;

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

@@ -286,6 +286,7 @@ public class StudentController extends BaseExamController {
                 student.setObjectiveScore(0d);
                 student.setSubjectiveScore(0d);
                 student.setSubjectiveStatus(SubjectiveStatus.UNMARK);
+                student.setPaperType(NULL_PAPER_TYPE_PLACEHOLDER);
                 ExamStudent previous = checkExamNumber(student, current, saveMap);
                 if (previous != null) {
                     student = updatePrevious(student, previous);

+ 2 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/student/StudentScoreController.java

@@ -37,7 +37,7 @@ public class StudentScoreController {
     public String login(Model model, HttpServletRequest request, @PathVariable Integer schoolId) {
         School school = schoolService.findById(schoolId);
         if (school == null) {
-            model.addAttribute("message", "...");
+            model.addAttribute("message", "学校不存在");
             return "modules/student/login";
         }
 
@@ -50,7 +50,7 @@ public class StudentScoreController {
             ExamStudentSearchQuery query) {
         School school = schoolService.findById(schoolId);
         if (school == null) {
-            model.addAttribute("message", "...");
+            model.addAttribute("message", "学校为空");
             return "modules/student/login";
         }
         query.setSchoolId(schoolId);

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

@@ -39,14 +39,14 @@
         </select>
         &nbsp;<br/><br/>
         <label>试卷总分:从</label>
-        <input type="text" number="true" id="startScroe" name="startScroe" value="${query.startScroe}" class="input-mini"/>
+        <input type="text" number="true" id="startScroe" name="startScore" value="${query.startScore}" class="input-mini"/>
         <label> 到&nbsp;&nbsp;&nbsp;</label>
-        <input type="text" number="true" id="endScroe" name="endScroe" value="${query.endScroe}" class="input-mini"/>
+        <input type="text" number="true" id="endScroe" name="endScore" value="${query.endScore}" class="input-mini"/>
         &nbsp;
         <label>大题得分:从</label>
         <input type="text" number="true" name="groupStartScore" id="groupStartScore" value="${groupStartScore }" class="input-mini"/>
         <label> 到&nbsp;&nbsp;&nbsp;</label>
-        <input type="text" number="true" id="groupEndScroe" name="groupEndScroe" value="${groupEndScroe }" class="input-mini"/>
+        <input type="text" number="true" id="groupEndScroe" name="groupEndScore" value="${groupEndScore }" class="input-mini"/>
         &nbsp;
         
         <label>小题得分</label>

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

@@ -111,6 +111,8 @@
         <th>专业类型</th>
         <th>试卷</th>
         <th>答案</th>
+        <th>试卷类型</th>
+        <th>卡格式</th>
         <th>客观总分</th>
         <th>主观总分</th>
         <th>试卷总分</th>
@@ -136,6 +138,14 @@
                     <a href="${fileServer}${subject.answerUrl}" target="_blank">已上传</a>
                 </c:if>
             </td>
+            <td>
+                ${subject.paperType}
+            </td>
+            <td>
+                <c:if test="${subject.cardUrl != null}">
+                    <a href="${fileServer}${subject.cardUrl}" target="_blank">已上传</a>
+                </c:if>
+            </td>
             <td>${subject.objectiveScore}</td>
             <td>${subject.subjectiveScore}</td>
             <td>${subject.totalScore}</td>

+ 8 - 8
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/scoreList.jsp

@@ -55,9 +55,9 @@
         <br/><br/>
         <!--     总分 > startScore and 总分 <=endScore             -->
         <label>总分:从</label>
-        <input type="text" number="true" id="startScroe" name="startScroe" value="${query.startScroe}" class="input-mini"/>
+        <input type="text" number="true" id="startScore" name="startScore" value="${query.startScore}" class="input-mini"/>
         <label> 到&nbsp;&nbsp;&nbsp;</label>
-        <input type="text" number="true" id="endScroe" name="endScroe" value="${query.endScroe}" class="input-mini"/>
+        <input type="text" number="true" id="endScore" name="endScore" value="${query.endScore}" class="input-mini"/>
         
         <label>学院</label>
         <input type="text" name="college" value="${query.college}" maxlength="10" class="input-mini"/>
@@ -247,22 +247,22 @@
     }
 
     function goSearch() {
-        var startScroe = $("#startScroe").val();
-        var endScore = $("#endScroe").val();
-        if (startScroe.length > 0) {
+        var startScore = $("#startScore").val();
+        var endScore = $("#endScore").val();
+        if (startScore.length > 0) {
             if (endScore.length == 0) {
                 alert("请输入结束分数值!");
                 return false;
             }
         }
         if (endScore.length > 0) {
-            if (startScroe.length == 0) {
+            if (startScore.length == 0) {
                 alert("请输入开始分数值!");
                 return false;
             }
         }
-        if (endScore.length > 0 && startScroe.length > 0) {
-            if (parseInt(startScroe) > parseInt(endScore)) {
+        if (endScore.length > 0 && startScore.length > 0) {
+            if (parseInt(startScore) > parseInt(endScore)) {
                 alert("开始分值必须小于结束分值");
                 return false;
             }

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

@@ -20,6 +20,7 @@
 </ul>
 <form id="searchForm" action="${ctx}/admin/exam/reportSubjectTeacher" method="post" class="breadcrumb form-search">
 		<input type="hidden" id="teacherName" name="teacherName" value="${query.teacherName }"/>
+		<input type="hidden" id="subjectCode" name="subjectCode" value="${query.subjectCode }"/>
     &nbsp;&nbsp;科目:${subjectName}&nbsp;&nbsp;&nbsp;&nbsp;
     <span data-i18n-text="report.teacher.name">任课老师</span>:${query.teacherName} &nbsp;&nbsp;
     <a href="#" class="btn btn-primary" onclick="viewTeacherClassEcharts()" data-i18n-text="report.teacher.chart">查看统计图</a>

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/student/list.jsp

@@ -28,7 +28,7 @@
   	<div class="z"><span class="current">当前学校:${school.name }</span></div>
     <div class="y">
     	<a class="user" href="">${query.name }</a>
-    	<a href="javascript:window.close()">退出</a>
+    	<a href="javascript:location.replace(location);">退出</a>
     </div>
   </div>
   <div class="table">

+ 5 - 2
stmms-web/src/main/webapp/static/inspected/css/style.css

@@ -80,7 +80,7 @@ a {
 	float: left;
 	width: 100%;
 	height: 100%;
-	overflow: hidden;
+	overflow: scroll;
 }
 .c-cont .sd {
 	position: relative;
@@ -89,13 +89,16 @@ a {
 	height: 100%;
 	overflow: hidden;
 	margin-right: -300px;
+	padding-bottom:46px;
 }
 .image-content img {
 	width: 100%;
 }
 /*======c-theadlist======*/
 .c-theadlist {
-	padding: 5px;
+	height: 100%;
+	overflow-y:auto;
+	padding:5px;
 }
 .c-theadlist h1 {
 	background: #ECECEC;