1
0
Prechádzať zdrojové kódy

多媒体阅卷导出成绩放开人工指定限制

ting.yin 2 rokov pred
rodič
commit
d34d4e6408

+ 20 - 16
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ScoreController.java

@@ -46,6 +46,7 @@ import cn.com.qmth.stmms.biz.utils.ScoreItem;
 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.ExamType;
 import cn.com.qmth.stmms.common.enums.LogType;
 import cn.com.qmth.stmms.common.enums.MarkStatus;
 import cn.com.qmth.stmms.common.enums.Role;
@@ -113,7 +114,8 @@ public class ScoreController extends BaseExamController {
         }
         String logMessage = getLogMessage(query, filter);
         RequestUtils.setLog(request, logMessage);
-        String exportMessage = StringUtils.isNotBlank(query.getSubjectCode()) ? enableExport(examId,
+        Exam exam = examService.findById(examId);
+        String exportMessage = StringUtils.isNotBlank(query.getSubjectCode()) ? enableExport(exam,
                 query.getSubjectCode()) : null;
         if (exportMessage != null) {
             view.addObject("exportMessage", exportMessage);
@@ -122,7 +124,6 @@ public class ScoreController extends BaseExamController {
             view.addObject("enableExport", true);
         }
         view.addObject("subjectList", getExamSubject(examId, wu));
-        Exam exam = examService.findById(examId);
         view.addObject("examType", exam.getType());
         view.addObject("query", query);
         view.addObject("filter", filter);
@@ -251,7 +252,7 @@ public class ScoreController extends BaseExamController {
         List<String> error = new ArrayList<String>();
         // 单科目导出
         if (StringUtils.isNotBlank(query.getSubjectCode())) {
-            String exportMessage = enableExport(exam.getId(), query.getSubjectCode());
+            String exportMessage = enableExport(exam, query.getSubjectCode());
             // 判断不允许导出则直接返回
             if (exportMessage != null) {
                 addMessage(redirectAttributes, "该科目不能导出成绩 " + exportMessage);
@@ -267,7 +268,7 @@ public class ScoreController extends BaseExamController {
             }
             for (ExamSubject subject : list) {
                 // 遍历所有科目,判断是否允许导出
-                String meaages = enableExport(subject.getExamId(), subject.getCode());
+                String meaages = enableExport(exam, subject.getCode());
                 if (meaages == null) {
                     subjectSet.add(subject.getCode());
                 } else {
@@ -348,7 +349,8 @@ public class ScoreController extends BaseExamController {
     public JSONObject query(HttpServletRequest request, @RequestParam String subjectCode) {
         JSONObject obj = new JSONObject();
         int examId = getSessionExamId(request);
-        String exportMessage = enableExport(examId, subjectCode);
+        Exam exam = examService.findById(examId);
+        String exportMessage = enableExport(exam, subjectCode);
         if (exportMessage != null) {
             obj.accumulate("enableExport", false);
             obj.accumulate("exportMessage", exportMessage);
@@ -425,28 +427,31 @@ public class ScoreController extends BaseExamController {
         }
     }
 
-    private String enableExport(int examId, String subjectCode) {
-        ExamSubject subject = subjectService.find(examId, subjectCode);
+    private String enableExport(Exam exam, String subjectCode) {
+        ExamSubject subject = subjectService.find(exam.getId(), subjectCode);
         if (subject == null) {
             return subjectCode + "该科目不存在";
         }
+        List<MarkGroup> groups = groupService.findByExamAndSubjectAndStatus(exam.getId(), subjectCode,
+                MarkStatus.FORMAL, MarkStatus.TRIAL);
+        if (groups != null && !groups.isEmpty()) {
+            return subjectCode + "评卷未完成";
+        }
+        if (ExamType.MULTI_MEDIA.equals(exam.getType())) {
+            return null;
+        }
         if (DoubleUtil.sum(subject.getObjectiveScore(), subject.getSubjectiveScore()) == 0) {
             return subjectCode + "科目总分为0";
         }
-        long groupCount = groupService.countByExamAndSubject(examId, subjectCode);
+        long groupCount = groupService.countByExamAndSubject(exam.getId(), subjectCode);
         if (subject.getSubjectiveScore() != null && subject.getSubjectiveScore() > 0 && groupCount == 0) {
             return subjectCode + "未设置评卷分组";
         }
-        List<MarkGroup> groups = groupService.findByExamAndSubjectAndStatus(examId, subjectCode, MarkStatus.FORMAL,
-                MarkStatus.TRIAL);
-        if (groups != null && !groups.isEmpty()) {
-            return subjectCode + "评卷未完成";
-        }
-        if (checkStudentService.countByExamIdAndSubjectCodeAndChecked(examId, subjectCode, false) > 0) {
+        if (checkStudentService.countByExamIdAndSubjectCodeAndChecked(exam.getId(), subjectCode, false) > 0) {
             return subjectCode + "人工确认未完成";
         }
         ExamStudentSearchQuery query = new ExamStudentSearchQuery();
-        query.setExamId(examId);
+        query.setExamId(exam.getId());
         query.setUpload(false);
         query.setManualAbsent(false);
         query.setSubjectCode(subjectCode);
@@ -455,5 +460,4 @@ public class ScoreController extends BaseExamController {
         }
         return null;
     }
-
 }