소스 검색

3.4.4 update-20250313,自测bug修复

xiaofei 3 달 전
부모
커밋
e33362ea87

+ 9 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/manage/MarkTaskDto.java

@@ -14,6 +14,7 @@ public class MarkTaskDto extends MarkTask {
     private String orgName;
     private String statusDisplay;
     private String questionNumber;
+    private Double questionScore;
 
     public String getStudentName() {
         return studentName;
@@ -94,4 +95,12 @@ public class MarkTaskDto extends MarkTask {
     public void setQuestionNumber(String questionNumber) {
         this.questionNumber = questionNumber;
     }
+
+    public Double getQuestionScore() {
+        return questionScore;
+    }
+
+    public void setQuestionScore(Double questionScore) {
+        this.questionScore = questionScore;
+    }
 }

+ 0 - 4
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkQuestionMapper.java

@@ -17,9 +17,5 @@ import java.util.List;
  */
 public interface MarkQuestionMapper extends BaseMapper<MarkQuestion> {
 
-    String assembleQuestionsByExamIdAndPaperNumberAndNumber(@Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("groupNumber") Integer groupNumber);
-
     List<MarkQuestionAnswerVo> listQuestionAnswerByExamIdAndPaperNumberAndPaperType(@Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("paperType") String paperType, @Param("objective") Boolean objective);
-
-    long countUnBindMarkerByExamIdAndPaperNumberAndObjective(@Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("objective") boolean objective);
 }

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

@@ -30,15 +30,6 @@ import java.util.List;
  */
 public interface MarkQuestionService extends IService<MarkQuestion> {
 
-    /**
-     * 查询分组的分组题目
-     *
-     * @param examId      考试ID
-     * @param paperNumber 试卷编号
-     * @param groupNumber 分组号
-     */
-    String assembleGroupQuestionsByExamIdAndPaperNumberAndNumber(Long examId, String paperNumber, Integer groupNumber);
-
     /**
      * 查询指定卷型完整试卷结构
      *
@@ -123,7 +114,4 @@ public interface MarkQuestionService extends IService<MarkQuestion> {
     MarkQuestionSubjectiveStepStatusDto stepStatus(Long examId, String paperNumber);
 
     void updatePic(String content, List<MarkQuestion> markQuestions);
-
-    long countUnBindMarkerByExamIdAndPaperNumberAndObjective(Long examId, String paperNumber, boolean objective);
-    long countByExamIdAndPaperNumberAndObjective(Long examId, String paperNumber, boolean objective);
 }

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

@@ -25,9 +25,9 @@ import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.bean.mark.DoubleMarkParam;
 import com.qmth.teachcloud.mark.bean.student.MarkStudentQuery;
 import com.qmth.teachcloud.mark.bean.vo.parseCard.pic.SubPictureConfig;
+import com.qmth.teachcloud.mark.dto.mark.MarkPaperFileDto;
 import com.qmth.teachcloud.mark.dto.mark.MarkQuestionAnswerVo;
 import com.qmth.teachcloud.mark.dto.mark.MarkStudentVo;
-import com.qmth.teachcloud.mark.dto.mark.MarkPaperFileDto;
 import com.qmth.teachcloud.mark.dto.mark.manage.*;
 import com.qmth.teachcloud.mark.dto.mark.setting.MarkGroupTaskDto;
 import com.qmth.teachcloud.mark.dto.mark.setting.MarkQuestionDto;
@@ -53,7 +53,6 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -94,11 +93,6 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
     @Resource
     private MarkSyncService markSyncService;
 
-    @Override
-    public String assembleGroupQuestionsByExamIdAndPaperNumberAndNumber(Long examId, String paperNumber, Integer groupNumber) {
-        return this.baseMapper.assembleQuestionsByExamIdAndPaperNumberAndNumber(examId, paperNumber, groupNumber);
-    }
-
     @Override
     public List<MarkQuestion> listQuestionByExamIdAndPaperNumber(Long examId, String paperNumber) {
         QueryWrapper<MarkQuestion> queryWrapper = new QueryWrapper<>();
@@ -839,31 +833,22 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
 
     @Override
     public void updatePic(String content, List<MarkQuestion> markQuestions) {
-        List<SubPictureConfig> pictureConfigs = CardParseUtils.parseCardPic(content, markQuestions);
-        List<SubPictureConfig> subPictureConfigList;
-        for (MarkQuestion markQuestion : markQuestions) {
-            // 填空题区域为一个整体
-            if (markQuestion.getQuestionType() == 4) {
-                subPictureConfigList = pictureConfigs.stream().filter(m -> m.getMainNumber().equals(markQuestion.getMainNumber())).collect(Collectors.toList());
-            } else {
-                subPictureConfigList = pictureConfigs.stream().filter(m -> m.getQuestionNumber().equals(markQuestion.getQuestionNumber())).collect(Collectors.toList());
+        // 只更新主观题
+        List<MarkQuestion> questions = markQuestions.stream().filter(m -> !m.getObjective()).collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(questions)) {
+            List<SubPictureConfig> pictureConfigs = CardParseUtils.parseCardPic(content, questions);
+            List<SubPictureConfig> subPictureConfigList;
+            for (MarkQuestion markQuestion : questions) {
+                // 填空题区域为一个整体
+                if (markQuestion.getQuestionType() == 4) {
+                    subPictureConfigList = pictureConfigs.stream().filter(m -> m.getMainNumber().equals(markQuestion.getMainNumber())).collect(Collectors.toList());
+                } else {
+                    subPictureConfigList = pictureConfigs.stream().filter(m -> m.getQuestionNumber().equals(markQuestion.getQuestionNumber())).collect(Collectors.toList());
+                }
+                markQuestion.setPicList(SubPictureConfig.transfer(subPictureConfigList));
             }
-            markQuestion.setPicList(SubPictureConfig.transfer(subPictureConfigList));
+            this.updateBatchById(questions);
         }
-        this.updateBatchById(markQuestions);
     }
 
-    @Override
-    public long countUnBindMarkerByExamIdAndPaperNumberAndObjective(Long examId, String paperNumber, boolean objective) {
-        return this.baseMapper.countUnBindMarkerByExamIdAndPaperNumberAndObjective(examId, paperNumber, objective);
-    }
-
-    @Override
-    public long countByExamIdAndPaperNumberAndObjective(Long examId, String paperNumber, boolean objective) {
-        QueryWrapper<MarkQuestion> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(MarkQuestion::getExamId, examId)
-                .eq(MarkQuestion::getPaperNumber, paperNumber)
-                .eq(MarkQuestion::getObjective, objective);
-        return this.count(queryWrapper);
-    }
 }

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

@@ -72,7 +72,7 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
             if (markManageDto != null) {
                 record.setMarkedCount(markManageDto.getMarkedCount());
                 record.setTotalCount(markManageDto.getTotalCount());
-                record.setPercent(Calculator.divide2String(Calculator.multiply(markManageDto.getMarkedCount(), 100), Double.valueOf(markManageDto.getTotalCount()), 2));
+                record.setPercent(markManageDto.getTotalCount() != null && markManageDto.getTotalCount() != 0 ? Calculator.divide2String(Calculator.multiply(markManageDto.getMarkedCount(), 100), Double.valueOf(markManageDto.getTotalCount()), 2) : "0");
             } else {
                 record.setMarkedCount(0);
                 record.setTotalCount(0);
@@ -372,6 +372,7 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
             // 分组题目
             MarkQuestion markQuestion = markQuestionService.getById(record.getQuestionId());
             record.setQuestionNumber(markQuestion.getQuestionNumber());
+            record.setQuestionScore(markQuestion.getTotalScore());
         }
         return markTaskDtoIPage;
     }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 6 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/utils/CardParseUtils.java


+ 0 - 28
teachcloud-mark/src/main/resources/mapper/MarkQuestionMapper.xml

@@ -18,18 +18,6 @@
         <result column="question_type" property="questionType" />
         <result column="name" property="name" />
     </resultMap>
-    <select id="assembleQuestionsByExamIdAndPaperNumberAndNumber" resultType="java.lang.String">
-        SELECT
-            GROUP_CONCAT(CONCAT(mq.main_number, '-', mq.sub_number))
-        FROM
-            mark_question mq
-        WHERE
-            mq.exam_id = #{examId}
-          AND mq.paper_number = #{paperNumber}
-          AND mq.group_number = #{groupNumber}
-          AND mq.objective = false
-        ORDER BY mq.main_number , mq.sub_number
-    </select>
     <select id="listQuestionAnswerByExamIdAndPaperNumberAndPaperType"
             resultType="com.qmth.teachcloud.mark.dto.mark.MarkQuestionAnswerVo">
         SELECT
@@ -59,20 +47,4 @@
                 AND mq.sub_number = mqa.sub_number
         order by mq.main_number, mq.sub_number
     </select>
-    <select id="countUnBindMarkerByExamIdAndPaperNumberAndObjective" resultType="java.lang.Long">
-        SELECT
-            count(1)
-        FROM
-            mark_question mq
-        WHERE
-            mq.exam_id = #{examId} AND mq.paper_number = #{paperNumber}
-          AND mq.objective = #{objective}
-          AND NOT EXISTS( SELECT
-                              1
-                          FROM
-                              mark_user_question muq
-                          WHERE
-                              mq.id = muq.question_id)
-    </select>
-
 </mapper>

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.