xiatian 1 سال پیش
والد
کامیت
28b7b574bf

+ 4 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/ExamSubjectDao.java

@@ -81,4 +81,8 @@ public interface ExamSubjectDao extends PagingAndSortingRepository<ExamSubject,
     @Query("select DISTINCT(s.totalScore) from ExamSubject s where s.pk.examId=?1 order by s.totalScore")
     public List<Double> distinctTotalScore(int examId);
 
+    @Modifying
+    @Query("update ExamSubject s set s.inspectRound=1 where s.pk.examId=?1 and s.pk.code=?2")
+	public void resetInspect(int examId, String subjectCode);
+
 }

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/InspectHistoryDao.java

@@ -28,6 +28,8 @@ public interface InspectHistoryDao extends PagingAndSortingRepository<InspectHis
 
 	InspectHistory findByStudentIdAndInspectRound(Integer studentId, Integer inspectRound);
 
+	@Modifying
+	@Query("delete from InspectHistory m where m.studentId=?1 and m.inspectRound=?2")
 	void deleteByStudentIdAndInspectRound(Integer studentId, Integer inspectRound);
 
 }

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java

@@ -192,4 +192,6 @@ public interface ExamStudentService {
 
     public void resetTrial(Integer examId, String subjectCode, boolean trial);
 
+	public void cancelInspect(int examId, String subjectCode);
+
 }

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamSubjectService.java

@@ -56,4 +56,6 @@ public interface ExamSubjectService {
 
     List<Double> distinctTotalScore(int examId);
 
+	void resetInspect(int examId, String subjectCode);
+
 }

+ 6 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -1535,4 +1535,10 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
     public void scoreVerifyView(Integer userId, Integer studentId) {
         studentDao.scoreVerifyTag(userId, new Date(), studentId);
     }
+
+    @Transactional
+	@Override
+	public void cancelInspect(int examId, String subjectCode) {
+    	studentDao.cancelInspect(examId, subjectCode);
+	}
 }

+ 6 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamSubjectServiceImpl.java

@@ -321,4 +321,10 @@ public class ExamSubjectServiceImpl extends BaseQueryService<ExamSubject> implem
         return subjectDao.distinctTotalScore(examId);
     }
 
+    @Transactional
+	@Override
+	public void resetInspect(int examId, String subjectCode) {
+		subjectDao.resetInspect(examId,subjectCode);
+	}
+
 }

+ 11 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/InspectHistoryServiceImpl.java

@@ -17,6 +17,8 @@ import cn.com.qmth.stmms.biz.common.BaseQueryService;
 import cn.com.qmth.stmms.biz.exam.bean.InspectWorkVo;
 import cn.com.qmth.stmms.biz.exam.dao.InspectHistoryDao;
 import cn.com.qmth.stmms.biz.exam.model.InspectHistory;
+import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
+import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.InspectHistoryService;
 
 @Service("inspectHistoryService")
@@ -25,8 +27,12 @@ public class InspectHistoryServiceImpl extends BaseQueryService<InspectHistory>
 	private EntityManager entityManager;
     @Autowired
     private InspectHistoryDao inspectHistoryDao;
-
-
+    @Autowired
+    private ExamStudentService examStudentService;
+    @Autowired
+    private ExamSubjectService examSubjectService;
+    
+    
     @Override
     public InspectHistory save(InspectHistory i) {
         return inspectHistoryDao.saveAndFlush(i);
@@ -51,6 +57,8 @@ public class InspectHistoryServiceImpl extends BaseQueryService<InspectHistory>
     @Override
     public void deleteByExamIdAndSubjectCode(int examId, String subjectCode) {
         inspectHistoryDao.deleteByExamIdAndSubjectCode(examId, subjectCode);
+        examStudentService.cancelInspect(examId,subjectCode);
+        examSubjectService.resetInspect(examId,subjectCode);
     }
 
     @Transactional
@@ -109,4 +117,5 @@ public class InspectHistoryServiceImpl extends BaseQueryService<InspectHistory>
 		}
 		return false;
 	}
+	
 }

+ 7 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkServiceImpl.java

@@ -38,6 +38,7 @@ 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.exam.service.InspectHistoryService;
+import cn.com.qmth.stmms.biz.exam.service.InspectedService;
 import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.exam.service.SelectiveGroupService;
 import cn.com.qmth.stmms.biz.exam.service.SubjectiveScoreService;
@@ -166,6 +167,9 @@ public class MarkServiceImpl implements MarkService {
     private LockService lockService;
 
     private Map<Integer, Long> markerLastUpdateTime = new ConcurrentHashMap<>();
+    
+    @Autowired
+    private InspectedService inspectedService;
 
     /**
      * 某个评卷分组已申请的评卷任务数量
@@ -538,6 +542,7 @@ public class MarkServiceImpl implements MarkService {
         }
         updateMarkedCount(group);
         releaseByMarker(marker);
+        inspectHistoryService.deleteByExamIdAndSubjectCode(marker.getExamId(), marker.getSubjectCode());
     }
 
     /**
@@ -590,11 +595,11 @@ public class MarkServiceImpl implements MarkService {
                 || !group.getStatus().toString().equals(result.getStatusValue())) {
             return SubmitResult.faile();
         }
-
         Date now = new Date();
         // 根据评卷状态选择读取不同的评卷任务
         if (group.getStatus() == MarkStatus.FORMAL) {
             MarkLibrary library = libraryDao.findOne(result.getLibraryId());
+            inspectedService.cancel(library.getStudentId());
             if (library != null && library.getExamId().equals(group.getExamId())
                     && library.getSubjectCode().equals(group.getSubjectCode())
                     && library.getGroupNumber().equals(group.getNumber())) {
@@ -623,6 +628,7 @@ public class MarkServiceImpl implements MarkService {
             }
         } else if (group.getStatus() == MarkStatus.TRIAL) {
             TrialLibrary library = trialLibraryDao.findOne(result.getLibraryId());
+            inspectedService.cancel(library.getStudentId());
             if (library != null && library.getExamId().equals(group.getExamId())
                     && library.getSubjectCode().equals(group.getSubjectCode())
                     && library.getGroupNumber().equals(group.getNumber())