瀏覽代碼

3.4.4 update-20250313,自测bug修复

xiaofei 3 月之前
父節點
當前提交
4099b4a37e

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/approvalForm/BasicInfo.java

@@ -39,6 +39,9 @@ public class BasicInfo {
     @ApiModelProperty(value = "拟卷老师")
     private String teacherName;
 
+    @ApiModelProperty(value = "课程代码")
+    private String courseCode;
+
     @ApiModelProperty(value = "课程名称")
     private String courseName;
 
@@ -114,6 +117,14 @@ public class BasicInfo {
         this.teacherName = teacherName;
     }
 
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
     public String getCourseName() {
         return courseName;
     }

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1632,6 +1632,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
         if (basicCourse != null) {
             basicInfo.setCourseName(basicCourse.getName());
+            basicInfo.setCourseCode(basicCourse.getCode());
             SysOrg sysOrg = sysOrgService.getById(basicCourse.getTeachingRoomId());
             basicInfo.setCollegeId(sysOrg != null ? sysOrg.getId() : null);
             basicInfo.setCollegeName(sysOrg != null ? sysOrg.getName() : null);

+ 18 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintFinishServiceImpl.java

@@ -10,6 +10,7 @@ import com.qmth.distributed.print.business.enums.CardTypeEnum;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.util.ExamTaskUtil;
 import com.qmth.teachcloud.common.bean.tiku.paperData.answer.TikuAnswer;
+import com.qmth.teachcloud.common.bean.vo.FilePathVo;
 import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
@@ -18,6 +19,7 @@ import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.mark.bean.answercard.CardFile;
 import com.qmth.teachcloud.mark.bean.vo.parseCard.Struct;
+import com.qmth.teachcloud.mark.dto.mark.MarkPaperFileDto;
 import com.qmth.teachcloud.mark.entity.*;
 import com.qmth.teachcloud.mark.enums.CardSource;
 import com.qmth.teachcloud.mark.service.*;
@@ -91,14 +93,17 @@ public class PrintFinishServiceImpl implements PrintFinishService {
                 if (CollectionUtils.isNotEmpty(paperInfoVos)) {
                     // 按AB排序
                     paperInfoVos.sort(Comparator.comparing(PaperInfoVo::getName));
-                    List<String> urlList = new ArrayList<>();
+                    List<MarkPaperFileDto> subjectiveAnswerFileDtoList = new ArrayList<>();
                     for (PaperInfoVo paperInfoVo : paperInfoVos) {
                         BasicAttachment basicAttachment = basicAttachmentService.getById(paperInfoVo.getAttachmentId());
                         if (basicAttachment != null) {
-                            urlList.add(basicAttachment.getPath());
+                            MarkPaperFileDto subjectivePaperFileDto = new MarkPaperFileDto();
+                            subjectivePaperFileDto.setPaperType(paperInfoVo.getName());
+                            subjectivePaperFileDto.setFilePathVo(JSON.parseObject(basicAttachment.getPath(), FilePathVo.class));
+                            subjectiveAnswerFileDtoList.add(subjectivePaperFileDto);
                         }
                     }
-                    insertMarkPaper.setPaperFilePath(JSON.toJSONString(urlList));
+                    insertMarkPaper.setPaperFilePath(JSON.toJSONString(subjectiveAnswerFileDtoList));
                 }
                 markPaperService.save(insertMarkPaper);
             }
@@ -309,16 +314,20 @@ public class PrintFinishServiceImpl implements PrintFinishService {
                     }
                 }
                 markQuestionService.saveBatch(markQuestions);
+                markQuestionAnswerService.saveBatch(markQuestionAnswers);
+
                 try {
-                    // 解析评卷区坐标
-                    markQuestionService.updatePic(content, markQuestions);
+                    // 只更新主观题
+                    List<MarkQuestion> questions = markQuestions.stream().filter(m -> !m.getObjective()).collect(Collectors.toList());
+                    if (CollectionUtils.isNotEmpty(questions)) {
+                        // 解析评卷区坐标
+                        markQuestionService.updatePic(content, questions);
+                        // 命题老师,任课老师,默认为评卷员
+                        markUserQuestionService.saveDefaultMarker(examId, paperNumber, questions);
+                    }
                 } catch (Exception e) {
                     log.info("解析评卷区失败");
                 }
-                markQuestionAnswerService.saveBatch(markQuestionAnswers);
-
-                // 命题老师,任课老师,默认为评卷员
-                markUserQuestionService.saveDefaultMarker(examId, paperNumber, markQuestions);
             }
         } catch (Exception e) {
             log.info("同步结构失败");

+ 2 - 2
distributed-print/install/mysql/upgrade/3.4.4.sql

@@ -30,8 +30,8 @@ ALTER TABLE `mark_question`
     ADD COLUMN `double_rate` DOUBLE NULL COMMENT '双评比例' AFTER `pic_list`,
     ADD COLUMN `arbitrate_threshold` DOUBLE NULL COMMENT '仲裁阈值' AFTER `double_rate`,
     ADD COLUMN `score_policy` VARCHAR(10) NULL COMMENT '合分策略' AFTER `arbitrate_threshold`,
-    ADD COLUMN `task_count` INT NULL COMMENT '任务总量' AFTER `score_policy`,
-    ADD COLUMN `marked_count` INT NULL COMMENT '已评数量' AFTER `task_count`,
+    ADD COLUMN `task_count` INT NULL DEFAULT 0 COMMENT '任务总量' AFTER `score_policy`,
+    ADD COLUMN `marked_count` INT NULL DEFAULT 0 COMMENT '已评数量' AFTER `task_count`,
     ADD COLUMN `left_count` INT NULL COMMENT '剩余数量' AFTER `marked_count`;
 
 ALTER TABLE `mark_user_group`

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

@@ -113,7 +113,7 @@ public class MarkController extends BaseController {
                                 @RequestParam String paperNumber,
                                 @RequestParam String uiSetting,
                                 @RequestParam MarkMode mode,
-                                @RequestParam QuestionModel questionModel) {
+                                @RequestParam(required = false) QuestionModel questionModel) {
         SysUser user = (SysUser) ServletUtil.getRequestUser();
         userService.updateUiSetting(user.getId(), StringEscapeUtils.unescapeHtml(StringUtils.trimToNull(uiSetting)));
         markUserPaperService.update(examId, paperNumber, user.getId(), mode, questionModel, null);

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

@@ -832,9 +832,7 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
     }
 
     @Override
-    public void updatePic(String content, List<MarkQuestion> markQuestions) {
-        // 只更新主观题
-        List<MarkQuestion> questions = markQuestions.stream().filter(m -> !m.getObjective()).collect(Collectors.toList());
+    public void updatePic(String content, List<MarkQuestion> questions) {
         if (CollectionUtils.isNotEmpty(questions)) {
             List<SubPictureConfig> pictureConfigs = CardParseUtils.parseCardPic(content, questions);
             List<SubPictureConfig> subPictureConfigList;