|
@@ -15,7 +15,6 @@ import cn.com.qmth.stmms.biz.campus.model.Campus;
|
|
|
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.MarkerDao;
|
|
|
-import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
|
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;
|
|
@@ -96,9 +95,6 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Autowired
|
|
|
private TrialTagDao trialTagDao;
|
|
|
|
|
|
- @Autowired
|
|
|
- private MarkLockService lockService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private ExamService examService;
|
|
|
|
|
@@ -188,14 +184,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void resetByGroup(MarkGroup group) {
|
|
|
- try {
|
|
|
- lockService.lockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- resetGroup(group);
|
|
|
- } catch (Exception e) {
|
|
|
- throw e;
|
|
|
- } finally {
|
|
|
- lockService.unlockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- }
|
|
|
+ resetGroup(group);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -206,45 +195,36 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void deleteGroup(MarkGroup group) {
|
|
|
- try {
|
|
|
- lockService.lockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- // 试评相关数据
|
|
|
- trialTrackDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- group.getNumber());
|
|
|
- trialTagDao.deleteByExamAndSubjectAndGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- trialHistoryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- group.getNumber());
|
|
|
- trialLibraryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- group.getNumber());
|
|
|
- // 正评相关数据
|
|
|
- trackDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- group.getNumber());
|
|
|
- specialTagDao.deleteByExamAndSubjectAndGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- arbitrateDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- group.getNumber());
|
|
|
- libraryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- group.getNumber());
|
|
|
- // 评卷员数据
|
|
|
- markerDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- group.getNumber());
|
|
|
- // 小题数据
|
|
|
- questionDao.deleteByExamIdAndSubjectCodeAndObjectiveAndMainNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- false, group.getNumber());
|
|
|
-
|
|
|
- releaseByGroup(group);
|
|
|
- groupDao.delete(group);
|
|
|
- // 科目总分
|
|
|
- subjectService.updateScore(group.getExamId(), group.getSubjectCode(), false,
|
|
|
- sumTotalScore(group.getExamId(), group.getSubjectCode()));
|
|
|
- // 需要重新统分
|
|
|
- Exam exam = examService.findById(group.getExamId());
|
|
|
- exam.setNeedCalculate(true);
|
|
|
- examService.save(exam);
|
|
|
- } catch (Exception e) {
|
|
|
- throw e;
|
|
|
- } finally {
|
|
|
- lockService.unlockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- }
|
|
|
+ // 试评相关数据
|
|
|
+ trialTrackDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber());
|
|
|
+ trialTagDao.deleteByExamAndSubjectAndGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
+ trialHistoryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber());
|
|
|
+ trialLibraryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber());
|
|
|
+ // 正评相关数据
|
|
|
+ trackDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber());
|
|
|
+ specialTagDao.deleteByExamAndSubjectAndGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
+ arbitrateDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber());
|
|
|
+ libraryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber());
|
|
|
+ // 评卷员数据
|
|
|
+ markerDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber());
|
|
|
+ // 小题数据
|
|
|
+ questionDao.deleteByExamIdAndSubjectCodeAndObjectiveAndMainNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ false, group.getNumber());
|
|
|
+
|
|
|
+ releaseByGroup(group);
|
|
|
+ groupDao.delete(group);
|
|
|
+ // 科目总分
|
|
|
+ subjectService.updateScore(group.getExamId(), group.getSubjectCode(), false,
|
|
|
+ sumTotalScore(group.getExamId(), group.getSubjectCode()));
|
|
|
+ // 需要重新统分
|
|
|
+ examService.updateNeedCalculate(group.getExamId(), true);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -255,38 +235,29 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void updateGroup(MarkGroup group, List<Double> scores, ScorePolicy policy) {
|
|
|
- try {
|
|
|
- lockService.lockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
-
|
|
|
- questionDao.deleteByExamIdAndSubjectCodeAndObjectiveAndMainNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- false, group.getNumber());
|
|
|
- int i = 0;
|
|
|
- double totalScore = 0d;
|
|
|
- for (Double score : scores) {
|
|
|
- i++;
|
|
|
- totalScore += score;
|
|
|
- ExamQuestion question = new ExamQuestion();
|
|
|
- question.setExamId(group.getExamId());
|
|
|
- question.setSubjectCode(group.getSubjectCode());
|
|
|
- question.setMainTitle(group.getTitle());
|
|
|
- question.setMainNumber(group.getNumber());
|
|
|
- question.setSubNumber(i);
|
|
|
- question.setObjective(false);
|
|
|
- question.setTotalScore(score);
|
|
|
- question.setIntervalScore(1d);
|
|
|
- questionDao.saveAndFlush(question);
|
|
|
- }
|
|
|
- groupDao.updateTotalScore(group.getExamId(), group.getSubjectCode(), group.getNumber(), totalScore);
|
|
|
- groupDao.updateScorePolicy(group.getExamId(), group.getSubjectCode(), group.getNumber(), policy);
|
|
|
- subjectService.updateScore(group.getExamId(), group.getSubjectCode(), false,
|
|
|
- sumTotalScore(group.getExamId(), group.getSubjectCode()));
|
|
|
- resetGroup(group);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("update group error", e);
|
|
|
- throw new RuntimeException(e);
|
|
|
- } finally {
|
|
|
- lockService.unlockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- }
|
|
|
+ questionDao.deleteByExamIdAndSubjectCodeAndObjectiveAndMainNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ false, group.getNumber());
|
|
|
+ int i = 0;
|
|
|
+ double totalScore = 0d;
|
|
|
+ for (Double score : scores) {
|
|
|
+ i++;
|
|
|
+ totalScore += score;
|
|
|
+ ExamQuestion question = new ExamQuestion();
|
|
|
+ question.setExamId(group.getExamId());
|
|
|
+ question.setSubjectCode(group.getSubjectCode());
|
|
|
+ question.setMainTitle(group.getTitle());
|
|
|
+ question.setMainNumber(group.getNumber());
|
|
|
+ question.setSubNumber(i);
|
|
|
+ question.setObjective(false);
|
|
|
+ question.setTotalScore(score);
|
|
|
+ question.setIntervalScore(1d);
|
|
|
+ questionDao.saveAndFlush(question);
|
|
|
+ }
|
|
|
+ groupDao.updateTotalScore(group.getExamId(), group.getSubjectCode(), group.getNumber(), totalScore);
|
|
|
+ groupDao.updateScorePolicy(group.getExamId(), group.getSubjectCode(), group.getNumber(), policy);
|
|
|
+ subjectService.updateScore(group.getExamId(), group.getSubjectCode(), false,
|
|
|
+ sumTotalScore(group.getExamId(), group.getSubjectCode()));
|
|
|
+ resetGroup(group);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -383,33 +354,24 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void resetMarker(Marker marker) {
|
|
|
- try {
|
|
|
- lockService.waitUnlockGroup(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
- lockService.lockMarker(marker.getId());
|
|
|
-
|
|
|
- MarkGroup group = groupDao.findOne(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
- if (group == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
- if (group.getStatus() == MarkStatus.FORMAL) {
|
|
|
- // 仲裁和等待仲裁的任务不被重置
|
|
|
- trackDao.deleteByMarkerId(marker.getId(), LibraryStatus.ARBITRATED, LibraryStatus.WAIT_ARBITRATE);
|
|
|
- specialTagDao.deleteByMarkerId(marker.getId(), LibraryStatus.ARBITRATED, LibraryStatus.WAIT_ARBITRATE);
|
|
|
- libraryDao.resetByMarkerId(marker.getId(), LibraryStatus.WAITING, LibraryStatus.ARBITRATED,
|
|
|
- LibraryStatus.WAIT_ARBITRATE);
|
|
|
- markerDao.resetById(marker.getId());
|
|
|
- } else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
|
- trialTagDao.deleteByMarkerId(marker.getId());
|
|
|
- trialTrackDao.deleteByMarkerId(marker.getId());
|
|
|
- trialHistoryDao.deleteByMarkerId(marker.getId());
|
|
|
- }
|
|
|
- updateMarkedCount(group);
|
|
|
- releaseByMarker(marker);
|
|
|
- } catch (Exception e) {
|
|
|
- throw e;
|
|
|
- } finally {
|
|
|
- lockService.unlockMarker(marker.getId());
|
|
|
+ MarkGroup group = groupDao.findOne(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
+ if (group == null || !markerDao.exists(marker.getId())) {
|
|
|
+ return;
|
|
|
}
|
|
|
+ if (group.getStatus() == MarkStatus.FORMAL) {
|
|
|
+ // 仲裁和等待仲裁的任务不被重置
|
|
|
+ trackDao.deleteByMarkerId(marker.getId(), LibraryStatus.ARBITRATED, LibraryStatus.WAIT_ARBITRATE);
|
|
|
+ specialTagDao.deleteByMarkerId(marker.getId(), LibraryStatus.ARBITRATED, LibraryStatus.WAIT_ARBITRATE);
|
|
|
+ libraryDao.resetByMarkerId(marker.getId(), LibraryStatus.WAITING, LibraryStatus.ARBITRATED,
|
|
|
+ LibraryStatus.WAIT_ARBITRATE);
|
|
|
+ markerDao.resetById(marker.getId());
|
|
|
+ } else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
|
+ trialTagDao.deleteByMarkerId(marker.getId());
|
|
|
+ trialTrackDao.deleteByMarkerId(marker.getId());
|
|
|
+ trialHistoryDao.deleteByMarkerId(marker.getId());
|
|
|
+ }
|
|
|
+ updateMarkedCount(group);
|
|
|
+ releaseByMarker(marker);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -420,25 +382,18 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void deleteByStudent(ExamStudent student) {
|
|
|
- try {
|
|
|
- lockService.lockStudent(student.getId());
|
|
|
- // 正评相关数据
|
|
|
- trackDao.deleteByStudentId(student.getId());
|
|
|
- specialTagDao.deleteByStudentId(student.getId());
|
|
|
- arbitrateDao.deleteByStudentId(student.getId());
|
|
|
- libraryDao.deleteByStudentId(student.getId());
|
|
|
- // 试评相关数据
|
|
|
- trialTrackDao.deleteByStudentId(student.getId());
|
|
|
- trialTagDao.deleteByStudentId(student.getId());
|
|
|
- trialHistoryDao.deleteByStudentId(student.getId());
|
|
|
- trialLibraryDao.deleteByStudentId(student.getId());
|
|
|
-
|
|
|
- updateAllCount(student.getExamId(), student.getSubjectCode());
|
|
|
- } catch (Exception e) {
|
|
|
- throw e;
|
|
|
- } finally {
|
|
|
- lockService.unlockStudent(student.getId());
|
|
|
- }
|
|
|
+ // 正评相关数据
|
|
|
+ trackDao.deleteByStudentId(student.getId());
|
|
|
+ specialTagDao.deleteByStudentId(student.getId());
|
|
|
+ arbitrateDao.deleteByStudentId(student.getId());
|
|
|
+ libraryDao.deleteByStudentId(student.getId());
|
|
|
+ // 试评相关数据
|
|
|
+ trialTrackDao.deleteByStudentId(student.getId());
|
|
|
+ trialTagDao.deleteByStudentId(student.getId());
|
|
|
+ trialHistoryDao.deleteByStudentId(student.getId());
|
|
|
+ trialLibraryDao.deleteByStudentId(student.getId());
|
|
|
+
|
|
|
+ updateAllCount(student.getExamId(), student.getSubjectCode());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -457,60 +412,53 @@ public class MarkServiceImpl implements MarkService {
|
|
|
|| group.getStatus().getValue() != result.getStatusValue()) {
|
|
|
return false;
|
|
|
}
|
|
|
- // 等待大题释放锁定
|
|
|
- lockService.waitUnlockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- // 等待考生释放锁定
|
|
|
- lockService.waitUnlockStudent(result.getStudentId());
|
|
|
- try {
|
|
|
- // 根据评卷状态选择读取不同的评卷任务
|
|
|
- if (group.getStatus() == MarkStatus.FORMAL) {
|
|
|
- MarkLibrary library = libraryDao.findOne(result.getLibraryId());
|
|
|
- if (library != null && library.getExamId().equals(group.getExamId())
|
|
|
- && library.getSubjectCode().equals(group.getSubjectCode())
|
|
|
- && library.getGroupNumber().equals(group.getNumber())
|
|
|
- && result.getTotalScore() <= group.getTotalScore()
|
|
|
- && StringUtils.isNotBlank(result.getScoreList())) {
|
|
|
- if (submitLibrary(library, marker, group, result)) {
|
|
|
- updateMarkedCount(group);
|
|
|
- releaseLibrary(library, marker);
|
|
|
- return true;
|
|
|
- }
|
|
|
+
|
|
|
+ // 根据评卷状态选择读取不同的评卷任务
|
|
|
+ if (group.getStatus() == MarkStatus.FORMAL) {
|
|
|
+ MarkLibrary library = libraryDao.findOne(result.getLibraryId());
|
|
|
+ if (library != null && library.getExamId().equals(group.getExamId())
|
|
|
+ && library.getSubjectCode().equals(group.getSubjectCode())
|
|
|
+ && library.getGroupNumber().equals(group.getNumber())
|
|
|
+ && result.getTotalScore() <= group.getTotalScore()
|
|
|
+ && StringUtils.isNotBlank(result.getScoreList())) {
|
|
|
+ if (submitLibrary(library, marker, group, result)) {
|
|
|
+ updateMarkedCount(group);
|
|
|
+ releaseLibrary(library, marker);
|
|
|
+ return true;
|
|
|
}
|
|
|
- } 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.getTotalScore() <= group.getTotalScore()
|
|
|
- && StringUtils.isNotBlank(result.getScoreList())) {
|
|
|
- TrialHistory history = new TrialHistory();
|
|
|
- history.setExamId(library.getExamId());
|
|
|
- history.setSubjectCode(library.getSubjectCode());
|
|
|
- history.setGroupNumber(library.getGroupNumber());
|
|
|
- history.setLibraryId(library.getId());
|
|
|
- history.setStudentId(library.getStudentId());
|
|
|
- history.setMarkerId(marker.getId());
|
|
|
- history.setMarkerTime(new Date());
|
|
|
- history.setMarkerScore(result.getTotalScore());
|
|
|
- history.setMarkerScoreList(result.getScoreList());
|
|
|
- history = trialHistoryDao.save(history);
|
|
|
- if (history != null) {
|
|
|
- if (result.getTrackList() != null) {
|
|
|
- trialTrackDao.deleteByLibraryIdAndMarkerId(history.getLibraryId(), history.getMarkerId());
|
|
|
- trialTrackDao.save(result.getTrackList(history));
|
|
|
- }
|
|
|
- if (result.getTagList() != null) {
|
|
|
- trialTagDao.deleteByLibraryIdAndMarkerId(history.getLibraryId(), history.getMarkerId());
|
|
|
- trialTagDao.save(result.getTagList(history));
|
|
|
- }
|
|
|
- updateMarkedCount(group);
|
|
|
- releaseLibrary(library, marker);
|
|
|
- return true;
|
|
|
+ }
|
|
|
+ } 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.getTotalScore() <= group.getTotalScore()
|
|
|
+ && StringUtils.isNotBlank(result.getScoreList())) {
|
|
|
+ TrialHistory history = new TrialHistory();
|
|
|
+ history.setExamId(library.getExamId());
|
|
|
+ history.setSubjectCode(library.getSubjectCode());
|
|
|
+ history.setGroupNumber(library.getGroupNumber());
|
|
|
+ history.setLibraryId(library.getId());
|
|
|
+ history.setStudentId(library.getStudentId());
|
|
|
+ history.setMarkerId(marker.getId());
|
|
|
+ history.setMarkerTime(new Date());
|
|
|
+ history.setMarkerScore(result.getTotalScore());
|
|
|
+ history.setMarkerScoreList(result.getScoreList());
|
|
|
+ history = trialHistoryDao.save(history);
|
|
|
+ if (history != null) {
|
|
|
+ if (result.getTrackList() != null) {
|
|
|
+ trialTrackDao.deleteByLibraryIdAndMarkerId(history.getLibraryId(), history.getMarkerId());
|
|
|
+ trialTrackDao.save(result.getTrackList(history));
|
|
|
+ }
|
|
|
+ if (result.getTagList() != null) {
|
|
|
+ trialTagDao.deleteByLibraryIdAndMarkerId(history.getLibraryId(), history.getMarkerId());
|
|
|
+ trialTagDao.save(result.getTagList(history));
|
|
|
}
|
|
|
+ updateMarkedCount(group);
|
|
|
+ releaseLibrary(library, marker);
|
|
|
+ return true;
|
|
|
}
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- throw new RuntimeException("submit task error", e);
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
@@ -599,7 +547,6 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public boolean backLibrary(MarkLibrary library) {
|
|
|
- lockService.waitUnlockGroup(library.getExamId(), library.getSubjectCode(), library.getGroupNumber());
|
|
|
if (libraryDao.resetById(library.getId(), LibraryStatus.WAITING, LibraryStatus.MARKED) > 0) {
|
|
|
trackDao.deleteByLibraryId(library.getId());
|
|
|
specialTagDao.deleteByLibraryId(library.getId());
|
|
@@ -619,7 +566,6 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Transactional
|
|
|
public boolean resetLibrary(TrialLibrary library) {
|
|
|
if (library != null) {
|
|
|
- lockService.waitUnlockGroup(library.getExamId(), library.getSubjectCode(), library.getGroupNumber());
|
|
|
trialHistoryDao.deleteByLibraryId(library.getId());
|
|
|
trialTrackDao.deleteByLibraryId(library.getId());
|
|
|
trialTagDao.deleteByLibraryId(library.getId());
|
|
@@ -637,13 +583,14 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void processArbitrate(ArbitrateHistory history) {
|
|
|
- lockService.waitUnlockGroup(history.getExamId(), history.getSubjectCode(), history.getGroupNumber());
|
|
|
- arbitrateDao.saveAndFlush(history);
|
|
|
- libraryDao.updateHeaderResult(history.getStudentId(), history.getGroupNumber(), history.getUserId(),
|
|
|
- history.getTotalScore(), history.getScoreList(), history.getUpdateTime(), LibraryStatus.ARBITRATED);
|
|
|
- updateMarkedCount(history.getExamId(), history.getSubjectCode(), history.getGroupNumber());
|
|
|
- scoreCalculate(studentService.findById(history.getStudentId()),
|
|
|
- groupDao.findByExamIdAndSubjectCode(history.getExamId(), history.getSubjectCode()));
|
|
|
+ if (arbitrateDao.exists(history.getId())) {
|
|
|
+ arbitrateDao.saveAndFlush(history);
|
|
|
+ libraryDao.updateHeaderResult(history.getStudentId(), history.getGroupNumber(), history.getUserId(),
|
|
|
+ history.getTotalScore(), history.getScoreList(), history.getUpdateTime(), LibraryStatus.ARBITRATED);
|
|
|
+ updateMarkedCount(history.getExamId(), history.getSubjectCode(), history.getGroupNumber());
|
|
|
+ scoreCalculate(studentService.findById(history.getStudentId()),
|
|
|
+ groupDao.findByExamIdAndSubjectCode(history.getExamId(), history.getSubjectCode()));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -768,7 +715,7 @@ 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) );
|
|
|
+ group.getSubjectCode(), group.getNumber(), LibraryStatus.MARKED, LibraryStatus.ARBITRATED));
|
|
|
} else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
|
groupDao.updateMarkedCount(group.getExamId(), group.getSubjectCode(), group.getNumber(),
|
|
|
(int) trialLibraryDao.countMarked(group.getExamId(), group.getSubjectCode(), group.getNumber()));
|
|
@@ -824,10 +771,6 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void buildFormalLibrary(ExamStudent student, Campus campus, MarkGroup group, ExamSubject subject) {
|
|
|
- // 等待大题释放锁定
|
|
|
- lockService.waitUnlockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- // 等待考生释放锁定
|
|
|
- lockService.waitUnlockStudent(student.getId());
|
|
|
// 查询是否已创建评卷任务
|
|
|
if (libraryDao.countByStudentIdAndGroupNumber(student.getId(), group.getNumber()) == 0) {
|
|
|
MarkLibrary library = new MarkLibrary();
|
|
@@ -884,10 +827,6 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void buildTrialLibrary(ExamStudent student, Campus campus, MarkGroup group) {
|
|
|
- // 等待大题释放锁定
|
|
|
- lockService.waitUnlockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
- // 等待考生释放锁定
|
|
|
- lockService.waitUnlockStudent(student.getId());
|
|
|
// 查询是否已创建评卷任务
|
|
|
if (trialLibraryDao.countByStudentIdAndGroupNumber(student.getId(), group.getNumber()) == 0) {
|
|
|
TrialLibrary library = new TrialLibrary();
|