|
@@ -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;
|
|
|
}
|
|
|
-
|
|
|
}
|