Browse Source

3.4.4 update-20250305,联调bug修复

xiaofei 3 months ago
parent
commit
11ad9bca97

+ 5 - 1
distributed-print/install/mysql/upgrade/3.4.4.sql

@@ -167,4 +167,8 @@ INSERT INTO sys_privilege
 VALUES(1197, '字体修改', '/api/admin/set/font/update', 'URL', 508, 21, 'AUTH', NULL, 1, 0, 1);
 INSERT INTO sys_privilege
 (id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display)
-VALUES(1198, '字体删除', '/api/admin/set/font/delete', 'URL', 508, 21, 'AUTH', NULL, 1, 0, 1);
+VALUES(1198, '字体删除', '/api/admin/set/font/delete', 'URL', 508, 21, 'AUTH', NULL, 1, 0, 1);
+
+-- 2025-03-05
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('1015', '获取识别对照任务', '/api/scan/task/omr/getTask', 'URL', '970', '44', 'AUTH', '1', '1', '1');
+UPDATE `sys_privilege` SET `related` = '971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1007,1009,1010,1013,1014,1015,1148,3072,3073,3074,3075' WHERE (`id` = '970');

+ 9 - 5
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkController.java

@@ -12,7 +12,6 @@ import com.qmth.teachcloud.mark.enums.QuestionModel;
 import com.qmth.teachcloud.mark.params.MarkResult;
 import com.qmth.teachcloud.mark.service.MarkService;
 import com.qmth.teachcloud.mark.service.MarkUserPaperService;
-import com.qmth.teachcloud.mark.service.MarkUserQuestionService;
 import com.qmth.teachcloud.mark.utils.TaskLock;
 import com.qmth.teachcloud.mark.utils.TaskLockUtil;
 import io.lettuce.core.GeoArgs.Sort;
@@ -47,14 +46,19 @@ public class MarkController extends BaseController {
     @Autowired
     private SysUserService userService;
 
+    /**
+     * 查询内存数据
+     *
+     * @param examId      考试ID
+     * @param paperNumber 试卷编号
+     */
     @PostMapping(value = "/")
     @Aac(auth = false)
     public Object getTaskLock(@RequestParam(required = false) Long examId,
-                              @RequestParam(required = false) String paperNumber,
-                              @RequestParam(required = false) Integer groupNumber) {
+                              @RequestParam(required = false) String paperNumber) {
         Map<String, TaskLock> formalTaskMap = TaskLockUtil.getFormalTaskMap();
-        if (examId != null && StringUtils.isNotBlank(paperNumber) && groupNumber != null) {
-            TaskLock taskLock = TaskLockUtil.getFormalTask(examId + "_" + paperNumber + "_" + groupNumber);
+        if (examId != null && StringUtils.isNotBlank(paperNumber)) {
+            TaskLock taskLock = TaskLockUtil.getFormalTask(examId + "_" + paperNumber);
             return taskLock.list();
         }
         Map<String, List<Map<String, Object>>> map = new HashMap<>();

+ 18 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/mark/MarkUser.java

@@ -7,6 +7,8 @@ public class MarkUser {
 
     @JsonSerialize(using = ToStringSerializer.class)
     private Long markUserQuestionId;
+    private Integer mainNumber;
+    private Integer subNumber;
     @JsonSerialize(using = ToStringSerializer.class)
     private Long userId;
     private String loginName;
@@ -22,6 +24,22 @@ public class MarkUser {
         this.markUserQuestionId = markUserQuestionId;
     }
 
+    public Integer getMainNumber() {
+        return mainNumber;
+    }
+
+    public void setMainNumber(Integer mainNumber) {
+        this.mainNumber = mainNumber;
+    }
+
+    public Integer getSubNumber() {
+        return subNumber;
+    }
+
+    public void setSubNumber(Integer subNumber) {
+        this.subNumber = subNumber;
+    }
+
     public Long getUserId() {
         return userId;
     }

+ 38 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/manage/TaskQuestion.java

@@ -3,6 +3,8 @@ package com.qmth.teachcloud.mark.dto.mark.manage;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.bean.marking.MarkConfigItem;
+import com.qmth.teachcloud.common.enums.mark.MarkProblemStatus;
+import com.qmth.teachcloud.common.enums.mark.MarkProblemType;
 import com.qmth.teachcloud.mark.dto.mark.SpecialTagDTO;
 import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
 import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
@@ -119,7 +121,18 @@ public class TaskQuestion implements Serializable {
      * 错误信息
      */
     private String message;
-
+    /**
+     * 是否问题卷
+     */
+    private boolean isProblem;
+    /**
+     * 问题卷类型
+     */
+    private MarkProblemType problemType;
+    /**
+     * 问题卷类型
+     */
+    private String problemRemark;
 
     public Long getTaskId() {
         return taskId;
@@ -328,4 +341,28 @@ public class TaskQuestion implements Serializable {
     public void setMessage(String message) {
         this.message = message;
     }
+
+    public boolean isProblem() {
+        return isProblem;
+    }
+
+    public void setProblem(boolean problem) {
+        isProblem = problem;
+    }
+
+    public MarkProblemType isProblemType() {
+        return problemType;
+    }
+
+    public void setProblemType(MarkProblemType problemType) {
+        this.problemType = problemType;
+    }
+
+    public String getProblemRemark() {
+        return problemRemark;
+    }
+
+    public void setProblemRemark(String problemRemark) {
+        this.problemRemark = problemRemark;
+    }
 }

+ 18 - 7
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/TaskServiceImpl.java

@@ -5,25 +5,28 @@ import com.qmth.teachcloud.common.bean.marking.MarkConfigItem;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.enums.mark.SubjectiveStatus;
-import com.qmth.teachcloud.common.service.SysUserService;
+import com.qmth.teachcloud.common.enums.mark.MarkProblemStatus;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.dto.mark.MarkStudentVo;
 import com.qmth.teachcloud.mark.dto.mark.ScoreItem;
 import com.qmth.teachcloud.mark.dto.mark.SpecialTagDTO;
-import com.qmth.teachcloud.mark.dto.mark.manage.*;
+import com.qmth.teachcloud.mark.dto.mark.manage.MarkerTrackDTO;
+import com.qmth.teachcloud.mark.dto.mark.manage.Task;
+import com.qmth.teachcloud.mark.dto.mark.manage.TaskQuestion;
+import com.qmth.teachcloud.mark.dto.mark.manage.TrackDTO;
 import com.qmth.teachcloud.mark.entity.*;
 import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
 import com.qmth.teachcloud.mark.service.*;
 import com.qmth.teachcloud.mark.utils.BigDecimalUtils;
-import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 
 @Service
 public class TaskServiceImpl implements TaskService {
@@ -41,7 +44,7 @@ public class TaskServiceImpl implements TaskService {
     @Resource
     private TeachcloudCommonService teachcloudCommonService;
     @Resource
-    private SysUserService sysUserService;
+    private MarkProblemHistoryService markProblemHistoryService;
 
     @Override
     public Task build(MarkArbitrateHistory markArbitrateHistory, MarkQuestion markQuestion) {
@@ -297,6 +300,14 @@ public class TaskServiceImpl implements TaskService {
             tq.setSelfMark(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));
+            if (tq.isProblem()) {
+                MarkProblemHistory markProblemHistory = markProblemHistoryService.findByTaskIdAndStatus(t.getId(), MarkProblemStatus.WAITING);
+                if (markProblemHistory != null) {
+                    tq.setProblemType(markProblemHistory.getType());
+                    tq.setProblemRemark(markProblemHistory.getRemark());
+                }
+            }
             taskQuestions.add(tq);
         }
         return taskQuestions;

+ 14 - 11
teachcloud-mark/src/main/resources/mapper/MarkUserQuestionMapper.xml

@@ -65,30 +65,33 @@
     <select id="listGroupUserByExamIdAndPaperNumberAndQuestionId"
             resultType="com.qmth.teachcloud.common.bean.dto.mark.MarkUser">
         SELECT
-            distinct
-            mug.id markUserQuestionId,
+            muq.id markUserQuestionId,
+            mq.main_number mainNumber,
+            mq.sub_number subNumber,
             su.id userId,
             su.login_name loginName,
             su.real_name name,
             so.name orgName,
-            mug.enable
+            muq.enable
         FROM
-            mark_user_question mug
+            mark_user_question muq
                 LEFT JOIN
-            sys_user su ON mug.user_id = su.id
+            mark_question mq ON muq.question_id = mq.id
+                LEFT JOIN
+            sys_user su ON muq.user_id = su.id
                 LEFT JOIN
             sys_org so ON su.org_id = so.id
         where
-            mug.exam_id = #{examId}
-            AND mug.paper_number = #{paperNumber}
+            muq.exam_id = #{examId}
+            AND muq.paper_number = #{paperNumber}
             <if test="questionId != null">
-                AND mug.question_id = #{questionId}
+                AND muq.question_id = #{questionId}
             </if>
             <if test="className != null and className != ''">
                 AND EXISTS (select 1 from mark_user_class muc
-                            where mug.exam_id = muc.exam_id
-                              and mug.paper_number = muc.paper_number
-                              and mug.user_id = muc.user_id
+                            where muq.exam_id = muc.exam_id
+                              and muq.paper_number = muc.paper_number
+                              and muq.user_id = muc.user_id
                               and muc.class_name = #{className})
             </if>
     </select>