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

3.4.4 update-20250228,联调bug修复4

xiaofei 4 сар өмнө
parent
commit
815b87b7e8

+ 1 - 1
distributed-print/src/test/java/com/qmth/distributed/print/MarkCalcObjectiveScoreTest.java

@@ -22,7 +22,7 @@ public class MarkCalcObjectiveScoreTest {
     public void calcObjectiveScore() {
         Long studentId = 457618481244798976l;
         MarkStudent markStudent = markStudentService.getById(studentId);
-        markStudentService.calculateObjectiveScore(markStudent);
+//        markStudentService.calculateObjectiveScore(markStudent);
     }
 
 }

+ 10 - 10
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/manage/MarkArbitrateDto.java

@@ -23,8 +23,8 @@ public class MarkArbitrateDto {
     private Long updateTime;
     private MarkArbitrateStatus status;
     private String statusName;
-    private Integer groupNumber;
-    private String groupQuestions;
+    private Long questionId;
+    private String questionNumber;
 
     public Long getId() {
         return id;
@@ -130,19 +130,19 @@ public class MarkArbitrateDto {
         this.statusName = statusName;
     }
 
-    public Integer getGroupNumber() {
-        return groupNumber;
+    public Long getQuestionId() {
+        return questionId;
     }
 
-    public void setGroupNumber(Integer groupNumber) {
-        this.groupNumber = groupNumber;
+    public void setQuestionId(Long questionId) {
+        this.questionId = questionId;
     }
 
-    public String getGroupQuestions() {
-        return groupQuestions;
+    public String getQuestionNumber() {
+        return questionNumber;
     }
 
-    public void setGroupQuestions(String groupQuestions) {
-        this.groupQuestions = groupQuestions;
+    public void setQuestionNumber(String questionNumber) {
+        this.questionNumber = questionNumber;
     }
 }

+ 0 - 18
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/setting/MarkUserClassDetailDto.java

@@ -6,27 +6,9 @@ import java.util.List;
 
 public class MarkUserClassDetailDto {
 
-//    private Integer groupNumber;
-//    private String groupQuestions;
     private MarkUser marker;
     private List<String> markerClassList;
 
-//    public Integer getGroupNumber() {
-//        return groupNumber;
-//    }
-//
-//    public void setGroupNumber(Integer groupNumber) {
-//        this.groupNumber = groupNumber;
-//    }
-//
-//    public String getGroupQuestions() {
-//        return groupQuestions;
-//    }
-//
-//    public void setGroupQuestions(String groupQuestions) {
-//        this.groupQuestions = groupQuestions;
-//    }
-
     public MarkUser getMarker() {
         return marker;
     }

+ 0 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkService.java

@@ -64,8 +64,6 @@ public interface MarkService {
 
     Task getTask(Long userId, Long examId, String paperNumber, QuestionModel questionModel);
 
-//    void deleteMarkGroup(MarkGroup markGroup, boolean deleteGroupInfo);
-
     /**
      * /** 释放某个大题的锁定任务
      */

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

@@ -262,4 +262,5 @@ public interface MarkStudentService extends IService<MarkStudent> {
     AbInfoVo findExamTaskPaperTypeOpenStatus(Long examId, String paperNumber);
 
     UpdateTimeVo breachUpdate(Long studentId, Boolean breach);
+
 }

+ 0 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkSyncService.java

@@ -15,7 +15,5 @@ public interface MarkSyncService {
 
     void updateQuality(List<MarkUserQuestion> markUserGroups, String lockKey);
 
-//    void deleteMarkGroup(MarkGroup markGroup, boolean deleteGroupInfo);
-
     void calcObjectiveScore(MarkPaper markPaper);
 }

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

@@ -85,7 +85,7 @@ public class MarkArbitrateHistoryServiceImpl extends ServiceImpl<MarkArbitrateHi
                 }
             }
             arbitrateDto.setStatusName(arbitrateDto.getStatus().getName());
-            arbitrateDto.setGroupQuestions(markQuestionService.assembleGroupQuestionsByExamIdAndPaperNumberAndNumber(examId, paperNumber, arbitrateDto.getGroupNumber()));
+            arbitrateDto.setQuestionNumber(markQuestionService.getById(arbitrateDto.getQuestionId()).getQuestionNumber());
         }
         return markArbitrateDtoIPage;
     }
@@ -198,7 +198,7 @@ public class MarkArbitrateHistoryServiceImpl extends ServiceImpl<MarkArbitrateHi
             } catch (Exception e) {
                 log.error("ArbitrateController-处理仲裁卷出错", e);
             } finally {
-                lockService.unwatch(LockType.GROUP,  markArbitrateHistory.getQuestionId());
+                lockService.unwatch(LockType.GROUP, markArbitrateHistory.getQuestionId());
                 lockService.unwatch(LockType.EXAM_SUBJECT, markArbitrateHistory.getExamId(), markArbitrateHistory.getPaperNumber());
             }
         } else {

+ 0 - 6
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java

@@ -277,12 +277,6 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
                     }
                 }
 
-                // 结束评卷时,客观题统分
-//                List<MarkStudent> markStudentList = markStudentService.listByExamIdAndCoursePaperId(examId, markPaper.getCoursePaperId());
-//                for (MarkStudent markStudent : markStudentList) {
-//                    markStudentService.calculateObjectiveScore(markStudent);
-//                }
-
                 // 结束评卷时,文档进行归档
                 markDocumentService.initMarkDocument(basicExam, markPaper);
             }

+ 3 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkQuestionServiceImpl.java

@@ -410,6 +410,9 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
             updateWrapper.lambda().eq(MarkQuestionAnswer::getId, answer.getId());
             markQuestionAnswerService.update(updateWrapper);
         }
+
+        // 统分
+        markStudentService.calcObjectiveScore(markObjectiveQuestionParams.getExamId(), markObjectiveQuestionParams.getPaperNumber());
     }
 
     @Override

+ 0 - 63
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -729,69 +729,6 @@ public class MarkServiceImpl implements MarkService {
 //        }
     }
 
-//    @Override
-//    public void deleteMarkGroup(MarkGroup markGroup, boolean deleteGroupInfo) {
-//        // 正评相关数据
-//        markTrackService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(), markGroup.getPaperNumber(),
-//                markGroup.getNumber());
-//        markSpecialTagService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(),
-//                markGroup.getPaperNumber(), markGroup.getNumber());
-//        markHeaderTrackService.deleteByExamIdAndPaperNumberAndGroupNumberAndStudentId(markGroup.getExamId(),
-//                markGroup.getPaperNumber(), markGroup.getNumber(), null);
-//        markHeaderTagService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(),
-//                markGroup.getPaperNumber(), markGroup.getNumber());
-//        markArbitrateHistoryService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(),
-//                markGroup.getPaperNumber(), markGroup.getNumber());
-//        markProblemHistoryService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(),
-//                markGroup.getPaperNumber(), markGroup.getNumber());
-//        markTaskService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(), markGroup.getPaperNumber(),
-//                markGroup.getNumber());
-//        markRejectHistoryService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(), markGroup.getPaperNumber(),
-//                markGroup.getNumber());
-//        markGroup.getPaperNumber(), markGroup.getNumber());
-//        markSubjectiveScoreService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(),
-//                markGroup.getPaperNumber(), markGroup.getNumber());
-//        // 删除分组
-//        releaseByMarkGroup(markGroup);
-//        // 删除分组时,同步删除评卷员、分组等信息
-//        if (deleteGroupInfo) {
-//            // 评卷员数据
-//            markUserGroupService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(),
-//                    markGroup.getPaperNumber(), markGroup.getNumber());
-//            // 小题数据
-//            markQuestionService.updateGroupNumberByExamIdAndPaperNumberAndGroupNumber(null, markGroup.getExamId(),
-//                    markGroup.getPaperNumber(), markGroup.getNumber());
-//            markGroupService.deleteByExamIdAndPaperNumberAndGroupNumber(markGroup.getExamId(),
-//                    markGroup.getPaperNumber(), markGroup.getNumber());
-//            // 分班阅数据
-//            markUserClassService.deleteByExamIdAndPaperNumberAndClassName(markGroup.getExamId(), markGroup.getPaperNumber(), null);
-//            // 更新MarkPaper中groupStatus
-//            updateMarkGroupStatus(markGroup.getExamId(), markGroup.getPaperNumber());
-//        }
-//
-//        // 未分组的题目
-//        long unGroupQuestionCount = markQuestionService.countByExamIdAndPaperNumberAndObjectiveAndGroupNumberIsNull(
-//                markGroup.getExamId(), markGroup.getPaperNumber(), false);
-//        // 考生整体状态与总分更新
-//        long groupCount = markGroupService.countByExamIdAndPaperNumber(markGroup.getExamId(),
-//                markGroup.getPaperNumber());
-//        if (groupCount == 0 || unGroupQuestionCount > 0) {
-//            markStudentService.updateSubjectiveStatusAndScore(markGroup.getExamId(), markGroup.getPaperNumber(),
-//                    SubjectiveStatus.UNMARK, null, null);
-//        } else {
-//            List<Long> studentList = markStudentService.findIdByExamIdAndPaperNumber(markGroup.getExamId(), markGroup.getPaperNumber());
-//            for (Long studentId : studentList) {
-//                checkStudentSubjective(studentId, unGroupQuestionCount);
-//            }
-//        }
-//    }
-
-//    @Override
-//    public void releaseByMarkGroup(MarkGroup markGroup) {
-//        TaskLock taskLock = getTaskLock(markGroup);
-//        taskLock.clear();
-//    }
-
     @Override
     public void releaseByStudent(MarkStudent student) {
         TaskLock taskLock = TaskLockUtil.getInspectedStudentTask(getKey(student));

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

@@ -61,6 +61,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.FillPatternType;
 import org.apache.poi.ss.usermodel.IndexedColors;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.FileCopyUtils;
@@ -349,13 +350,13 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
 
         HttpServletResponse response = ServletUtil.getResponse();
         //生成表头
-        String[] columnName = new String[]{"姓名", "学号", "学院", "教学班", "行政班", "课程代码", "课程名称","任课老师", "状态", "违纪状态", "客观分", "主观分", "成绩"};
+        String[] columnName = new String[]{"姓名", "学号", "学院", "教学班", "行政班", "课程代码", "课程名称", "任课老师", "状态", "违纪状态", "客观分", "主观分", "成绩"};
         List<MarkQuestion> oQuestionList = markQuestionService.listByExamIdAndPaperNumberAndObjective(examId, paperNumber, true);
         List<MarkQuestion> sQuestionList = markQuestionService.listByExamIdAndPaperNumberAndObjective(examId, paperNumber, false);
         List<String> columnNameList = new ArrayList<>(Arrays.asList(columnName));
-        Set<Integer> mainNumberSet=new HashSet<>();
+        Set<Integer> mainNumberSet = new HashSet<>();
         for (MarkQuestion question : oQuestionList) {
-            if(!mainNumberSet.contains(question.getMainNumber())){
+            if (!mainNumberSet.contains(question.getMainNumber())) {
                 columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "总分");
                 mainNumberSet.add(question.getMainNumber());
             }
@@ -364,7 +365,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
             columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber() + "满分");
         }
         for (MarkQuestion question : sQuestionList) {
-            if(!mainNumberSet.contains(question.getMainNumber())){
+            if (!mainNumberSet.contains(question.getMainNumber())) {
                 columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "总分");
                 mainNumberSet.add(question.getMainNumber());
             }
@@ -394,10 +395,10 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
             valueList.add(s.getTotalScore() == null ? CellValue.of("") : CellValue.of(s.getTotalScore()));
 
             mainNumberSet = new HashSet<>();
-            Map<Integer,Double> mainScoreMap = s.getScoreList(true, oQuestionList).stream().collect(Collectors.groupingBy(
-                    ScoreItem::getMainNumber,Collectors.summingDouble(ScoreItem::getScore)));
+            Map<Integer, Double> mainScoreMap = s.getScoreList(true, oQuestionList).stream().collect(Collectors.groupingBy(
+                    ScoreItem::getMainNumber, Collectors.summingDouble(ScoreItem::getScore)));
             for (ScoreItem item : s.getScoreList(true, oQuestionList)) {
-                if(!mainNumberSet.contains(item.getMainNumber())){
+                if (!mainNumberSet.contains(item.getMainNumber())) {
                     valueList.add(CellValue.of(mainScoreMap.get(item.getMainNumber())));
                     mainNumberSet.add(item.getMainNumber());
                 }
@@ -406,9 +407,9 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
                 valueList.add(item.getTotalScore() == null ? CellValue.of("") : CellValue.of(item.getTotalScore()));
             }
             mainScoreMap = s.getScoreList(true, sQuestionList).stream().collect(Collectors.groupingBy(
-                    ScoreItem::getMainNumber,Collectors.summingDouble(ScoreItem::getScore)));
+                    ScoreItem::getMainNumber, Collectors.summingDouble(ScoreItem::getScore)));
             for (ScoreItem item : s.getScoreList(false, sQuestionList)) {
-                if(!mainNumberSet.contains(item.getMainNumber())){
+                if (!mainNumberSet.contains(item.getMainNumber())) {
                     valueList.add(CellValue.of(mainScoreMap.get(item.getMainNumber())));
                     mainNumberSet.add(item.getMainNumber());
                 }
@@ -1286,13 +1287,13 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         BasicCourse basicCourse = basicCourseService.getById(markPaper.getCourseId());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         //生成表头
-        String[] columnName = new String[]{"姓名", "学号", "学院", "教学班", "行政班", "课程代码", "课程名称", "任课老师","状态", "违纪状态", "客观分", "主观分", "成绩"};
+        String[] columnName = new String[]{"姓名", "学号", "学院", "教学班", "行政班", "课程代码", "课程名称", "任课老师", "状态", "违纪状态", "客观分", "主观分", "成绩"};
         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));
-        Set<Integer> mainNumberSet=new HashSet<>();
+        Set<Integer> mainNumberSet = new HashSet<>();
         for (MarkQuestion question : oQuestionList) {
-            if(!mainNumberSet.contains(question.getMainNumber())){
+            if (!mainNumberSet.contains(question.getMainNumber())) {
                 columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "总分");
                 mainNumberSet.add(question.getMainNumber());
             }
@@ -1301,7 +1302,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
             columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "-" + question.getSubNumber() + "满分");
         }
         for (MarkQuestion question : sQuestionList) {
-            if(!mainNumberSet.contains(question.getMainNumber())){
+            if (!mainNumberSet.contains(question.getMainNumber())) {
                 columnNameList.add(question.getMainTitle() + " " + question.getMainNumber() + "总分");
                 mainNumberSet.add(question.getMainNumber());
             }
@@ -1349,10 +1350,10 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
             valueList.add(s.getSubjectiveScore() == null ? CellValue.of("") : CellValue.of(s.getSubjectiveScore()));
             valueList.add(s.getTotalScore() == null ? CellValue.of("") : CellValue.of(s.getTotalScore()));
             mainNumberSet = new HashSet<>();
-            Map<Integer,Double> mainScoreMap = s.getScoreList(true, oQuestionList).stream().collect(Collectors.groupingBy(
-                    ScoreItem::getMainNumber,Collectors.summingDouble(ScoreItem::getScore)));
+            Map<Integer, Double> mainScoreMap = s.getScoreList(true, oQuestionList).stream().collect(Collectors.groupingBy(
+                    ScoreItem::getMainNumber, Collectors.summingDouble(ScoreItem::getScore)));
             for (ScoreItem item : s.getScoreList(true, oQuestionList)) {
-                if(!mainNumberSet.contains(item.getMainNumber())){
+                if (!mainNumberSet.contains(item.getMainNumber())) {
                     valueList.add(CellValue.of(mainScoreMap.get(item.getMainNumber())));
                     mainNumberSet.add(item.getMainNumber());
                 }
@@ -1361,9 +1362,9 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
                 valueList.add(item.getTotalScore() == null ? CellValue.of("") : CellValue.of(item.getTotalScore()));
             }
             mainScoreMap = s.getScoreList(true, sQuestionList).stream().collect(Collectors.groupingBy(
-                    ScoreItem::getMainNumber,Collectors.summingDouble(ScoreItem::getScore)));
+                    ScoreItem::getMainNumber, Collectors.summingDouble(ScoreItem::getScore)));
             for (ScoreItem item : s.getScoreList(false, sQuestionList)) {
-                if(!mainNumberSet.contains(item.getMainNumber())){
+                if (!mainNumberSet.contains(item.getMainNumber())) {
                     valueList.add(CellValue.of(mainScoreMap.get(item.getMainNumber())));
                     mainNumberSet.add(item.getMainNumber());
                 }

+ 0 - 18
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkSyncServiceImpl.java

@@ -61,24 +61,6 @@ public class MarkSyncServiceImpl implements MarkSyncService {
         lockService.unlock(LockType.BATCH_QUALITY, lockKey);
     }
 
-//    @Async
-//    @Override
-//    public void deleteMarkGroup(MarkGroup markGroup, boolean deleteGroupInfo) {
-//        if (markGroup == null) {
-//            return;
-//        }
-//        try {
-//            lockService.waitlock(LockType.EXAM_SUBJECT, markGroup.getExamId(), markGroup.getPaperNumber());
-//            lockService.waitlock(LockType.GROUP, markGroup.getExamId(), markGroup.getPaperNumber(), markGroup.getNumber());
-//            markService.deleteMarkGroup(markGroup, deleteGroupInfo);
-//        } catch (Exception e) {
-//            log.error("delete group error", e);
-//        } finally {
-//            lockService.unlock(LockType.GROUP, markGroup.getExamId(), markGroup.getPaperNumber(), markGroup.getNumber());
-//            lockService.unlock(LockType.EXAM_SUBJECT, markGroup.getExamId(), markGroup.getPaperNumber());
-//            lockService.unlock(LockType.GROUP_DELETE, markGroup.getExamId(), markGroup.getPaperNumber(), markGroup.getNumber());
-//        }
-//    }
 
     @Async
     @Override