1
0
Эх сурвалжийг харах

Merge branch 'dev_1.5.0' of http://git.qmth.com.cn/luoshi/stmms-ft into dev_1.5.0

yin 1 жил өмнө
parent
commit
90bf7fbdf1

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

@@ -221,6 +221,9 @@ public interface ExamStudentDao
 
     @Query("select distinct m.subjectCode from ExamStudent m where m.examId=?1 and m.subjectiveStatus in (?3) and m.inspected=?2 and m.upload=true and m.absent=false and m.breach=false ")
     Set<String> findSubjectUnInspectedByExamId(int examId, boolean inspected, SubjectiveStatus... status);
+    
+    @Query("select distinct m.subjectCode from ExamStudent m where m.examId=?1 and m.subjectiveStatus='MARKED' and m.upload=true and m.absent=false and m.breach=false ")
+    Set<String> findSubjectHasTaskByExamId(int examId);
 
     @Query("select s.college from ExamStudent s where s.examId=?1 group by s.college")
     public List<String> findDistinctCollege(int examId);

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/InspectHistoryDao.java

@@ -36,4 +36,6 @@ public interface InspectHistoryDao extends PagingAndSortingRepository<InspectHis
     @Query("delete from InspectHistory m where m.examId=?1 and m.subjectCode=?2 and m.inspectRound=?3")
     void deleteByExamIdAndSubjectCodeAndInspectRound(int examId, String subjectCode, Integer inspectRound);
 
+    @Query("select distinct s.inspectRound from InspectHistory s where s.examId=?1 ")
+    public List<Integer> findInspectRound(int examId);
 }

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

@@ -121,6 +121,8 @@ public class InspectQuery extends BaseQuery<ExamStudentVo> {
     private boolean export;
     
     private Boolean selective;
+    
+    private Integer inspectRound;
 
     public InspectQuery() {
         super();
@@ -567,4 +569,12 @@ public class InspectQuery extends BaseQuery<ExamStudentVo> {
 		this.selective = selective;
 	}
 
+	public Integer getInspectRound() {
+		return inspectRound;
+	}
+
+	public void setInspectRound(Integer inspectRound) {
+		this.inspectRound = inspectRound;
+	}
+
 }

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java

@@ -206,4 +206,6 @@ public interface ExamStudentService {
     List<String> findDistinctCollegeBySubjectCode(int examId, String subjectCode);
 
     long countSheetCountByQuery(ExamStudentSearchQuery query);
+
+	Set<String> findSubjectHasTaskByExamId(int examId);
 }

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/InspectHistoryService.java

@@ -27,4 +27,6 @@ public interface InspectHistoryService {
 
     void deleteByExamIdAndSubjectCodeAndInspectRound(Integer examId, String subjectCode, Integer inspectRound);
 
+	List<Integer> findInspectRound(int examId);
+
 }

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

@@ -1232,7 +1232,10 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
     public Set<String> findSubjectUnInspectedByExamId(int examId) {
         return studentDao.findSubjectUnInspectedByExamId(examId, false, SubjectiveStatus.MARKED);
     }
-
+    @Override
+    public Set<String> findSubjectHasTaskByExamId(int examId) {
+        return studentDao.findSubjectHasTaskByExamId(examId);
+    }
     @Override
     public List<String> findDistinctCollege(int examId) {
         return studentDao.findDistinctCollege(examId);

+ 5 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/InspectHistoryServiceImpl.java

@@ -127,5 +127,10 @@ public class InspectHistoryServiceImpl extends BaseQueryService<InspectHistory>
     public void deleteByExamIdAndSubjectCodeAndInspectRound(Integer examId, String subjectCode, Integer inspectRound) {
         inspectHistoryDao.deleteByExamIdAndSubjectCodeAndInspectRound(examId, subjectCode, inspectRound);
     }
+    
+    @Override
+    public List<Integer> findInspectRound(int examId) {
+        return inspectHistoryDao.findInspectRound(examId);
+    }
 
 }

+ 6 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/InspectedServiceImpl.java

@@ -85,6 +85,9 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
         if (query.getExamId() != null) {
             whereSql.append(" and s.exam_id =" + query.getExamId());
         }
+        if (StringUtils.isNotBlank(query.getCollege())) {
+            whereSql.append(" and s.college ='" + query.getCollege() + "'");
+        }
         if (StringUtils.isNotBlank(query.getSubjectCode())) {
             whereSql.append(" and s.subject_code ='" + query.getSubjectCode() + "'");
         }
@@ -97,6 +100,9 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
                     + query.getInspectorName()
                     + "%' or bu.name like '" + query.getInspectorName() + "%'))");
         }
+        if (query.getInspectRound()!=null) {
+            whereSql.append(" and s.inspect_count="+ query.getInspectRound());
+        }
         if (query.getInspectUnrepeated() != null && query.getInspectUnrepeated()) {
             whereSql.append(" and not exists (select 1 from eb_inspect_history ei where ei.student_id = s.id and ei.inspector_id="
                     + query.getInspectorId() + ")");

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

@@ -129,6 +129,9 @@ public class InspectedController extends BaseExamController {
             subjectList.forEach(e -> subjectCodeIn.add(e.getCode()));
             query.setSubjectCodeIn(StringUtils.join(subjectCodeIn, ","));
         }
+        if(wu.getRole() != Role.SCHOOL_ADMIN&&subjectList!=null&&subjectList.size()>0&&query.getSubjectCode()==null) {
+        	query.setSubjectCode(subjectList.get(0).getCode());
+        }
         List<ExamStudentVo> list = inspectedService.findByQuery(query, status, mainNumber, mainStartScore,
                 mainEndScore, selectiveStatus);
         for (ExamStudentVo e : list) {
@@ -162,6 +165,8 @@ public class InspectedController extends BaseExamController {
         model.addAttribute("selectiveStatus", selectiveStatus);
         model.addAttribute("exam", exam);
         model.addAttribute("examFinish", checkFinish(exam));
+        model.addAttribute("collegeList", studentService.findDistinctCollege(examId));
+        model.addAttribute("inspectRoundList", inspectHistoryService.findInspectRound(examId));
         if (StringUtils.isNotBlank(query.getSubjectCode())) {
             ExamSubject es = subjectService.find(examId, query.getSubjectCode());
             if (inspectedService.inspectFinish(examId, query.getSubjectCode(), es.getInspectRound())) {
@@ -548,10 +553,13 @@ public class InspectedController extends BaseExamController {
         Exam exam = examService.findById(examId);
         query.setExamId(examId);
         Set<String> unFinishSet = studentService.findSubjectUnInspectedByExamId(examId);
+        Set<String> hasTaskSet = studentService.findSubjectHasTaskByExamId(examId);
         if (query.getFinished() != null) {
             String subjectCodeIn = StringUtils.join(unFinishSet, ",");
+            String hasTaskSetIn = StringUtils.join(hasTaskSet, ",");
             if (query.getFinished()) {
                 query.setCodeNotIn(subjectCodeIn);
+                query.setCodeIn(hasTaskSetIn);
             } else {
                 query.setCodeIn(subjectCodeIn);
             }
@@ -595,7 +603,7 @@ public class InspectedController extends BaseExamController {
                 vo.setLeftCount(0);
             }
             String percent = totalCount > 0 ? (new DecimalFormat("####.###")
-                    .format(inspectedCount * 100.0 / totalCount) + "%") : "100%";
+                    .format(inspectedCount * 100.0 / totalCount) + "%") : "0%";
             vo.setPercent(percent);
             if (unFinishSet.contains(vo.getSubject().getCode())) {
                 vo.setFinishCount(vo.getSubject().getInspectRound() - 1);

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

@@ -54,11 +54,19 @@
 				<option value="0" <c:if test="${query.inspected!=null &&!query.inspected}">selected</c:if>>未复核</option>
 			</select>
          &nbsp;
+         <label>学院</label>
+        <select class="input-small" id="college" name="college">
+            <option value="">请选择</option>
+            <c:forEach items="${collegeList }" var="c">
+                <option value="${c}" <c:if test="${query.college eq c }">selected</c:if>>${c}</option>
+            </c:forEach>
+        </select>
+         &nbsp;
         <label>试卷总分:从</label>
         <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="endScore" name="endScore" value="${query.endScore}" class="input-mini"/>
-        &nbsp;
+        <br/><br/>
         <label>选做题</label>
             <select class="input-small"  name="selectiveStatus" id="selectiveStatus">
 	            <option value="">请选择</option>
@@ -66,7 +74,14 @@
                 <option value="${result.value}" <c:if test="${result==selectiveStatus}">selected</c:if>>${result.name}</option>
             	</c:forEach>
             </select>
-        <br/><br/>
+        <label>复核次数</label>
+        <select class="input-small" id="inspectRound" name="inspectRound">
+            <option value="">请选择</option>
+            <c:forEach items="${inspectRoundList }" var="c">
+                <option value="${c}" <c:if test="${query.inspectRound eq c }">selected</c:if>>${c}</option>
+            </c:forEach>
+        </select>
+         &nbsp;
          <label>复核人</label>
         <input type="text" name="inspectorName" id="inspectorName" value="${query.inspectorName}" class="input-medium"/>
 		<label>大题</label>
@@ -81,7 +96,7 @@
         <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="mainEndScore" name="mainEndScore" value="${mainEndScore }" class="input-mini"/>
-        
+        <br/><br/>
         <label>小题得分</label>
         <input type="text" number="true" name="questionScore" id="questionScore" value="${query.questionScore }" class="input-mini"/>
 		<span id="questionScoreEmptySpan" hidden="true">
@@ -91,7 +106,7 @@
 				<option value="0" <c:if test="${query.questionScoreEmpty!=null &&!query.questionScoreEmpty}">selected</c:if>>0</option>
 			</select>
 		</span>	
-		<br/><br/>
+		&nbsp;
         <label>密号</label>
         <input type="text" name="secretNumber" id="secretNumber" value="${query.secretNumber}" class="input-medium"/>
         &nbsp;
@@ -254,16 +269,16 @@
                 $('#question-select').val('').trigger('change');
                 return;
             }
-            $('#question-select').append('<option value="">不限</option>');
+            $('#question-select').append('<option value="">请选择</option>');
             $.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) {
+                    /* if (i == 0) {
                         first = question.mainNumber;
-                    }
+                    } */
                 }
                 parent.val(first).trigger('change');
             });