فهرست منبع

科目查询新增选做异常

yin 10 ماه پیش
والد
کامیت
cd72fe34cf

+ 1 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/SelectiveStudentDao.java

@@ -18,4 +18,5 @@ public interface SelectiveStudentDao extends JpaRepository<SelectiveStudent, Int
     @Query("delete SelectiveStudent s where s.studentId=?1")
     void deleteByStudentId(Integer studentId);
 
+    int countByExamIdAndSubjectCodeAndAndLessSelectiveAndAndNotSelective(Integer examId, String subjectCode,boolean lessSelective,boolean noSelective);
 }

+ 6 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkController.java

@@ -6,6 +6,8 @@ import java.util.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.com.qmth.stmms.biz.exam.dao.SelectiveStudentDao;
+import cn.com.qmth.stmms.biz.exam.model.SelectiveStudent;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -68,6 +70,9 @@ public class MarkController extends BaseExamController {
     @Autowired
     private ExamStudentService studentService;
 
+    @Autowired
+    private SelectiveStudentDao selectiveStudentDao;
+
     /**
      * 评卷进度
      *
@@ -121,6 +126,7 @@ public class MarkController extends BaseExamController {
             long count = questionService.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId,
                     subject.getCode(), false);
             vo.setGroupFinish(count == 0);
+            vo.setSelectiveError(selectiveStudentDao.countByExamIdAndSubjectCodeAndAndLessSelectiveAndAndNotSelective(subject.getExamId(),subject.getCode(),true,true)!=0);
             list.add(vo);
         }
         MarkLibrarySearchQuery mQuery = new MarkLibrarySearchQuery();

+ 9 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkGroupController.java

@@ -8,6 +8,7 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
+import cn.com.qmth.stmms.biz.exam.dao.SelectiveStudentDao;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -121,6 +122,9 @@ public class MarkGroupController extends BaseExamController {
     @Autowired
     private SystemCache systemCache;
 
+    @Autowired
+    private SelectiveStudentDao selectiveStudentDao;
+
     @Logging(menu = "大题管理查询", type = LogType.QUERY)
     @RequestMapping
     public String list(HttpServletRequest request, Model model, @RequestParam(required = false) String subjectCode) {
@@ -269,13 +273,14 @@ public class MarkGroupController extends BaseExamController {
         if (markGroup.getStatus() == MarkStatus.TRIAL && status == MarkStatus.FORMAL) {
             allow = true;
         } else if (markGroup.getStatus() == MarkStatus.FORMAL && status == MarkStatus.FINISH
-                && markGroup.getLeftCount() == 0) {
+                && markGroup.getLeftCount() == 0
+                && selectiveStudentDao.countByExamIdAndSubjectCodeAndAndLessSelectiveAndAndNotSelective(markGroup.getExamId(),markGroup.getSubjectCode(),true,true)== 0) {
             allow = true;
         } else if (markGroup.getStatus() == MarkStatus.FINISH && status == MarkStatus.FORMAL) {
             allow = true;
         }
         if (!allow) {
-            redirectAttributes.addAttribute("message", "不能切换到指定的评卷状态");
+            redirectAttributes.addAttribute("message", "不能切换到指定的评卷状态,评卷未完成或存在选做异常");
             redirectAttributes.addAttribute("subjectCode", subjectCode);
             return "redirect:/admin/exam/group";
         }
@@ -809,7 +814,8 @@ public class MarkGroupController extends BaseExamController {
             }
             try {
                 lockService.waitlock(LockType.GROUP, group.getExamId(), group.getSubjectCode(), group.getNumber());
-                if (group.getStatus() == MarkStatus.FORMAL && group.getLeftCount() == 0) {
+                if (group.getStatus() == MarkStatus.FORMAL && group.getLeftCount() == 0
+                        && selectiveStudentDao.countByExamIdAndSubjectCodeAndAndLessSelectiveAndAndNotSelective(group.getExamId(), group.getSubjectCode(),true,true)==0) {
                     groupService.updateStatus(examId, subjectCode, number, MarkStatus.FINISH, group.getStatus());
                 }
             } finally {

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

@@ -19,6 +19,8 @@ public class SubjectLibraryVO {
 
     private long markedCount;
 
+    private boolean selectiveError;
+
     public ExamSubject getSubject() {
         return subject;
     }
@@ -67,4 +69,11 @@ public class SubjectLibraryVO {
         this.markedCount = markedCount;
     }
 
+    public boolean isSelectiveError() {
+        return selectiveError;
+    }
+
+    public void setSelectiveError(boolean selectiveError) {
+        this.selectiveError = selectiveError;
+    }
 }

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

@@ -5,7 +5,10 @@
 	<title>评卷进度</title>
 	<meta name="decorator" content="default"/>
 	<%@include file="/WEB-INF/views/include/head.jsp" %>
-	<style type="text/css">.sort{color:#0663A2;cursor:pointer;}</style>
+	<style type="text/css">
+		.sort{color:#0663A2;cursor:pointer;}
+		.selectiveError{color:#FF5F5F}
+	</style>
 	<script src="${ctxStatic}/echarts/echarts.min.js" type="text/javascript"></script>
 </head>
 <body>
@@ -74,6 +77,7 @@
 		<thead>
 			<tr>
 				<th><input type="checkbox" id="codes">科目</th>
+				<th>选做异常</th>
 				<th>上传人数</th>
 				<th>主观总分</th>
 				<th>分组总数</th>
@@ -84,7 +88,8 @@
 		<tbody>
 		<c:forEach items="${resultList}" var="result">
 			<tr>
-				<td><input type="checkbox" class="codes" name="codes" value="${result.subject.code}">
+				<td class="selectiveError"><c:if test="${result.selectiveError}">是</c:if></td>
+				<td><input type="checkbox" class="codes" name="codes" value="${result.subject.code}" <c:if test="${result.selectiveError}">disabled="disabled"</c:if>>
 				${result.subject.code}-${result.subject.name}&nbsp;${result.subject.remark}
 				<c:if test="${!result.groupFinish}"><img class="icon-info-sign" title="主观分未完成分组" src="${ctxStatic }/images/sgin-icon@2x.png"></img></c:if>
 				</td>