Explorar o código

3.4.4 update-20250305,联调bug修复-主观题复核

xiaofei hai 3 meses
pai
achega
6ddacebc7c

+ 5 - 6
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/params/MarkHeaderResult.java

@@ -10,7 +10,7 @@ public class MarkHeaderResult {
 
     private Long studentId;
 
-    private List<MarkHeaderGroupResult> groups;
+    private List<MarkResultQuestion> questionList;
 
     public Long getStudentId() {
         return studentId;
@@ -20,12 +20,11 @@ public class MarkHeaderResult {
         this.studentId = studentId;
     }
 
-    public List<MarkHeaderGroupResult> getGroups() {
-        return groups;
+    public List<MarkResultQuestion> getQuestionList() {
+        return questionList;
     }
 
-    public void setGroups(List<MarkHeaderGroupResult> groups) {
-        this.groups = groups;
+    public void setQuestionList(List<MarkResultQuestion> questionList) {
+        this.questionList = questionList;
     }
-
 }

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

@@ -11,6 +11,7 @@ import com.qmth.teachcloud.mark.entity.*;
 import com.qmth.teachcloud.mark.enums.QuestionModel;
 import com.qmth.teachcloud.mark.params.MarkHeaderGroupResult;
 import com.qmth.teachcloud.mark.params.MarkResult;
+import com.qmth.teachcloud.mark.params.MarkResultQuestion;
 import io.lettuce.core.GeoArgs.Sort;
 
 import java.util.List;
@@ -74,7 +75,7 @@ public interface MarkService {
      */
     boolean applyStudent(MarkStudent student, Long userId);
 
-    void submitHeaderTask(List<MarkHeaderGroupResult> markResult, MarkStudent markUserGroup);
+    void submitHeaderTask(List<MarkResultQuestion> markResult, MarkStudent markUserGroup);
 
     IPage<Task> getHistory(Long userId, int pageNumber, int pageSize, Sort sort, String order, Long examId, String paperNumber, String secretNumber, Double markerScore);
 

+ 15 - 14
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -722,22 +722,22 @@ public class MarkServiceImpl implements MarkService {
     }
 
     @Override
-    public void submitHeaderTask(List<MarkHeaderGroupResult> markHeaderGroupResultList, MarkStudent markStudent) {
+    public void submitHeaderTask(List<MarkResultQuestion> resultQuestions, MarkStudent markStudent) {
         Long userId = ServletUtil.getRequestUserId();
-        for (MarkHeaderGroupResult groupResult : markHeaderGroupResultList) {
+        for (MarkResultQuestion result : resultQuestions) {
             try {
-                lockService.watch(LockType.QUESTION, groupResult.getQuestionId());
+                lockService.watch(LockType.QUESTION, result.getQuestionId());
                 Long currentTime = System.currentTimeMillis();
-                updateMarkSubjectScore(markStudent, groupResult, userId);
+                updateMarkSubjectScore(markStudent, result, userId);
                 markTaskService.updateHeaderResult(markStudent.getExamId(), markStudent.getPaperNumber(),
-                        groupResult.getQuestionId(), groupResult.getStudentId(), userId, groupResult.getScore(), groupResult.getTrackList(), groupResult.getSpecialTagList(), currentTime, MarkTaskStatus.MARKED);
-                updateMarkedCount(markStudent.getExamId(), markStudent.getPaperNumber(), groupResult.getQuestionId());
+                        result.getQuestionId(), markStudent.getId(), userId, result.getMarkerScore(), result.getMarkerTrackList(), result.getMarkerTagList(), currentTime, MarkTaskStatus.MARKED);
+                updateMarkedCount(markStudent.getExamId(), markStudent.getPaperNumber(), result.getQuestionId());
                 markStudentService.updateCheckInfo(markStudent.getId(), userId);
-                checkStudentQuestion(groupResult.getStudentId(), markQuestionService.getById(groupResult.getQuestionId()), null);
+                checkStudentQuestion(markStudent.getId(), markQuestionService.getById(result.getQuestionId()), result);
             } catch (ApiException e) {
                 throw ExceptionResultEnum.ERROR.exception(e.getMessage());
             } finally {
-                lockService.unwatch(LockType.QUESTION, groupResult.getQuestionId());
+                lockService.unwatch(LockType.QUESTION, result.getQuestionId());
             }
         }
 
@@ -745,13 +745,13 @@ public class MarkServiceImpl implements MarkService {
 //        checkStudentSubjective(markStudent.getId(), markStudent.getExamId(), markStudent.getPaperNumber());
     }
 
-    private void updateMarkSubjectScore(MarkStudent markStudent, MarkHeaderGroupResult groupResult, Long userId) {
+    private void updateMarkSubjectScore(MarkStudent markStudent, MarkResultQuestion resultQuestion, Long userId) {
         // 记录修改日志(按小题)
 //        List<BasicOperationLog> basicOperationLogs = new ArrayList<>();
-        MarkSubjectiveScore markSubjectiveScore = markSubjectiveScoreService.getByStudentIdAndQuestionId(markStudent.getId(), groupResult.getQuestionId());
-        double score = markSubjectiveScore.getScore();
+        MarkSubjectiveScore markSubjectiveScore = markSubjectiveScoreService.getByStudentIdAndQuestionId(markStudent.getId(), resultQuestion.getQuestionId());
+        double score = resultQuestion.getMarkerScore();
         // 分数有变动,记录日志
-        if (groupResult.getScore() != score) {
+        if (markSubjectiveScore.getScore() != score) {
 //            MarkStudentVo markStudentVo = markStudentService.getDetailById(markStudent.getId());
 //            String detail = String.format("%s(%s)课程%s试卷编号下,将%s(%s)的%s题从%s分修改为%s分", markStudentVo.getCourseName(), markStudentVo.getCourseCode(), markStudentVo.getPaperNumber(), markStudentVo.getStudentName(), markStudentVo.getStudentCode(), markSubjectiveScore.getMainNumber() + "-" + markSubjectiveScore.getSubNumber(), markSubjectiveScore.getScore(), score);
 //            basicOperationLogs.add(new BasicOperationLog(Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString()), ServletUtil.getCurrentPrivilegeId(), OperationTypeEnum.SUBJECTIVE, OperationTypeEnum.SUBJECTIVE.getName(), ServletUtil.getRequest().getServletPath(), detail, String.valueOf(groupResult.getScore()), "成功", ServletUtil.getRequestUserId()));
@@ -765,7 +765,7 @@ public class MarkServiceImpl implements MarkService {
             headerHistory.setSubNumber(markSubjectiveScore.getSubNumber());
             headerHistory.setUserId(userId);
             headerHistory.setScore(score);
-            headerHistory.setTrackList(JSON.toJSONString(groupResult.getTrackList()));
+            headerHistory.setTrackList(JSON.toJSONString(resultQuestion.getMarkerTrackList()));
             headerHistory.setOriginalScore(markSubjectiveScore.getScore());
 //            headerHistory.setOriginalTrackList();
             headerHistory.setCreateTime(System.currentTimeMillis());
@@ -796,7 +796,8 @@ public class MarkServiceImpl implements MarkService {
         IPage<Long> list = markTaskService.listPageHistory(page, userId, examId, paperNumber, secretNumber, markerScore);
         List<Task> recordsDtos = new ArrayList<>();
         for (Long studentId : list.getRecords()) {
-            Task dto = taskService.build(studentId);
+            List<MarkTask> markTaskList = markTaskService.listByStudentIdAndMarkerId(studentId, userId);
+            Task dto = taskService.build(userId, markTaskList);
             recordsDtos.add(dto);
         }
         IPage<Task> result = new Page<>();

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

@@ -1239,7 +1239,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         try {
             lockService.watch(LockType.EXAM_SUBJECT, markStudent.getExamId(), markStudent.getPaperNumber());
             lockService.waitlock(LockType.STUDENT, markResult.getStudentId());
-            markService.submitHeaderTask(markResult.getGroups(), markStudent);
+            markService.submitHeaderTask(markResult.getQuestionList(), markStudent);
         } catch (Exception e) {
             throw ExceptionResultEnum.ERROR.exception(e.getMessage());
         } finally {

+ 3 - 4
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/TaskServiceImpl.java

@@ -67,7 +67,6 @@ public class TaskServiceImpl implements TaskService {
 
     @Override
     public Task build(Long studentId) {
-        SysUser user = (SysUser) ServletUtil.getRequestUser();
         MarkStudentVo markStudent = markStudentService.getMarkStudentVoByStudentId(studentId);
         Task task = new Task();
         if (markStudent != null) {
@@ -83,9 +82,9 @@ public class TaskServiceImpl implements TaskService {
             // 原图
             task.setSheetUrls(teachcloudCommonService.fileMarkPreview(markStudent.getSheetPathList()));
 
-            List<MarkTask> markTaskList = markTaskService.listByStudentIdAndMarkerId(studentId, user.getId());
+            List<MarkTask> markTaskList = markTaskService.listByStudentId(studentId);
             task.setSliceConfig(buildPic(markTaskList));
-            task.setQuestionList(buildQuestionList(user.getId(), markTaskList));
+            task.setQuestionList(buildQuestionList(null, markTaskList));
             task.setMarkerScore(calcScore(markTaskList));
             MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(markStudent.getExamId(), markStudent.getPaperNumber());
             task.setObjectiveScore(markPaper.getShowObjectScore() ? markStudent.getObjectiveScore() : null);
@@ -297,7 +296,7 @@ public class TaskServiceImpl implements TaskService {
             List<SpecialTagDTO> headerTag = t.listHeaderTag();
             tq.setHeaderTagList(headerTag.toArray(new SpecialTagDTO[headerTag.size()]));
             tq.setMarkerScore(t.getMarkerScore());
-            tq.setSelfMark(t.getUserId() == null || t.getUserId().equals(userId));
+            tq.setSelfMark(userId == null || (t.getUserId() == null || t.getUserId().equals(userId)));
             tq.setRejected(t.getStatus().equals(MarkTaskStatus.REJECTED));
             tq.setPrevious(t.getStatus().equals(MarkTaskStatus.MARKED));
             tq.setProblem(t.getStatus().equals(MarkTaskStatus.PROBLEM));