xiatian il y a 1 an
Parent
commit
bf9b65b157

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

@@ -31,5 +31,9 @@ public interface InspectHistoryDao extends PagingAndSortingRepository<InspectHis
 	@Modifying
 	@Query("delete from InspectHistory m where m.studentId=?1 and m.inspectRound=?2")
 	void deleteByStudentIdAndInspectRound(Integer studentId, Integer inspectRound);
+	
+	@Modifying
+    @Query("delete from InspectHistory m where m.examId=?1 and m.subjectCode=?2 and m.inspectRound=?3")
+    void deleteByExamIdAndSubjectCodeAndInspectRound(int examId, String subjectCode, Integer inspectRound);
 
 }

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

@@ -25,4 +25,6 @@ public interface InspectHistoryService {
 
 	Boolean existByStudentIdAndUserId(Integer studentId, Integer userId);
 
+	void deleteByExamIdAndSubjectCodeAndInspectRound(Integer examId, String subjectCode, Integer inspectRound);
+
 }

+ 4 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/InspectedService.java

@@ -41,7 +41,7 @@ public interface InspectedService {
 	 * @param studentId
 	 * @return
 	 */
-	boolean cancel(Integer studentId);
+	boolean cancelByStudent(Integer studentId);
 
 	Integer needInspectCount(InspectQuery query, Integer mainNumber, Double mainStartScore,
 			Double mainEndScore, SelectiveStatus selectiveStatus);
@@ -50,6 +50,8 @@ public interface InspectedService {
 
 	boolean inspectFinish(Integer examId, String subjectCode, Integer inspectRound);
 
-	void clear(Integer studentId);
+	void clearByStudent(Integer studentId);
+	
+	void cancelBySubject(Integer examId, String subjectCode);
 
 }

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

@@ -117,5 +117,11 @@ public class InspectHistoryServiceImpl extends BaseQueryService<InspectHistory>
 		}
 		return false;
 	}
+
+	@Transactional
+	@Override
+	public void deleteByExamIdAndSubjectCodeAndInspectRound(Integer examId, String subjectCode, Integer inspectRound) {
+		inspectHistoryDao.deleteByExamIdAndSubjectCodeAndInspectRound(examId, subjectCode, inspectRound);
+	}
 	
 }

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

@@ -306,7 +306,7 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
      */
     @Transactional
     @Override
-    public boolean cancel(Integer studentId) {
+    public boolean cancelByStudent(Integer studentId) {
         ExamStudent student = studentService.findById(studentId);
         ExamSubject sub = examSubjectService.find(student.getExamId(), student.getSubjectCode());
         if (student.getInspected()) {
@@ -319,7 +319,7 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
 
     @Transactional
     @Override
-    public void clear(Integer studentId) {
+    public void clearByStudent(Integer studentId) {
         studentService.cancelInspect(studentId);
         inspectHistoryService.deleteByStudentId(studentId);
     }
@@ -365,4 +365,12 @@ public class InspectedServiceImpl extends BaseQueryService<ExamStudent> implemen
         Integer count = singleResult == null ? 0 : Integer.valueOf(singleResult.toString());
         return totalPaperCount == count;
     }
+
+    @Transactional
+	@Override
+	public void cancelBySubject(Integer examId, String subjectCode) {
+        ExamSubject sub = examSubjectService.find(examId, subjectCode);
+        studentService.cancelInspect(examId,subjectCode);
+        inspectHistoryService.deleteByExamIdAndSubjectCodeAndInspectRound(examId,subjectCode, sub.getInspectRound());
+	}
 }

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

@@ -534,7 +534,7 @@ public class MarkServiceImpl implements MarkService {
                 updateStudentGroupStatus(library.getStudentId(), library.getExamId(), library.getSubjectCode(),
                         library.getGroupNumber(), SubjectiveStatus.UNMARK);
                 studentService.updateSubjectiveStatusAndScore(library.getStudentId(), SubjectiveStatus.UNMARK, 0, null);
-                inspectedService.cancel(library.getStudentId());
+                inspectedService.cancelByStudent(library.getStudentId());
                 lockService.unlock(LockType.STUDENT, library.getStudentId());
             }
             markerDao.resetById(marker.getId());
@@ -575,7 +575,7 @@ public class MarkServiceImpl implements MarkService {
         selectiveStudentDao.deleteByStudentId(student.getId());
         updateAllCount(student.getExamId(), student.getSubjectCode());
         // 复核记录
-        inspectedService.clear(student.getId());
+        inspectedService.clearByStudent(student.getId());
         // 打回记录
         rejectHistoryDao.deleteByStudentId(student.getId());
     }
@@ -602,7 +602,7 @@ public class MarkServiceImpl implements MarkService {
         // 根据评卷状态选择读取不同的评卷任务
         if (group.getStatus() == MarkStatus.FORMAL) {
             MarkLibrary library = libraryDao.findOne(result.getLibraryId());
-            inspectedService.cancel(library.getStudentId());
+            inspectedService.cancelByStudent(library.getStudentId());
             if (library != null && library.getExamId().equals(group.getExamId())
                     && library.getSubjectCode().equals(group.getSubjectCode())
                     && library.getGroupNumber().equals(group.getNumber())) {
@@ -631,7 +631,7 @@ public class MarkServiceImpl implements MarkService {
             }
         } else if (group.getStatus() == MarkStatus.TRIAL) {
             TrialLibrary library = trialLibraryDao.findOne(result.getLibraryId());
-            inspectedService.cancel(library.getStudentId());
+            inspectedService.cancelByStudent(library.getStudentId());
             if (library != null && library.getExamId().equals(group.getExamId())
                     && library.getSubjectCode().equals(group.getSubjectCode())
                     && library.getGroupNumber().equals(group.getNumber())
@@ -897,7 +897,7 @@ public class MarkServiceImpl implements MarkService {
                 updateLibraryCount(group);
             }
             updateMarkedCount(group);
-            inspectedService.cancel(library.getStudentId());
+            inspectedService.cancelByStudent(library.getStudentId());
             return true;
         } else {
             return false;
@@ -1445,7 +1445,7 @@ public class MarkServiceImpl implements MarkService {
             scoreCalculate(studentId);
         } else {
             studentService.updateSubjectiveStatusAndScore(studentId, SubjectiveStatus.UNMARK, 0, null);
-            inspectedService.cancel(studentId);
+            inspectedService.cancelByStudent(studentId);
         }
     }
 
@@ -1488,7 +1488,7 @@ public class MarkServiceImpl implements MarkService {
             updateStudentGroupStatus(studentId, group.getExamId(), group.getSubjectCode(), group.getNumber(),
                     SubjectiveStatus.UNMARK);
             studentService.updateSubjectiveStatusAndScore(studentId, SubjectiveStatus.UNMARK, 0, null);
-            inspectedService.cancel(studentId);
+            inspectedService.cancelByStudent(studentId);
         }
     }
 
@@ -1724,7 +1724,7 @@ public class MarkServiceImpl implements MarkService {
                 resetStudentGroup(student.getId(), student.getExamId(), student.getSubjectCode(), groupNumber);
                 studentService.updateSubjectiveStatusAndTimeAndInspectorId(student.getId(), SubjectiveStatus.UNMARK,
                         null, null);
-                inspectedService.cancel(student.getId());
+                inspectedService.cancelByStudent(student.getId());
             }
         }
         return true;
@@ -1851,7 +1851,7 @@ public class MarkServiceImpl implements MarkService {
                 updateLibraryCount(group);
             }
             updateMarkedCount(group);
-            inspectedService.cancel(library.getStudentId());
+            inspectedService.cancelByStudent(library.getStudentId());
             return true;
         } else {
             return false;

+ 2 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/InspectedController.java

@@ -306,7 +306,7 @@ public class InspectedController extends BaseExamController {
         WebUser wu = RequestUtils.getWebUser(request);
         if (student != null && subjectCheck(student.getSubjectCode(), wu)) {
             try {
-                if (lockService.trylock(LockType.STUDENT, studentId) && inspectedService.cancel(studentId)) {
+                if (lockService.trylock(LockType.STUDENT, studentId) && inspectedService.cancelByStudent(studentId)) {
                     obj.accumulate("success", true);
                 } else {
                     obj.accumulate("success", false);
@@ -492,7 +492,7 @@ public class InspectedController extends BaseExamController {
             // subjectCode = student.getSubjectCode();
             if (student != null && subjectCheck(student.getSubjectCode(), wu)) {
                 try {
-                    if (lockService.trylock(LockType.STUDENT, student.getId()) && inspectedService.cancel(id)) {
+                    if (lockService.trylock(LockType.STUDENT, student.getId()) && inspectedService.cancelByStudent(id)) {
                     }
                 } catch (Exception e) {
                     log.error("back inspected error", e);