Эх сурвалжийг харах

3.4.5 update-20250507,bug修改

xiaofei 1 сар өмнө
parent
commit
83ae7dad20

+ 0 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java

@@ -310,5 +310,4 @@ public interface MarkStudentService extends IService<MarkStudent> {
      * @return
      */
     List<MarkAiScoreDto> findScoreByAiMark(Long examId, String paperNumber);
-    int countByExamIdAndPaperNumberAndAiMarkAbnormal(Long examId, String paperNumber, boolean aiMarkAbnormal);
 }

+ 4 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java

@@ -44,6 +44,7 @@ import com.qmth.teachcloud.mark.dto.ArchiveScoreExportDto;
 import com.qmth.teachcloud.mark.dto.mark.MarkPaperFileDto;
 import com.qmth.teachcloud.mark.dto.mark.MarkQuestionAnswerVo;
 import com.qmth.teachcloud.mark.dto.mark.score.CheckScoreListDto;
+import com.qmth.teachcloud.mark.dto.mark.score.MarkAiScoreDto;
 import com.qmth.teachcloud.mark.dto.mark.score.MarkPaperPackageDto;
 import com.qmth.teachcloud.mark.dto.mark.score.SettingDto;
 import com.qmth.teachcloud.mark.entity.*;
@@ -261,8 +262,9 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
                         continue;
                     }
 
-                    if(markStudentService.countByExamIdAndPaperNumberAndAiMarkAbnormal(examId, paperNumber, true) > 0){
-                        stringJoiner.add(courseInfo + "有考生AI评卷异常,请人工给分后再结束阅卷");
+                    List<MarkAiScoreDto> markAiScoreDtoList = markStudentService.findScoreByAiMark(examId, paperNumber);
+                    if (CollectionUtils.isNotEmpty(markAiScoreDtoList)) {
+                        stringJoiner.add(courseInfo + "有AI智能评卷待复核任务未完成,请在成绩检查里复核完成后结束评卷");
                         continue;
                     }
                 }

+ 10 - 18
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -312,6 +312,11 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         teacher = SystemConstant.translateSpecificSign(teacher);
 
         MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
+        List<MarkAiScoreDto> markAiScoreDtoList = this.findScoreByAiMark(examId, paperNumber);
+        if(CollectionUtils.isNotEmpty(markAiScoreDtoList)){
+            throw ExceptionResultEnum.ERROR.exception("有AI智能评卷待复核任务未完成,请在成绩检查里复核完成后导出成绩");
+        }
+
         Double objectiveScoreLt = objectiveScoreRateLt == null ?
                 null :
                 Calculator.round(Calculator.divide(Calculator.multiply(markPaper.getObjectiveScore(), Double.parseDouble(String.valueOf(objectiveScoreRateLt))), 100), 2);
@@ -333,11 +338,6 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
                 }
             }
 
-            // AI评卷异常
-            if (scoreDetailDto.getAiMarkAbnormal()) {
-                throw ExceptionResultEnum.ERROR.exception("[" + scoreDetailDto.getStudentName() + "]AI评卷任务异常,请人工给分后再导出");
-            }
-
             // 格式化分数
             scoreDetailDto.setObjectiveScore(Calculator.round(scoreDetailDto.getObjectiveScore(), 1));
             scoreDetailDto.setSubjectiveScore(Calculator.round(scoreDetailDto.getSubjectiveScore(), 1));
@@ -1419,6 +1419,11 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
                 columnValues.add(columnValue);
             }
         } else {
+            List<MarkAiScoreDto> markAiScoreDtoList = this.findScoreByAiMark(query.getExamId(), query.getPaperNumber());
+            if(CollectionUtils.isNotEmpty(markAiScoreDtoList)){
+                throw ExceptionResultEnum.ERROR.exception("有AI智能评卷待复核任务未完成,请在成绩检查里复核完成后导出成绩");
+            }
+
             List<MarkQuestion> oQuestionList = markQuestionService.listByExamIdAndPaperNumberAndObjective(query.getExamId(), query.getPaperNumber(), true);
             List<MarkQuestion> sQuestionList = markQuestionService.listByExamIdAndPaperNumberAndObjective(query.getExamId(), query.getPaperNumber(), false);
             List<String> columnNameList = new ArrayList<>(Arrays.asList(columnName));
@@ -1446,10 +1451,6 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
             List<ArchiveStudentVo> ret = baseMapper.studentList(sysUser.getSchoolId(), query, dpr);
 
             for (ArchiveStudentVo s : ret) {
-                // AI评卷异常
-                if (s.getAiMarkAbnormal()) {
-                    throw ExceptionResultEnum.ERROR.exception("[" + s.getStudentName() + "]AI评卷任务异常,请人工给分后再导出");
-                }
                 List<CellValue> valueList = new ArrayList<>();
                 valueList.add(CellValue.of(s.getStudentName()));
                 valueList.add(CellValue.of(s.getStudentCode()));
@@ -2768,13 +2769,4 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
     public List<MarkAiScoreDto> findScoreByAiMark(Long examId, String paperNumber) {
         return this.baseMapper.findScoreByAiMark(examId, paperNumber);
     }
-
-    @Override
-    public int countByExamIdAndPaperNumberAndAiMarkAbnormal(Long examId, String paperNumber, boolean aiMarkAbnormal) {
-        QueryWrapper<MarkStudent> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(MarkStudent::getExamId, examId)
-                .eq(MarkStudent::getPaperNumber, paperNumber)
-                .eq(MarkStudent::getAiMarkAbnormal, aiMarkAbnormal);
-        return this.count(queryWrapper);
-    }
 }