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

3.4.4 update-20250226,联调bug修复2

xiaofei 3 сар өмнө
parent
commit
f502a0a9db
20 өөрчлөгдсөн 151 нэмэгдсэн , 72 устгасан
  1. 21 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientPrintTaskDto.java
  2. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicExamStudentMapper.java
  3. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicExamStudentService.java
  4. 5 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java
  5. 6 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java
  6. 15 0
      distributed-print-business/src/main/resources/mapper/BasicExamStudentMapper.xml
  7. 10 8
      distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkClassController.java
  8. 1 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkQuestionSubjectiveController.java
  9. 5 5
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/mark/group/MarkClassUserParams.java
  10. 5 5
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/mark/group/QuestionPictureConfigParams.java
  11. 9 14
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/bean/answercard/CardFile.java
  12. 1 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkUserQuestion.java
  13. 3 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkUserQuestionMapper.java
  14. 2 2
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkUserClassService.java
  15. 3 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkUserQuestionService.java
  16. 1 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkQuestionServiceImpl.java
  17. 14 35
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserClassServiceImpl.java
  18. 12 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserQuestionServiceImpl.java
  19. 29 0
      teachcloud-mark/src/main/resources/mapper/MarkUserQuestionMapper.xml
  20. 5 0
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/service/impl/PrintFinishServiceImpl.java

+ 21 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientPrintTaskDto.java

@@ -1,6 +1,8 @@
 package com.qmth.distributed.print.business.bean.dto;
 
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.annotation.ExcelProperty;
 
 /**
@@ -8,6 +10,8 @@ import com.qmth.teachcloud.common.annotation.ExcelProperty;
  */
 public class ClientPrintTaskDto {
 
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examId;
     private String examDetailId;
     private String printPlanId;
     @ExcelProperty(name = "印刷计划", width = 30, index = 2)
@@ -70,6 +74,15 @@ public class ClientPrintTaskDto {
     private Boolean incluedSign;
     private Boolean incluedPackage;
     private Boolean incluedCheckin;
+    private String questionSetter;
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
 
     public String getExamDetailId() {
         return examDetailId;
@@ -422,4 +435,12 @@ public class ClientPrintTaskDto {
     public void setIncluedCheckin(Boolean incluedCheckin) {
         this.incluedCheckin = incluedCheckin;
     }
+
+    public String getQuestionSetter() {
+        return questionSetter;
+    }
+
+    public void setQuestionSetter(String questionSetter) {
+        this.questionSetter = questionSetter;
+    }
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicExamStudentMapper.java

@@ -51,4 +51,6 @@ public interface BasicExamStudentMapper extends BaseMapper<BasicExamStudent> {
     ExamStudentDto queryExamStudent(@Param("examId") Long examId, @Param("courseId") Long courseId, @Param("paperNumber") String paperNumber);
 
     void updateEnableFalse(@Param("examId") Long examId);
+
+    String listByTeacherByExamIdAndPaperNumber(@Param("examId") Long examId, @Param("paperNumber") String paperNumber);
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicExamStudentService.java

@@ -98,4 +98,6 @@ public interface BasicExamStudentService extends IService<BasicExamStudent> {
     void clearPaperNumberAndPaperTypeByExamIdAndPaperNumber(Long examId, String paperNumber);
 
     Map<String, Object> saveBasicExamStudentFormSync(Long schoolId, Long examId, List<TSyncDataStudent> examStudentDataVo);
+
+    String listByTeacherByExamIdAndPaperNumber(Long examId, String paperNumber);
 }

+ 5 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -786,4 +786,9 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
         map.put("errMsg", errorMsg.toString());
         return map;
     }
+
+    @Override
+    public String listByTeacherByExamIdAndPaperNumber(Long examId, String paperNumber) {
+        return this.baseMapper.listByTeacherByExamIdAndPaperNumber(examId, paperNumber);
+    }
 }

+ 6 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java

@@ -50,6 +50,8 @@ public class ClientServiceImpl implements ClientService {
     @Resource
     private BasicPrintConfigService basicPrintConfigService;
     @Resource
+    private BasicExamStudentService basicExamStudentService;
+    @Resource
     private ExamTaskService examTaskService;
     @Resource
     private ExamTaskDetailService examTaskDetailService;
@@ -261,6 +263,10 @@ public class ClientServiceImpl implements ClientService {
             if (StringUtils.isNotBlank(record.getClassName())) {
                 record.setClassName(String.join(",", new HashSet<>(Arrays.asList(record.getClassName().split(",")))));
             }
+
+            // 任课老师
+            record.setQuestionSetter(basicExamStudentService.listByTeacherByExamIdAndPaperNumber(record.getExamId(), record.getPaperNumber()));
+
         }
         return clientPrintTaskDtoIPage;
     }

+ 15 - 0
distributed-print-business/src/main/resources/mapper/BasicExamStudentMapper.xml

@@ -194,4 +194,19 @@
             </if>
         </where>
     </select>
+    <select id="listByTeacherByExamIdAndPaperNumber" resultType="java.lang.String">
+        SELECT
+            GROUP_CONCAT(CONCAT(su.real_name, '(', su.login_name, ')'))
+        FROM
+            sys_user su
+        WHERE
+                su.id IN (SELECT
+                              bes.teacher_id
+                          FROM
+                              basic_exam_student bes
+                          WHERE
+                              bes.exam_id = #{examId}
+                            AND bes.paper_number = #{paperNumber}
+                            AND bes.teacher_id IS NOT NULL)
+    </select>
 </mapper>

+ 10 - 8
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkClassController.java

@@ -8,6 +8,7 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.mark.dto.mark.setting.MarkUserClassDto;
 import com.qmth.teachcloud.mark.service.MarkUserClassService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -42,19 +43,20 @@ public class MarkClassController extends BaseController {
                          @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
                          @ApiParam(value = "是否开启分班阅", required = true) @RequestParam Boolean classMark) {
         validMarkPaperForMark(examId, paperNumber);
-        return ResultUtil.ok(markUserClassService.updateOpenMarkClassByExamIdAndPaperNumber(examId, paperNumber, classMark));
+        markUserClassService.updateOpenMarkClassByExamIdAndPaperNumber(examId, paperNumber, classMark);
+        return ResultUtil.ok(true);
     }
 
     /**
      * 查询
      */
-//    @ApiOperation(value = "查询")
-//    @RequestMapping(value = "/list", method = RequestMethod.POST)
-//    public Result list(@ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
-//                       @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber) {
-//        MarkUserClassDto markUserClassDto = markUserClassService.listMarkUserClassByExamIdAndPaperNumber(examId, paperNumber);
-//        return ResultUtil.ok(markUserClassDto);
-//    }
+    @ApiOperation(value = "查询")
+    @RequestMapping(value = "/list", method = RequestMethod.POST)
+    public Result list(@ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
+                       @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber) {
+        MarkUserClassDto markUserClassDto = markUserClassService.listMarkUserClassByExamIdAndPaperNumber(examId, paperNumber);
+        return ResultUtil.ok(markUserClassDto);
+    }
 
     /**
      * 查询

+ 1 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkQuestionSubjectiveController.java

@@ -141,9 +141,8 @@ public class MarkQuestionSubjectiveController extends BaseController {
     /**
      * 评阅题目列表
      */
-    @Aac(auth = false)
     @ApiOperation(value = "评阅题目列表")
-    @RequestMapping(value = "/list/groupQuestions", method = RequestMethod.POST)
+    @RequestMapping(value = "/number/list", method = RequestMethod.POST)
     public Result listGroupQuestions(@ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
                                      @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber) {
         List<MarkGroupQuestionsDto> markGroupQuestionsDtoList = markQuestionService.listGroupQuestions(examId, paperNumber);

+ 5 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/mark/group/MarkClassUserParams.java

@@ -10,7 +10,7 @@ public class MarkClassUserParams implements Serializable {
 
     private Long examId;
     private String paperNumber;
-    private List<MarkGroupClassUserParams> groupMarkerClass;
+    private List<MarkGroupClassUserParams> questionMarkerClass;
 
     public Long getExamId() {
         return examId;
@@ -28,11 +28,11 @@ public class MarkClassUserParams implements Serializable {
         this.paperNumber = paperNumber;
     }
 
-    public List<MarkGroupClassUserParams> getGroupMarkerClass() {
-        return groupMarkerClass;
+    public List<MarkGroupClassUserParams> getQuestionMarkerClass() {
+        return questionMarkerClass;
     }
 
-    public void setGroupMarkerClass(List<MarkGroupClassUserParams> groupMarkerClass) {
-        this.groupMarkerClass = groupMarkerClass;
+    public void setQuestionMarkerClass(List<MarkGroupClassUserParams> questionMarkerClass) {
+        this.questionMarkerClass = questionMarkerClass;
     }
 }

+ 5 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/params/mark/group/QuestionPictureConfigParams.java

@@ -13,7 +13,7 @@ public class QuestionPictureConfigParams implements Serializable {
     private Long examId;
 
     private String paperNumber;
-    private Long questionId;
+    private List<Long> questionIds;
 
     private List<PictureConfig> pictureConfigs;
 
@@ -33,12 +33,12 @@ public class QuestionPictureConfigParams implements Serializable {
         this.paperNumber = paperNumber;
     }
 
-    public Long getQuestionId() {
-        return questionId;
+    public List<Long> getQuestionIds() {
+        return questionIds;
     }
 
-    public void setQuestionId(Long questionId) {
-        this.questionId = questionId;
+    public void setQuestionIds(List<Long> questionIds) {
+        this.questionIds = questionIds;
     }
 
     public List<PictureConfig> getPictureConfigs() {

+ 9 - 14
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/bean/answercard/CardFile.java

@@ -1,17 +1,5 @@
 package com.qmth.teachcloud.mark.bean.answercard;
 
-import java.awt.Image;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.util.Base64;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
-import javax.imageio.ImageIO;
-
 import com.alibaba.fastjson.JSON;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@@ -20,8 +8,15 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.qmth.boot.core.exception.ParameterException;
 import com.qmth.teachcloud.common.bean.dto.mark.PictureConfig;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.boot.web.embedded.tomcat.ConfigurableTomcatWebServerFactory;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.Base64;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
 
 /**
  * 卡格式文件内容结构

+ 1 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkUserQuestion.java

@@ -91,6 +91,7 @@ public class MarkUserQuestion implements Serializable {
         this.paperNumber = paperNumber;
         this.questionId = questionId;
         this.userId = userId;
+        this.enable = true;
     }
 
     public Long getId() {

+ 3 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkUserQuestionMapper.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.mark.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.mark.dto.mark.entrance.MarkEntranceDto;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkQualityDto;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkUserGroupProgressDto;
@@ -33,4 +34,6 @@ public interface MarkUserQuestionMapper extends BaseMapper<MarkUserQuestion> {
     int countByMarkTask(@Param("userId") Long userId, @Param("status") String status);
 
     void updateRejectCountByExamIdAndPaperNumberAndQuestionIdAndUserId(@Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("questionId") Long questionId, @Param("userId") Long userId);
+
+    List<SysUser> listDefaultMarkerByExamIdAndPaperNumber(@Param("examId") Long examId, @Param("paperNumber") String paperNumber);
 }

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

@@ -21,11 +21,11 @@ import java.util.List;
  */
 public interface MarkUserClassService extends IService<MarkUserClass> {
 
-    MarkUserClassDto updateOpenMarkClassByExamIdAndPaperNumber(Long examId, String paperNumber, Boolean classMark);
+    void updateOpenMarkClassByExamIdAndPaperNumber(Long examId, String paperNumber, Boolean classMark);
 
     void deleteByExamIdAndPaperNumber(Long examId, String paperNumber);
 
-//    MarkUserClassDto listMarkUserClassByExamIdAndPaperNumber(Long examId, String paperNumber);
+    MarkUserClassDto listMarkUserClassByExamIdAndPaperNumber(Long examId, String paperNumber);
 
     List<MarkUser> listClassMarkerByExamIdAndPaperNumberAndQuestionIdAndClassName(Long examId, String paperNumber, Long questionId, String className);
 

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

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.mark.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.enums.mark.MarkMode;
 import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import com.qmth.teachcloud.mark.bean.marker.MarkerAddParam;
@@ -76,4 +77,6 @@ public interface MarkUserQuestionService extends IService<MarkUserQuestion> {
     int countByMarkTask(Long userId, MarkPaperStatus status);
 
     void updateRejectCountByExamIdAndPaperNumberAndQuestionIdAndUserId(Long examId, String paperNumber, Long questionId, Long userId);
+
+    void saveDefaultMarker(Long examId, String paperNumber, List<MarkQuestion> markQuestions);
 }

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

@@ -605,7 +605,7 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
         }
         UpdateWrapper<MarkQuestion> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(MarkQuestion::getPicList, JSON.toJSONString(pictureConfigs))
-                .eq(MarkQuestion::getId, questionPictureConfigParams.getExamId());
+                .in(MarkQuestion::getId, questionPictureConfigParams.getQuestionIds());
         this.update(updateWrapper);
     }
 

+ 14 - 35
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserClassServiceImpl.java

@@ -56,7 +56,7 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
 
     @Transactional
     @Override
-    public MarkUserClassDto updateOpenMarkClassByExamIdAndPaperNumber(Long examId, String paperNumber, Boolean classMark) {
+    public void updateOpenMarkClassByExamIdAndPaperNumber(Long examId, String paperNumber, Boolean classMark) {
         UpdateWrapper<MarkPaper> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(MarkPaper::getClassMark, classMark)
                 .eq(MarkPaper::getExamId, examId)
@@ -72,7 +72,18 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
                 this.deleteByExamIdAndPaperNumber(examId, paperNumber);
             }
         }
+    }
+
+    @Override
+    public void deleteByExamIdAndPaperNumber(Long examId, String paperNumber) {
+        UpdateWrapper<MarkUserClass> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(MarkUserClass::getExamId, examId)
+                .eq(MarkUserClass::getPaperNumber, paperNumber);
+        this.remove(updateWrapper);
+    }
 
+    @Override
+    public MarkUserClassDto listMarkUserClassByExamIdAndPaperNumber(Long examId, String paperNumber) {
         // 课程下所有班级数据
         List<String> paperNumberClassList = markStudentService.listClassByExamIdAndCourseCode(examId, paperNumber);
         List<MarkUser> markUserList = markUserQuestionService.listGroupUserByExamIdAndPaperNumberAndQuestionIdAndClassName(examId, paperNumber, null, null);
@@ -95,38 +106,6 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
         return markUserClassDto;
     }
 
-    @Override
-    public void deleteByExamIdAndPaperNumber(Long examId, String paperNumber) {
-        UpdateWrapper<MarkUserClass> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().eq(MarkUserClass::getExamId, examId)
-                .eq(MarkUserClass::getPaperNumber, paperNumber);
-        this.remove(updateWrapper);
-    }
-
-//    @Override
-//    public MarkUserClassDto listMarkUserClassByExamIdAndPaperNumber(Long examId, String paperNumber) {
-//        // 课程下所有班级数据
-//        List<String> paperNumberClassList = markStudentService.listClassByExamIdAndCourseCode(examId, paperNumber);
-//        List<MarkUser> markUserList = markUserGroupService.listGroupUserByExamIdAndPaperNumberAndGroupNumberAndClassName(examId, paperNumber, null, null);
-//
-//        MarkUserClassDto markUserClassDto = new MarkUserClassDto();
-//        markUserClassDto.setClassNames(paperNumberClassList);
-//
-//        List<MarkUserClassDetailDto> markUserClassDetailDtos = new ArrayList<>();
-//        for (MarkUser marker : markUserList) {
-//            MarkUserClassDetailDto markUserClassDetailDto = new MarkUserClassDetailDto();
-//            markUserClassDetailDto.setMarker(marker);
-//            List<MarkUserClass> markUserClasses = this.baseMapper.listMarkerClassByExamIdAndPaperNumberAndUserId(examId, paperNumber, marker.getUserId());
-//            // 剔除掉已经更名的班级
-//            List<String> markUserClassSelectList = markUserClasses.stream().map(MarkUserClass::getClassName).collect(Collectors.toList());
-//            List<String> intersectionList = (List<String>) CollectionUtils.intersection(paperNumberClassList, markUserClassSelectList);
-//            markUserClassDetailDto.setMarkerClassList(intersectionList);
-//            markUserClassDetailDtos.add(markUserClassDetailDto);
-//        }
-//        markUserClassDto.setMarkerClass(markUserClassDetailDtos);
-//        return markUserClassDto;
-//    }
-
     @Override
     public List<MarkUser> listClassMarkerByExamIdAndPaperNumberAndQuestionIdAndClassName(Long examId, String paperNumber, Long questionId, String className) {
         return this.baseMapper.listClassMarkerByExamIdAndPaperNumberAndQuestionIdAndClassName(examId, paperNumber, questionId, className);
@@ -145,7 +124,7 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
             for (MarkQuestion markQuestion : markQuestionList) {
                 Set<String> groupBindClassSet = new HashSet<>();
                 List<MarkUserQuestion> markUserQuestionList = markUserQuestionService.listByExamIdAndPaperNumberAndQuestionId(examId, paperNumber, markQuestion.getId());
-                for (MarkGroupClassUserParams groupUserClassInfo : markClassUserParams.getGroupMarkerClass()) {
+                for (MarkGroupClassUserParams groupUserClassInfo : markClassUserParams.getQuestionMarkerClass()) {
                     if (markUserQuestionList.stream().filter(m -> m.getUserId().equals(groupUserClassInfo.getMarker().getUserId())).count() > 0) {
                         groupBindClassSet.addAll(groupUserClassInfo.getMarkerClassList());
                     }
@@ -159,7 +138,7 @@ public class MarkUserClassServiceImpl extends ServiceImpl<MarkUserClassMapper, M
         }
 
         List<MarkUserClass> markUserClasses = new ArrayList<>();
-        for (MarkGroupClassUserParams groupUserClassInfo : markClassUserParams.getGroupMarkerClass()) {
+        for (MarkGroupClassUserParams groupUserClassInfo : markClassUserParams.getQuestionMarkerClass()) {
             for (String className : groupUserClassInfo.getMarkerClassList()) {
                 MarkUserClass markUserClass = new MarkUserClass();
                 markUserClass.setId(SystemConstant.getDbUuid());

+ 12 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserQuestionServiceImpl.java

@@ -366,4 +366,16 @@ public class MarkUserQuestionServiceImpl extends ServiceImpl<MarkUserQuestionMap
     public void updateRejectCountByExamIdAndPaperNumberAndQuestionIdAndUserId(Long examId, String paperNumber, Long questionId, Long userId) {
         this.baseMapper.updateRejectCountByExamIdAndPaperNumberAndQuestionIdAndUserId(examId, paperNumber, questionId, userId);
     }
+
+    @Override
+    public void saveDefaultMarker(Long examId, String paperNumber, List<MarkQuestion> markQuestions) {
+        List<SysUser> sysUserList = this.baseMapper.listDefaultMarkerByExamIdAndPaperNumber(examId, paperNumber);
+        List<MarkUserQuestion> markUserQuestions = new ArrayList<>();
+        for (SysUser sysUser : sysUserList) {
+            for (MarkQuestion markQuestion : markQuestions) {
+                markUserQuestions.add(new MarkUserQuestion(examId, paperNumber, markQuestion.getId(), sysUser.getId()));
+            }
+        }
+        this.saveBatch(markUserQuestions);
+    }
 }

+ 29 - 0
teachcloud-mark/src/main/resources/mapper/MarkUserQuestionMapper.xml

@@ -169,6 +169,35 @@
             </if>
         </where>
     </select>
+    <select id="listDefaultMarkerByExamIdAndPaperNumber"
+            resultType="com.qmth.teachcloud.common.entity.SysUser">
+        SELECT
+            su.*
+        FROM
+            sys_user su
+        WHERE
+                su.id IN (SELECT
+                              et.user_id
+                          FROM
+                              exam_task et
+                          WHERE
+                              et.exam_id = #{examId}
+                            AND et.paper_number = #{paperNumber}
+                            AND et.user_id IS NOT NULL UNION SELECT
+                              bes.teacher_id
+                          FROM
+                              basic_exam_student bes
+                          WHERE
+                              EXISTS( SELECT
+                                          1
+                                      FROM
+                                          mark_student es
+                                      WHERE
+                                          es.exam_id = #{examId}
+                                        AND es.paper_number = #{paperNumber}
+                                        AND bes.id = es.basic_student_id)
+                            AND bes.teacher_id IS NOT NULL)
+    </select>
 
     <update id="updateRejectCountByExamIdAndPaperNumberAndQuestionIdAndUserId">
         UPDATE mark_user_question

+ 5 - 0
teachcloud-task/src/main/java/com/qmth/teachcloud/task/service/impl/PrintFinishServiceImpl.java

@@ -65,6 +65,8 @@ public class PrintFinishServiceImpl implements PrintFinishService {
     @Resource
     private MarkPaperPackageService markPaperPackageService;
     @Resource
+    private MarkUserQuestionService markUserQuestionService;
+    @Resource
     private ExamDetailService examDetailService;
     @Resource
     private ExamStudentService examStudentService;
@@ -311,6 +313,9 @@ public class PrintFinishServiceImpl implements PrintFinishService {
                 }
                 markQuestionService.saveBatch(markQuestions);
                 markQuestionAnswerService.saveBatch(markQuestionAnswers);
+
+                // 命题老师,任课老师,默认为评卷员
+                markUserQuestionService.saveDefaultMarker(examId, paperNumber, markQuestions);
             }
         } catch (Exception e) {
             log.info("同步结构失败");