|
@@ -27,6 +27,7 @@ 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.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;
|
|
@@ -89,6 +90,9 @@ public class MarkServiceImpl implements MarkService {
|
|
|
@Autowired
|
|
|
private TrialTrackDao trialTrackDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TrialTagDao trialTagDao;
|
|
|
+
|
|
|
@Autowired
|
|
|
private MarkLockService lockService;
|
|
|
|
|
@@ -162,19 +166,29 @@ public class MarkServiceImpl implements MarkService {
|
|
|
public void deleteGroup(MarkGroup group) {
|
|
|
try {
|
|
|
lockService.lockGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
-
|
|
|
- questionDao.deleteByExamIdAndSubjectCodeAndPaperTypeAndObjectiveAndMainNumber(group.getExamId(),
|
|
|
- group.getSubjectCode(), null, false, group.getNumber());
|
|
|
- trialLibraryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ // 试评相关数据
|
|
|
+ trialTrackDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
group.getNumber());
|
|
|
+ trialTagDao.deleteByExamAndSubjectAndGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
trialHistoryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
group.getNumber());
|
|
|
- libraryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ 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.deleteByExamIdAndSubjectCodeAndPaperTypeAndObjectiveAndMainNumber(group.getExamId(),
|
|
|
+ group.getSubjectCode(), null, false, group.getNumber());
|
|
|
+ // 科目总分
|
|
|
subjectService.updateScore(group.getExamId(), group.getSubjectCode(), false,
|
|
|
sumTotalScore(group.getExamId(), group.getSubjectCode()));
|
|
|
|
|
@@ -325,12 +339,23 @@ public class MarkServiceImpl implements MarkService {
|
|
|
try {
|
|
|
lockService.waitUnlockGroup(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
lockService.lockMarker(marker.getId());
|
|
|
- // 仲裁和等待仲裁的任务不被重置
|
|
|
- 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);
|
|
|
- updateLibraryCount(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
|
|
|
+
|
|
|
+ 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);
|
|
|
+ } else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
|
+ trialTagDao.deleteByMarkerId(marker.getId());
|
|
|
+ trialTrackDao.deleteByMarkerId(marker.getId());
|
|
|
+ trialHistoryDao.deleteByMarkerId(marker.getId());
|
|
|
+ }
|
|
|
+ updateLibraryCount(group);
|
|
|
releaseByMarker(marker);
|
|
|
} catch (Exception e) {
|
|
|
throw e;
|
|
@@ -349,12 +374,17 @@ public class MarkServiceImpl implements MarkService {
|
|
|
public void deleteByStudent(ExamStudent student) {
|
|
|
try {
|
|
|
lockService.lockStudent(student.getId());
|
|
|
+ // 正评相关数据
|
|
|
trackDao.deleteByStudentId(student.getId());
|
|
|
specialTagDao.deleteByStudentId(student.getId());
|
|
|
- libraryDao.deleteByStudentId(student.getId());
|
|
|
arbitrateDao.deleteByStudentId(student.getId());
|
|
|
- trialLibraryDao.deleteByStudentId(student.getId());
|
|
|
+ libraryDao.deleteByStudentId(student.getId());
|
|
|
+ // 试评相关数据
|
|
|
+ trialTrackDao.deleteByStudentId(student.getId());
|
|
|
+ trialTagDao.deleteByStudentId(student.getId());
|
|
|
trialHistoryDao.deleteByStudentId(student.getId());
|
|
|
+ trialLibraryDao.deleteByStudentId(student.getId());
|
|
|
+
|
|
|
updateLibraryCount(student.getExamId(), student.getSubjectCode());
|
|
|
} catch (Exception e) {
|
|
|
throw e;
|
|
@@ -420,6 +450,10 @@ public class MarkServiceImpl implements MarkService {
|
|
|
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));
|
|
|
+ }
|
|
|
releaseLibrary(library, marker);
|
|
|
return true;
|
|
|
}
|
|
@@ -792,14 +826,17 @@ public class MarkServiceImpl implements MarkService {
|
|
|
private void resetGroup(MarkGroup group) {
|
|
|
groupDao.resetCount(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
if (group.getStatus() == MarkStatus.FORMAL) {
|
|
|
- libraryDao.resetByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
- group.getNumber(), LibraryStatus.WAITING);
|
|
|
- arbitrateDao.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.resetByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber(), LibraryStatus.WAITING);
|
|
|
} else if (group.getStatus() == MarkStatus.TRIAL) {
|
|
|
+ trialTrackDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
+ group.getNumber());
|
|
|
+ trialTagDao.deleteByExamAndSubjectAndGroup(group.getExamId(), group.getSubjectCode(), group.getNumber());
|
|
|
trialHistoryDao.deleteByExamIdAndSubjectCodeAndGroupNumber(group.getExamId(), group.getSubjectCode(),
|
|
|
group.getNumber());
|
|
|
}
|