Pārlūkot izejas kodu

进入下一阶段阈值计算修改为按paper数量

ting.yin 6 gadi atpakaļ
vecāks
revīzija
85e7074763

+ 10 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/PaperRepo.java

@@ -146,6 +146,16 @@ public interface PaperRepo extends JpaRepository<Paper, Long>, JpaSpecificationE
 
 	long countByWorkIdAndSubjectAndIsSampleIsTrue(Long workId, Subject subject);
 
+	long countByWorkIdAndSubjectAndLevel(Long workId, Subject subject,String code);
+
+	long countByWorkIdAndSubject(Long workId, Subject subject);
+
+	long countByWorkIdAndSubjectAndQuestionIdAndLevel(Long workId,
+			Subject subject, Long id, String code);
+
+	long countByWorkIdAndSubjectAndQuestionId(Long workId, Subject subject,
+			Long id);
+
 //    List<Paper> findByWorkIdAndSubjectAndInspectRange(Long workId, Subject subject, Long inspectRange);
 
 }

+ 4 - 4
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

@@ -164,8 +164,8 @@ public class StageControlService {
         List<Level> levels = levelRepo.findByWorkId(workId);
         for (Level targetLevel : levels) {
         	int pt = targetLevel.getPt();
-        	int count = markTaskRepo.countByWorkIdAndSubjectAndStageAndResult(workId, markSubject.getSubject(), MarkStage.LEVEL, targetLevel.getCode());
-        	int total = markTaskRepo.countByWorkIdAndSubjectAndStage(workId, markSubject.getSubject(), MarkStage.LEVEL);
+        	long count = paperRepo.countByWorkIdAndSubjectAndLevel(workId, markSubject.getSubject(),targetLevel.getCode());
+        	long total = paperRepo.countByWorkIdAndSubject(workId, markSubject.getSubject());
         	
         	if ((count * 1.0D) / total * 1.0D > pt / 100.D) {
         		statusMap.put(markSubject.getId(), false);
@@ -175,8 +175,8 @@ public class StageControlService {
         	int kdpt = targetLevel.getKdpt();
         	List<ExamQuestion> examQuestions = examQuestionRepo.findByWorkIdAndSubject(workId, markSubject.getSubject());
         	for (ExamQuestion examQuestion : examQuestions) {
-        		int kdcount = markTaskRepo.countByWorkIdAndSubjectAndStageAndQuestionIdAndResult(workId, markSubject.getSubject(), MarkStage.LEVEL, examQuestion.getId(), targetLevel.getCode());
-        		int kdtotal = markTaskRepo.countByWorkIdAndSubjectAndStageAndQuestionId(workId, markSubject.getSubject(),  MarkStage.LEVEL, examQuestion.getId());
+        		long kdcount = paperRepo.countByWorkIdAndSubjectAndQuestionIdAndLevel(workId, markSubject.getSubject(), examQuestion.getId(), targetLevel.getCode());
+        		long kdtotal = paperRepo.countByWorkIdAndSubjectAndQuestionId(workId, markSubject.getSubject(), examQuestion.getId());
         		if ((kdcount * 1.0D) / kdtotal * 1.0D > kdpt / 100.D) {
         			statusMap.put(markSubject.getId(), false);
         			throw new RuntimeException(targetLevel.getCode() + "档已满,考点阀值已达" + kdpt + "%。");