|
@@ -1,8 +1,9 @@
|
|
|
package cn.com.qmth.stmms.biz.mark.service.Impl;
|
|
|
|
|
|
-<<<<<<< HEAD
|
|
|
import cn.com.qmth.stmms.biz.exam.dao.*;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.*;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
|
import cn.com.qmth.stmms.biz.mark.dao.*;
|
|
@@ -14,15 +15,6 @@ import cn.com.qmth.stmms.biz.utils.TaskLock;
|
|
|
import cn.com.qmth.stmms.biz.utils.TaskLockUtil;
|
|
|
import cn.com.qmth.stmms.common.enums.*;
|
|
|
import cn.com.qmth.stmms.common.utils.BigDecimalUtils;
|
|
|
-=======
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.concurrent.ConcurrentHashMap;
|
|
|
-
|
|
|
->>>>>>> release_1.3.1
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -31,58 +23,8 @@ import org.springframework.data.domain.Sort;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-<<<<<<< HEAD
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
-=======
|
|
|
-import cn.com.qmth.stmms.biz.exam.dao.ExamQuestionDao;
|
|
|
-import cn.com.qmth.stmms.biz.exam.dao.MarkGroupDao;
|
|
|
-import cn.com.qmth.stmms.biz.exam.dao.MarkGroupStudentDao;
|
|
|
-import cn.com.qmth.stmms.biz.exam.dao.MarkerDao;
|
|
|
-import cn.com.qmth.stmms.biz.exam.dao.SubjectiveScoreDao;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.ExamQuestion;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.MarkGroupStudent;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.SubjectiveScore;
|
|
|
-import cn.com.qmth.stmms.biz.exam.service.ExamQuestionService;
|
|
|
-import cn.com.qmth.stmms.biz.exam.service.ExamService;
|
|
|
-import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
|
-import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
|
-import cn.com.qmth.stmms.biz.mark.dao.ArbitrateHistoryDao;
|
|
|
-import cn.com.qmth.stmms.biz.mark.dao.MarkLibraryDao;
|
|
|
-import cn.com.qmth.stmms.biz.mark.dao.MarkSpecialTagDao;
|
|
|
-import cn.com.qmth.stmms.biz.mark.dao.MarkTrackDao;
|
|
|
-import cn.com.qmth.stmms.biz.mark.dao.ProblemHistoryDao;
|
|
|
-import cn.com.qmth.stmms.biz.mark.dao.TrialHistoryDao;
|
|
|
-import cn.com.qmth.stmms.biz.mark.dao.TrialLibraryDao;
|
|
|
-import cn.com.qmth.stmms.biz.mark.dao.TrialTagDao;
|
|
|
-import cn.com.qmth.stmms.biz.mark.dao.TrialTrackDao;
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.ArbitrateHistory;
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.MarkResult;
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.MarkStepDTO;
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.MarkTrack;
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.ProblemHistory;
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.SubmitResult;
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.TrialHistory;
|
|
|
-import cn.com.qmth.stmms.biz.mark.model.TrialLibrary;
|
|
|
-import cn.com.qmth.stmms.biz.mark.query.MarkLibrarySearchQuery;
|
|
|
-import cn.com.qmth.stmms.biz.mark.service.MarkService;
|
|
|
-import cn.com.qmth.stmms.biz.utils.ScoreItem;
|
|
|
-import cn.com.qmth.stmms.biz.utils.TaskLock;
|
|
|
-import cn.com.qmth.stmms.biz.utils.TaskLockUtil;
|
|
|
-import cn.com.qmth.stmms.common.enums.HistoryStatus;
|
|
|
-import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
|
-import cn.com.qmth.stmms.common.enums.MarkStatus;
|
|
|
-import cn.com.qmth.stmms.common.enums.ObjectiveStatus;
|
|
|
-import cn.com.qmth.stmms.common.enums.ScorePolicy;
|
|
|
-import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
|
|
|
-import cn.com.qmth.stmms.common.enums.ThirdPolicy;
|
|
|
-import cn.com.qmth.stmms.common.utils.BigDecimalUtils;
|
|
|
->>>>>>> release_1.3.1
|
|
|
|
|
|
/**
|
|
|
* 与评卷相关的所有修改操作(非传播性的新增操作除外),全部汇总到这里进行集中控制
|
|
@@ -153,8 +95,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 某个评卷分组已申请的评卷任务数量
|
|
|
*
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
+ * @param group - 评卷分组
|
|
|
* @return int
|
|
|
*/
|
|
|
@Override
|
|
@@ -173,8 +114,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 某个评卷员已申请的评卷任务数量
|
|
|
*
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param marker - 评卷员
|
|
|
* @return int
|
|
|
*/
|
|
|
@Override
|
|
@@ -198,8 +138,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 某个评卷员已完成的评卷任务数量
|
|
|
*
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param marker - 评卷员
|
|
|
* @return long
|
|
|
*/
|
|
|
@Override
|
|
@@ -212,8 +151,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
if (group.getStatus() == MarkStatus.TRIAL) {
|
|
|
return trialHistoryDao.countByMarkerId(marker.getId());
|
|
|
} else {
|
|
|
- return libraryDao.countByMarkerAndStatus(marker.getId(), LibraryStatus.MARKED,
|
|
|
- LibraryStatus.ARBITRATED, LibraryStatus.INSPECTED);
|
|
|
+ return libraryDao.countByMarkerAndStatus(marker.getId(), LibraryStatus.MARKED, LibraryStatus.ARBITRATED,
|
|
|
+ LibraryStatus.INSPECTED);
|
|
|
}
|
|
|
}
|
|
|
return 0;
|
|
@@ -222,8 +161,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 释放某个评卷分组的锁定任务
|
|
|
*
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
+ * @param group - 评卷分组
|
|
|
*/
|
|
|
@Override
|
|
|
public void releaseByGroup(MarkGroup group) {
|
|
@@ -239,8 +177,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 重置某个评卷分组的所有评卷任务
|
|
|
*
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
+ * @param group - 评卷分组
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -251,8 +188,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 删除某个评卷分组
|
|
|
*
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
+ * @param group - 评卷分组
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -279,8 +215,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
markerDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
group.getNumber());
|
|
|
// 小题数据
|
|
|
- questionDao.resetByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- false, group.getNumber());
|
|
|
+ questionDao
|
|
|
+ .resetByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(group.getExamId(), group.getSubjectCode(), false,
|
|
|
+ group.getNumber());
|
|
|
// 考生分组状态与得分明细
|
|
|
groupStudentDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
group.getNumber());
|
|
@@ -290,17 +227,18 @@ public class MarkServiceImpl implements MarkService {
|
|
|
releaseByGroup(group);
|
|
|
groupDao.delete(group);
|
|
|
// 未分组的题目
|
|
|
- long unGroupQuestionCount = questionDao.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(
|
|
|
- group.getExamId(), group.getSubjectCode(), false);
|
|
|
+ long unGroupQuestionCount = questionDao
|
|
|
+ .countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(group.getExamId(), group.getSubjectCode(),
|
|
|
+ false);
|
|
|
// 考生整体状态与总分更新
|
|
|
long groupCount = groupDao.countByExamIdAndSubjectCode(group.getExamId(), group.getSubjectCode());
|
|
|
if (groupCount == 0 || unGroupQuestionCount > 0) {
|
|
|
studentService.updateSubjectiveStatusAndScoreAndInspectorId(group.getExamId(), group.getSubjectCode(),
|
|
|
SubjectiveStatus.UNMARK, 0, null, null, null);
|
|
|
} else {
|
|
|
- List<Integer> studentList = studentService.findIdByExamIdAndSubjectCodeAndSubjectiveStatus(
|
|
|
- group.getExamId(), group.getSubjectCode(), SubjectiveStatus.UNMARK, SubjectiveStatus.MARKED,
|
|
|
- SubjectiveStatus.INSPECTED);
|
|
|
+ List<Integer> studentList = studentService
|
|
|
+ .findIdByExamIdAndSubjectCodeAndSubjectiveStatus(group.getExamId(), group.getSubjectCode(),
|
|
|
+ SubjectiveStatus.UNMARK, SubjectiveStatus.MARKED, SubjectiveStatus.INSPECTED);
|
|
|
for (Integer studentId : studentList) {
|
|
|
checkStudentSubjective(studentId, groupCount, unGroupQuestionCount);
|
|
|
}
|
|
@@ -310,14 +248,14 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 修改某个评卷分组给分步骤,并重置评卷任务
|
|
|
*
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
+ * @param group - 评卷分组
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void updateGroup(MarkGroup group, List<ExamQuestion> questionList, ScorePolicy policy, ThirdPolicy third) {
|
|
|
- List<ExamQuestion> old = questionDao.findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(group.getExamId(),
|
|
|
- group.getSubjectCode(), false, group.getNumber());
|
|
|
+ List<ExamQuestion> old = questionDao
|
|
|
+ .findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(group.getExamId(), group.getSubjectCode(), false,
|
|
|
+ group.getNumber());
|
|
|
for (ExamQuestion question : old) {
|
|
|
question.setGroupNumber(null);
|
|
|
questionDao.saveAndFlush(question);
|
|
@@ -349,10 +287,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 评卷员申请领取某个正式评卷任务
|
|
|
*
|
|
|
- * @param library
|
|
|
- * - 正评任务
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param library - 正评任务
|
|
|
+ * @param marker - 评卷员
|
|
|
*/
|
|
|
@Override
|
|
|
public boolean applyLibrary(MarkLibrary library, Marker marker) {
|
|
@@ -375,29 +311,21 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 评卷员申请领取某个试评评卷任务
|
|
|
*
|
|
|
- * @param library
|
|
|
- * - 试评任务
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param library - 试评任务
|
|
|
+ * @param marker - 评卷员
|
|
|
* @return boolean
|
|
|
*/
|
|
|
@Override
|
|
|
public boolean applyLibrary(TrialLibrary library, Marker marker) {
|
|
|
TaskLock taskLock = TaskLockUtil.getTrialTask(getGroupKey(marker));
|
|
|
-<<<<<<< HEAD
|
|
|
- return taskLock.add(getApplyTaskId(library, marker), 1, marker.getId());
|
|
|
-=======
|
|
|
return taskLock.add(library.getStudentId(), 1, marker.getId());
|
|
|
->>>>>>> release_1.3.1
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 评卷员是否已领取了某个正式评卷任务
|
|
|
*
|
|
|
- * @param library
|
|
|
- * - 正评任务
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param library - 正评任务
|
|
|
+ * @param marker - 评卷员
|
|
|
* @return boolean
|
|
|
*/
|
|
|
@Override
|
|
@@ -409,29 +337,21 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 评卷员是否已领取了某个试评评卷任务
|
|
|
*
|
|
|
- * @param library
|
|
|
- * - 试评任务
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param library - 试评任务
|
|
|
+ * @param marker - 评卷员
|
|
|
* @return boolean
|
|
|
*/
|
|
|
@Override
|
|
|
public boolean hasApplied(TrialLibrary library, Marker marker) {
|
|
|
TaskLock taskLock = TaskLockUtil.getTrialTask(getGroupKey(marker));
|
|
|
-<<<<<<< HEAD
|
|
|
- return taskLock.exist(getApplyTaskId(library, marker), 1, marker.getId());
|
|
|
-=======
|
|
|
return taskLock.exist(library.getStudentId(), 1, marker.getId());
|
|
|
->>>>>>> release_1.3.1
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 释放某个评卷员已完成的评卷任务
|
|
|
*
|
|
|
- * @param result
|
|
|
- * - 评卷结果
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param result - 评卷结果
|
|
|
+ * @param marker - 评卷员
|
|
|
*/
|
|
|
@Override
|
|
|
public void releaseTask(SubmitResult result, Marker marker) {
|
|
@@ -442,36 +362,27 @@ public class MarkServiceImpl implements MarkService {
|
|
|
taskLock.refresh(marker.getId());
|
|
|
} else if (result.getTrialLibrary() != null) {
|
|
|
TaskLock taskLock = TaskLockUtil.getTrialTask(getGroupKey(marker));
|
|
|
-<<<<<<< HEAD
|
|
|
- taskLock.remove(getApplyTaskId(result.getTrialLibrary(), marker), 1, marker.getId());
|
|
|
-=======
|
|
|
taskLock.remove(result.getTrialLibrary().getStudentId(), 1, marker.getId());
|
|
|
->>>>>>> release_1.3.1
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 释放某个评卷员的所有锁定任务
|
|
|
*
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param marker - 评卷员
|
|
|
*/
|
|
|
@Override
|
|
|
public void releaseByMarker(Marker marker) {
|
|
|
TaskLock taskLock = TaskLockUtil.getFormalTask(getGroupKey(marker));
|
|
|
taskLock.clear(marker.getId());
|
|
|
-<<<<<<< HEAD
|
|
|
-=======
|
|
|
TaskLock lock = TaskLockUtil.getTrialTask(getGroupKey(marker));
|
|
|
lock.clear(marker.getId());
|
|
|
->>>>>>> release_1.3.1
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 重置某个评卷员
|
|
|
*
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param marker - 评卷员
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -533,8 +444,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 根据考生删除评卷任务
|
|
|
*
|
|
|
- * @param student
|
|
|
- * - 考生
|
|
|
+ * @param student - 考生
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -559,10 +469,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 评卷员提交评卷任务
|
|
|
*
|
|
|
- * @param result
|
|
|
- * - 评卷结果
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param result - 评卷结果
|
|
|
+ * @param marker - 评卷员
|
|
|
* @return boolean
|
|
|
*/
|
|
|
@Override
|
|
@@ -570,12 +478,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
public SubmitResult submitTask(MarkResult result, Marker marker) {
|
|
|
// 判断评卷分组是否存在/评卷是否结束
|
|
|
MarkGroup group = groupDao.findOne(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
- if (group == null || group.getStatus() == MarkStatus.FINISH
|
|
|
-<<<<<<< HEAD
|
|
|
- || group.getStatus().getValue() != result.getStatusValue()) {
|
|
|
-=======
|
|
|
- || !group.getStatus().toString().equals(result.getStatusValue())) {
|
|
|
->>>>>>> release_1.3.1
|
|
|
+ if (group == null || group.getStatus() == MarkStatus.FINISH || !group.getStatus().toString()
|
|
|
+ .equals(result.getStatusValue())) {
|
|
|
return SubmitResult.faile();
|
|
|
}
|
|
|
|
|
@@ -590,39 +494,29 @@ public class MarkServiceImpl implements MarkService {
|
|
|
LibraryStatus.REJECTED) != 0) {
|
|
|
saveProblemHistory(result, library);
|
|
|
updateMarkedCount(group);
|
|
|
-<<<<<<< HEAD
|
|
|
- // releaseLibrary(library, marker);
|
|
|
-=======
|
|
|
// 未评完
|
|
|
resetStudentGroup(library.getStudentId(), library.getExamId(), library.getSubjectCode(),
|
|
|
library.getGroupNumber());
|
|
|
trackDao.deleteByLibraryId(library.getId());
|
|
|
specialTagDao.deleteByLibraryId(library.getId());
|
|
|
->>>>>>> release_1.3.1
|
|
|
return SubmitResult.success(library);
|
|
|
}
|
|
|
}
|
|
|
- if (library != null && library.getExamId().equals(group.getExamId())
|
|
|
- && library.getSubjectCode().equals(group.getSubjectCode())
|
|
|
- && library.getGroupNumber().equals(group.getNumber())
|
|
|
- && result.getMarkerScore() <= group.getTotalScore()
|
|
|
- && StringUtils.isNotBlank(result.getScoreList())) {
|
|
|
+ if (library != null && library.getExamId().equals(group.getExamId()) && library.getSubjectCode()
|
|
|
+ .equals(group.getSubjectCode()) && library.getGroupNumber().equals(group.getNumber())
|
|
|
+ && result.getMarkerScore() <= group.getTotalScore() && StringUtils
|
|
|
+ .isNotBlank(result.getScoreList())) {
|
|
|
if (submitLibrary(library, marker, group, result)) {
|
|
|
updateMarkedCount(group);
|
|
|
-<<<<<<< HEAD
|
|
|
- // releaseLibrary(library, marker);
|
|
|
-=======
|
|
|
->>>>>>> release_1.3.1
|
|
|
return SubmitResult.success(library);
|
|
|
}
|
|
|
}
|
|
|
} else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
|
TrialLibrary library = trialLibraryDao.findOne(result.getLibraryId());
|
|
|
- if (library != null && library.getExamId().equals(group.getExamId())
|
|
|
- && library.getSubjectCode().equals(group.getSubjectCode())
|
|
|
- && library.getGroupNumber().equals(group.getNumber())
|
|
|
- && result.getMarkerScore() <= group.getTotalScore()
|
|
|
- && StringUtils.isNotBlank(result.getScoreList())) {
|
|
|
+ if (library != null && library.getExamId().equals(group.getExamId()) && library.getSubjectCode()
|
|
|
+ .equals(group.getSubjectCode()) && library.getGroupNumber().equals(group.getNumber())
|
|
|
+ && result.getMarkerScore() <= group.getTotalScore() && StringUtils
|
|
|
+ .isNotBlank(result.getScoreList())) {
|
|
|
TrialHistory history = new TrialHistory();
|
|
|
history.setExamId(library.getExamId());
|
|
|
history.setSubjectCode(library.getSubjectCode());
|
|
@@ -674,14 +568,10 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 评卷员提交某个正评任务
|
|
|
*
|
|
|
- * @param library
|
|
|
- * - 正评任务
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
- * @param result
|
|
|
- * - 评卷结果
|
|
|
+ * @param library - 正评任务
|
|
|
+ * @param marker - 评卷员
|
|
|
+ * @param group - 评卷分组
|
|
|
+ * @param result - 评卷结果
|
|
|
*/
|
|
|
private boolean submitLibrary(MarkLibrary library, Marker marker, MarkGroup group, MarkResult result) {
|
|
|
// 非本人领取的待评任务
|
|
@@ -690,20 +580,21 @@ public class MarkServiceImpl implements MarkService {
|
|
|
return false;
|
|
|
}
|
|
|
// 非本人的回评任务
|
|
|
- if ((library.getStatus() == LibraryStatus.MARKED || library.getStatus() == LibraryStatus.INSPECTED)
|
|
|
- && !library.getMarkerId().equals(marker.getId())) {
|
|
|
+ if ((library.getStatus() == LibraryStatus.MARKED || library.getStatus() == LibraryStatus.INSPECTED) && !library
|
|
|
+ .getMarkerId().equals(marker.getId())) {
|
|
|
return false;
|
|
|
}
|
|
|
// 是否多评情况下已处理过该考生评卷任务
|
|
|
- if (libraryDao
|
|
|
- .countByStudentIdAndMarkerIdAndIdNotEqual(library.getStudentId(), marker.getId(), library.getId()) > 0) {
|
|
|
+ if (libraryDao.countByStudentIdAndMarkerIdAndIdNotEqual(library.getStudentId(), marker.getId(), library.getId())
|
|
|
+ > 0) {
|
|
|
return false;
|
|
|
}
|
|
|
// 尝试提交评卷结果
|
|
|
Date now = new Date();
|
|
|
- if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.MARKED, marker.getId(),
|
|
|
- result.getMarkerScore(), result.getScoreList(), now, result.getSpent(), LibraryStatus.WAITING,
|
|
|
- LibraryStatus.MARKED, LibraryStatus.INSPECTED, LibraryStatus.REJECTED) == 0) {
|
|
|
+ if (libraryDao
|
|
|
+ .updateMarkerResult(library.getId(), LibraryStatus.MARKED, marker.getId(), result.getMarkerScore(),
|
|
|
+ result.getScoreList(), now, result.getSpent(), LibraryStatus.WAITING, LibraryStatus.MARKED,
|
|
|
+ LibraryStatus.INSPECTED, LibraryStatus.REJECTED) == 0) {
|
|
|
// 条件不符更新失败,直接返回
|
|
|
return false;
|
|
|
}
|
|
@@ -724,8 +615,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
ArbitrateHistory history = null;
|
|
|
if (group.getArbitrateThreshold() != null && group.getArbitrateThreshold() > 0) {
|
|
|
// 多评模式
|
|
|
- List<MarkLibrary> list = libraryDao.findByStudentIdAndGroupNumberAndStatus(library.getStudentId(),
|
|
|
- library.getGroupNumber(), LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
|
+ List<MarkLibrary> list = libraryDao
|
|
|
+ .findByStudentIdAndGroupNumberAndStatus(library.getStudentId(), library.getGroupNumber(),
|
|
|
+ LibraryStatus.MARKED, LibraryStatus.INSPECTED);
|
|
|
for (MarkLibrary other : list) {
|
|
|
if (other.getId().equals(library.getId()) || other.getHeaderScore() != null) {
|
|
|
// 本评卷任务或组长已打分,则跳过该任务
|
|
@@ -735,12 +627,13 @@ public class MarkServiceImpl implements MarkService {
|
|
|
if (Math.abs(other.getMarkerScore() - result.getMarkerScore()) > group.getArbitrateThreshold()) {
|
|
|
// 开启三评
|
|
|
if (group.getThirdPolicy().equals(ThirdPolicy.LOW_DIFF_HIGH_AVG)) {
|
|
|
- if (libraryDao.countByStudentIdAndGroupNumber(library.getStudentId(), library.getGroupNumber()) == 2) {
|
|
|
+ if (libraryDao.countByStudentIdAndGroupNumber(library.getStudentId(), library.getGroupNumber())
|
|
|
+ == 2) {
|
|
|
buildThirdLibrary(library, group);
|
|
|
} else {
|
|
|
// 两两比较,触发仲裁
|
|
|
- List<MarkLibrary> libraries = libraryDao.findByStudentIdAndGroupNumber(
|
|
|
- library.getStudentId(), library.getGroupNumber());
|
|
|
+ List<MarkLibrary> libraries = libraryDao
|
|
|
+ .findByStudentIdAndGroupNumber(library.getStudentId(), library.getGroupNumber());
|
|
|
history = buildArbitrateHistory(libraries, group.getArbitrateThreshold(), now);
|
|
|
}
|
|
|
} else {
|
|
@@ -821,8 +714,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
* 管理员/组长打回某个评卷任务<br>
|
|
|
* 暂时不用到BACKED状态,直接等同于重置该评卷任务
|
|
|
*
|
|
|
- * @param library
|
|
|
- * - 正评任务
|
|
|
+ * @param library - 正评任务
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -837,13 +729,14 @@ public class MarkServiceImpl implements MarkService {
|
|
|
specialTagDao.deleteByLibraryId(library.getId());
|
|
|
resetStudentGroup(library.getStudentId(), library.getExamId(), library.getSubjectCode(),
|
|
|
library.getGroupNumber());
|
|
|
- problemHistoryDao.resetByLibraryId(library.getId(), HistoryStatus.WAITING, userId, HistoryStatus.BACK,
|
|
|
- new Date());
|
|
|
+ problemHistoryDao
|
|
|
+ .resetByLibraryId(library.getId(), HistoryStatus.WAITING, userId, HistoryStatus.BACK, new Date());
|
|
|
// 开启三评时,打回1,2任务则删除第3条任务
|
|
|
long count = libraryDao.countByStudentIdAndGroupNumber(library.getStudentId(), library.getGroupNumber());
|
|
|
if (library.getTaskNumber() != 3 && count == 3) {
|
|
|
- MarkLibrary third = libraryDao.findByStudentIdAndGroupNumberAndTaskNumber(library.getStudentId(),
|
|
|
- library.getGroupNumber(), 3);
|
|
|
+ MarkLibrary third = libraryDao
|
|
|
+ .findByStudentIdAndGroupNumberAndTaskNumber(library.getStudentId(), library.getGroupNumber(),
|
|
|
+ 3);
|
|
|
trackDao.deleteByLibraryId(third.getId());
|
|
|
specialTagDao.deleteByLibraryId(third.getId());
|
|
|
problemHistoryDao.deleteByLibraryId(third.getId());
|
|
@@ -860,8 +753,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 管理员/组长重置某个试评任务
|
|
|
*
|
|
|
- * @param library
|
|
|
- * - 试评任务
|
|
|
+ * @param library - 试评任务
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -879,8 +771,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 管理员/组长处理仲裁卷
|
|
|
*
|
|
|
- * @param history
|
|
|
- * - 仲裁卷
|
|
|
+ * @param history - 仲裁卷
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -991,12 +882,12 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
return -1;
|
|
|
});
|
|
|
- Double score1 = list.get(0).getHeaderScore() != null ? list.get(0).getHeaderScore() : list.get(0)
|
|
|
- .getMarkerScore();
|
|
|
- Double score2 = list.get(1).getHeaderScore() != null ? list.get(1).getHeaderScore() : list.get(1)
|
|
|
- .getMarkerScore();
|
|
|
- Double score3 = list.get(2).getHeaderScore() != null ? list.get(2).getHeaderScore() : list.get(2)
|
|
|
- .getMarkerScore();
|
|
|
+ Double score1 =
|
|
|
+ list.get(0).getHeaderScore() != null ? list.get(0).getHeaderScore() : list.get(0).getMarkerScore();
|
|
|
+ Double score2 =
|
|
|
+ list.get(1).getHeaderScore() != null ? list.get(1).getHeaderScore() : list.get(1).getMarkerScore();
|
|
|
+ Double score3 =
|
|
|
+ list.get(2).getHeaderScore() != null ? list.get(2).getHeaderScore() : list.get(2).getMarkerScore();
|
|
|
if ((score3 - score2) <= (score2 - score1)) {
|
|
|
list.remove(0);
|
|
|
} else {
|
|
@@ -1068,8 +959,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 更新某个评卷分组已评任务数量
|
|
|
*
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
+ * @param group - 评卷分组
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -1077,7 +967,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
if (group.getStatus() == MarkStatus.FORMAL || group.getStatus() == MarkStatus.FINISH) {
|
|
|
groupDao.updateMarkedCount(group.getExamId(), group.getSubjectCode(), group.getNumber(), (int) libraryDao
|
|
|
.countByExamIdAndSubjectCodeAndGroupNumberAndStatus(group.getExamId(), group.getSubjectCode(),
|
|
|
- group.getNumber(), LibraryStatus.MARKED, LibraryStatus.ARBITRATED, LibraryStatus.INSPECTED));
|
|
|
+ group.getNumber(), LibraryStatus.MARKED, LibraryStatus.ARBITRATED,
|
|
|
+ LibraryStatus.INSPECTED));
|
|
|
} else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
|
groupDao.updateMarkedCount(group.getExamId(), group.getSubjectCode(), group.getNumber(),
|
|
|
(int) trialLibraryDao.countMarked(group.getExamId(), group.getSubjectCode(), group.getNumber()));
|
|
@@ -1087,20 +978,21 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 更新某个评卷分组评卷任务总量
|
|
|
*
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
+ * @param group - 评卷分组
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void updateLibraryCount(MarkGroup group) {
|
|
|
if (group.getStatus() == MarkStatus.FORMAL || group.getStatus() == MarkStatus.FINISH) {
|
|
|
- group.setLibraryCount((int) libraryDao.countByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(),
|
|
|
- group.getSubjectCode(), group.getNumber()));
|
|
|
+ group.setLibraryCount((int) libraryDao
|
|
|
+ .countByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber()));
|
|
|
groupDao.updateLibraryCount(group.getExamId(), group.getSubjectCode(), group.getNumber(),
|
|
|
group.getLibraryCount());
|
|
|
} else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
|
- group.setLibraryCount((int) trialLibraryDao.countByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(),
|
|
|
- group.getSubjectCode(), group.getNumber()));
|
|
|
+ group.setLibraryCount((int) trialLibraryDao
|
|
|
+ .countByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber()));
|
|
|
groupDao.updateLibraryCount(group.getExamId(), group.getSubjectCode(), group.getNumber(),
|
|
|
group.getLibraryCount());
|
|
|
}
|
|
@@ -1109,10 +1001,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 更新某个科目所有评卷分组评卷任务数量
|
|
|
*
|
|
|
- * @param examId
|
|
|
- * - 考试ID
|
|
|
- * @param subjectCode
|
|
|
- * - 科目代码
|
|
|
+ * @param examId - 考试ID
|
|
|
+ * @param subjectCode - 科目代码
|
|
|
*/
|
|
|
@Transactional
|
|
|
@Override
|
|
@@ -1127,12 +1017,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 根据考生、学习中心、评卷分组构造正式评卷任务
|
|
|
*
|
|
|
- * @param student
|
|
|
- * - 考生
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
- * @param subject
|
|
|
- * - 科目
|
|
|
+ * @param student - 考生
|
|
|
+ * @param group - 评卷分组
|
|
|
+ * @param subject - 科目
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -1158,14 +1045,15 @@ public class MarkServiceImpl implements MarkService {
|
|
|
} else {
|
|
|
double studentCount = subject.getUploadCount();
|
|
|
double libraryCount = group.getLibraryCount();
|
|
|
- double doubleCount = libraryDao.countByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(
|
|
|
- group.getExamId(), group.getSubjectCode(), group.getNumber(), 2);
|
|
|
+ double doubleCount = libraryDao
|
|
|
+ .countByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(group.getExamId(),
|
|
|
+ group.getSubjectCode(), group.getNumber(), 2);
|
|
|
int expectCount = (int) (studentCount * group.getDoubleRate());
|
|
|
// 随机数判断加入当前已经生成双评任务的比例加权
|
|
|
// 实际双评任务数小于理论生成数 &&(剩余未生成双评的考生数量小于剩余应生成的数量||随机比例)
|
|
|
- needDouble = doubleCount < expectCount
|
|
|
- && ((studentCount - libraryCount + doubleCount) <= (expectCount - doubleCount) || Math
|
|
|
- .random() < group.getDoubleRate() + 0.1);
|
|
|
+ needDouble = doubleCount < expectCount && (
|
|
|
+ (studentCount - libraryCount + doubleCount) <= (expectCount - doubleCount)
|
|
|
+ || Math.random() < group.getDoubleRate() + 0.1);
|
|
|
}
|
|
|
if (needDouble) {
|
|
|
library = new MarkLibrary();
|
|
@@ -1190,10 +1078,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 根据考生、学习中心、评卷分组构造试评评卷任务
|
|
|
*
|
|
|
- * @param student
|
|
|
- * - 考生
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
+ * @param student - 考生
|
|
|
+ * @param group - 评卷分组
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -1211,25 +1097,6 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-<<<<<<< HEAD
|
|
|
- /**
|
|
|
- * 领取试评评卷任务时,用来区分的唯一标识
|
|
|
- *
|
|
|
- * @param library
|
|
|
- * - 试评任务
|
|
|
- */
|
|
|
- private String getApplyTaskId(TrialLibrary library, Marker marker) {
|
|
|
- return library.getId() + "_" + marker.getId();
|
|
|
-=======
|
|
|
- private String getGroupKey(MarkGroup group) {
|
|
|
- return group.getExamId() + "_" + group.getSubjectCode() + "_" + group.getNumber();
|
|
|
- }
|
|
|
-
|
|
|
- private String getGroupKey(Marker marker) {
|
|
|
- return marker.getExamId() + "_" + marker.getSubjectCode() + "_" + marker.getGroupNumber();
|
|
|
->>>>>>> release_1.3.1
|
|
|
- }
|
|
|
-
|
|
|
private String getGroupKey(MarkGroup group) {
|
|
|
return group.getExamId() + "_" + group.getSubjectCode() + "_" + group.getNumber();
|
|
|
}
|
|
@@ -1241,8 +1108,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 重置评卷分组的连带操作
|
|
|
*
|
|
|
- * @param group
|
|
|
- * - 评卷分组
|
|
|
+ * @param group - 评卷分组
|
|
|
*/
|
|
|
private void resetGroup(MarkGroup group) {
|
|
|
if (group.getStatus() == MarkStatus.FORMAL) {
|
|
@@ -1255,8 +1121,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
group.getNumber());
|
|
|
libraryDao.resetByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
group.getNumber(), LibraryStatus.WAITING);
|
|
|
- libraryDao.deleteByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(group.getExamId(),
|
|
|
- group.getSubjectCode(), group.getNumber(), 3);
|
|
|
+ libraryDao
|
|
|
+ .deleteByExamIdAndSubjectCodeAndGroupNumberAndTaskNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber(), 3);
|
|
|
markerDao.resetByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
group.getNumber());
|
|
|
resetStudentGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
@@ -1275,8 +1142,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
/**
|
|
|
* 计算并更新指定评卷员的评卷质量指标
|
|
|
*
|
|
|
- * @param marker
|
|
|
- * - 评卷员
|
|
|
+ * @param marker - 评卷员
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -1367,8 +1233,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
updateStudentGroupScore(studentId, group.getExamId(), group.getSubjectCode(), group.getNumber(),
|
|
|
group.getMarkScore(), group.getMarkScoreDetail());
|
|
|
// 未分组的题目
|
|
|
- long unGroupQuestionCount = questionDao.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(
|
|
|
- group.getExamId(), group.getSubjectCode(), false);
|
|
|
+ long unGroupQuestionCount = questionDao
|
|
|
+ .countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(group.getExamId(), group.getSubjectCode(),
|
|
|
+ false);
|
|
|
long groupCount = groupDao.countByExamIdAndSubjectCode(group.getExamId(), group.getSubjectCode());
|
|
|
checkStudentSubjective(studentId, groupCount, unGroupQuestionCount);
|
|
|
} else {
|
|
@@ -1403,8 +1270,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
groupStudentDao.updateStatusByExamIdAndSubjectCodeAndGroupNumber(examId, subjectCode, groupNumber,
|
|
|
SubjectiveStatus.UNMARK);
|
|
|
scoreDao.deleteByExamIdAndSubjectCodeAndGroupNumber(examId, subjectCode, groupNumber);
|
|
|
- studentService.updateSubjectiveStatusAndScoreAndInspectorId(examId, subjectCode, SubjectiveStatus.UNMARK, 0,
|
|
|
- null, null, null);
|
|
|
+ studentService
|
|
|
+ .updateSubjectiveStatusAndScoreAndInspectorId(examId, subjectCode, SubjectiveStatus.UNMARK, 0, null,
|
|
|
+ null, null);
|
|
|
}
|
|
|
|
|
|
private void updateStudentGroupStatus(Integer studentId, Integer examId, String subjectCode, Integer groupNumber,
|
|
@@ -1421,8 +1289,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
private void updateStudentGroupScore(Integer studentId, Integer examId, String subjectCode, Integer groupNumber,
|
|
|
double score, List<ScoreItem> scoreList) {
|
|
|
// scoreDao.deleteByStudentIdAndGroupNumber(studentId, groupNumber);
|
|
|
- List<ExamQuestion> questions = questionDao.findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(examId,
|
|
|
- subjectCode, false, groupNumber);
|
|
|
+ List<ExamQuestion> questions = questionDao
|
|
|
+ .findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(examId, subjectCode, false, groupNumber);
|
|
|
for (int i = 0; i < scoreList.size(); i++) {
|
|
|
ScoreItem item = scoreList.get(i);
|
|
|
ExamQuestion question = questions.get(i);
|
|
@@ -1468,8 +1336,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
if (count > 0) {
|
|
|
updateMarkedCount(group);
|
|
|
resetStudentGroup(student.getId(), group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- studentService.updateSubjectiveStatusAndTimeAndInspectorId(student.getId(), SubjectiveStatus.UNMARK, null,
|
|
|
- null);
|
|
|
+ studentService
|
|
|
+ .updateSubjectiveStatusAndTimeAndInspectorId(student.getId(), SubjectiveStatus.UNMARK, null, null);
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
@@ -1496,8 +1364,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
for (Integer groupNumber : map.keySet()) {
|
|
|
List<MarkLibrary> list = libraryDao.findByStudentIdAndGroupNumber(student.getId(), groupNumber);
|
|
|
- List<ExamQuestion> questions = questionDao.findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(
|
|
|
- student.getExamId(), student.getSubjectCode(), false, groupNumber);
|
|
|
+ List<ExamQuestion> questions = questionDao
|
|
|
+ .findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(student.getExamId(), student.getSubjectCode(),
|
|
|
+ false, groupNumber);
|
|
|
List<MarkStepDTO> qList = map.get(groupNumber);
|
|
|
MarkGroup group = groupDao.findOne(student.getExamId(), student.getSubjectCode(), groupNumber);
|
|
|
int count = 0;
|
|
@@ -1522,12 +1391,12 @@ public class MarkServiceImpl implements MarkService {
|
|
|
if (library.getStatus().equals(LibraryStatus.MARKED)) {
|
|
|
List<ScoreItem> sList = library.getScoreList();
|
|
|
for (MarkStepDTO markStepDTO : qList) {
|
|
|
- trackDao.deleteByLibraryIdAndQuestionNumber(library.getId(), markStepDTO.getMainNumber() + "."
|
|
|
- + markStepDTO.getSubNumber());
|
|
|
+ trackDao.deleteByLibraryIdAndQuestionNumber(library.getId(),
|
|
|
+ markStepDTO.getMainNumber() + "." + markStepDTO.getSubNumber());
|
|
|
for (int i = 0; i < questions.size(); i++) {
|
|
|
ExamQuestion question = questions.get(i);
|
|
|
- if (markStepDTO.getMainNumber() == question.getMainNumber()
|
|
|
- && markStepDTO.getSubNumber().equals(question.getSubNumber())) {
|
|
|
+ if (markStepDTO.getMainNumber() == question.getMainNumber() && markStepDTO.getSubNumber()
|
|
|
+ .equals(question.getSubNumber())) {
|
|
|
sList.remove(i);
|
|
|
sList.add(i, new ScoreItem(false));
|
|
|
}
|
|
@@ -1543,8 +1412,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
markerScoreList.append(",");
|
|
|
}
|
|
|
}
|
|
|
- if (libraryDao.updateMarkerResult(library.getId(), LibraryStatus.REJECTED, library.getMarkerId(),
|
|
|
- null, markerScoreList.toString(), null, null, LibraryStatus.MARKED) == 1) {
|
|
|
+ if (libraryDao
|
|
|
+ .updateMarkerResult(library.getId(), LibraryStatus.REJECTED, library.getMarkerId(), null,
|
|
|
+ markerScoreList.toString(), null, null, LibraryStatus.MARKED) == 1) {
|
|
|
count++;
|
|
|
}
|
|
|
}
|
|
@@ -1552,8 +1422,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
if (count > 0) {
|
|
|
updateMarkedCount(group);
|
|
|
resetStudentGroup(student.getId(), student.getExamId(), student.getSubjectCode(), groupNumber);
|
|
|
- studentService.updateSubjectiveStatusAndTimeAndInspectorId(student.getId(), SubjectiveStatus.UNMARK,
|
|
|
- null, null);
|
|
|
+ studentService
|
|
|
+ .updateSubjectiveStatusAndTimeAndInspectorId(student.getId(), SubjectiveStatus.UNMARK, null,
|
|
|
+ null);
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
@@ -1573,16 +1444,18 @@ public class MarkServiceImpl implements MarkService {
|
|
|
examService.updateObjectiveStatus(examId, ObjectiveStatus.WAITING);
|
|
|
} else {
|
|
|
// 未分组的题目
|
|
|
- long unGroupQuestionCount = questionDao.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId,
|
|
|
- subjectCode, false);
|
|
|
+ long unGroupQuestionCount = questionDao
|
|
|
+ .countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId, subjectCode, false);
|
|
|
// 考生整体状态与总分更新
|
|
|
long groupCount = groupDao.countByExamIdAndSubjectCode(examId, subjectCode);
|
|
|
if (groupCount == 0 || unGroupQuestionCount > 0) {
|
|
|
- studentService.updateSubjectiveStatusAndScoreAndInspectorId(examId, subjectCode,
|
|
|
- SubjectiveStatus.UNMARK, 0, null, null, null);
|
|
|
+ studentService
|
|
|
+ .updateSubjectiveStatusAndScoreAndInspectorId(examId, subjectCode, SubjectiveStatus.UNMARK,
|
|
|
+ 0, null, null, null);
|
|
|
} else {
|
|
|
- List<Integer> studentList = studentService.findIdByExamIdAndSubjectCodeAndSubjectiveStatus(examId,
|
|
|
- subjectCode, SubjectiveStatus.UNMARK, SubjectiveStatus.MARKED, SubjectiveStatus.INSPECTED);
|
|
|
+ List<Integer> studentList = studentService
|
|
|
+ .findIdByExamIdAndSubjectCodeAndSubjectiveStatus(examId, subjectCode,
|
|
|
+ SubjectiveStatus.UNMARK, SubjectiveStatus.MARKED, SubjectiveStatus.INSPECTED);
|
|
|
for (Integer studentId : studentList) {
|
|
|
checkStudentSubjective(studentId, groupCount, unGroupQuestionCount);
|
|
|
}
|
|
@@ -1603,16 +1476,17 @@ public class MarkServiceImpl implements MarkService {
|
|
|
if (group.getStatus() == MarkStatus.FINISH) {
|
|
|
return false;
|
|
|
}
|
|
|
- List<ExamQuestion> questions = questionDao.findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(
|
|
|
- library.getExamId(), library.getSubjectCode(), false, library.getGroupNumber());
|
|
|
+ List<ExamQuestion> questions = questionDao
|
|
|
+ .findByExamIdAndSubjectCodeAndObjectiveAndGroupNumber(library.getExamId(), library.getSubjectCode(),
|
|
|
+ false, library.getGroupNumber());
|
|
|
List<ScoreItem> sList = library.getScoreList();
|
|
|
for (MarkStepDTO markStepDTO : questionList) {
|
|
|
- trackDao.deleteByLibraryIdAndQuestionNumber(library.getId(), markStepDTO.getMainNumber() + "."
|
|
|
- + markStepDTO.getSubNumber());
|
|
|
+ trackDao.deleteByLibraryIdAndQuestionNumber(library.getId(),
|
|
|
+ markStepDTO.getMainNumber() + "." + markStepDTO.getSubNumber());
|
|
|
for (int i = 0; i < questions.size(); i++) {
|
|
|
ExamQuestion question = questions.get(i);
|
|
|
- if (markStepDTO.getMainNumber() == question.getMainNumber()
|
|
|
- && markStepDTO.getSubNumber().equals(question.getSubNumber())) {
|
|
|
+ if (markStepDTO.getMainNumber() == question.getMainNumber() && markStepDTO.getSubNumber()
|
|
|
+ .equals(question.getSubNumber())) {
|
|
|
sList.remove(i);
|
|
|
sList.add(i, new ScoreItem(false));
|
|
|
}
|
|
@@ -1632,13 +1506,14 @@ public class MarkServiceImpl implements MarkService {
|
|
|
markerScoreList.toString(), null, null, LibraryStatus.MARKED) == 1) {
|
|
|
resetStudentGroup(library.getStudentId(), library.getExamId(), library.getSubjectCode(),
|
|
|
library.getGroupNumber());
|
|
|
- problemHistoryDao.resetByLibraryId(library.getId(), HistoryStatus.WAITING, userId, HistoryStatus.BACK,
|
|
|
- new Date());
|
|
|
+ problemHistoryDao
|
|
|
+ .resetByLibraryId(library.getId(), HistoryStatus.WAITING, userId, HistoryStatus.BACK, new Date());
|
|
|
// 开启三评时,打回1,2任务则删除第3条任务
|
|
|
long count = libraryDao.countByStudentIdAndGroupNumber(library.getStudentId(), library.getGroupNumber());
|
|
|
if (library.getTaskNumber() != 3 && count == 3) {
|
|
|
- MarkLibrary third = libraryDao.findByStudentIdAndGroupNumberAndTaskNumber(library.getStudentId(),
|
|
|
- library.getGroupNumber(), 3);
|
|
|
+ MarkLibrary third = libraryDao
|
|
|
+ .findByStudentIdAndGroupNumberAndTaskNumber(library.getStudentId(), library.getGroupNumber(),
|
|
|
+ 3);
|
|
|
trackDao.deleteByLibraryId(third.getId());
|
|
|
specialTagDao.deleteByLibraryId(third.getId());
|
|
|
problemHistoryDao.deleteByLibraryId(third.getId());
|