Procházet zdrojové kódy

3.4.5 update-20250507,bug修改

xiaofei před 1 měsícem
rodič
revize
277e927fd0

+ 0 - 2
distributed-print/install/mysql/init/teachcloud_db.sql

@@ -4063,8 +4063,6 @@ INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1235, '重置AI智能评卷任务', '/api/admin/mark/question/subjective/ai/reset', 'URL', 917, 29, 'AUTH', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1236, '查看任务轨迹', 'MarkTaskTrack', 'LINK', 917, 11, 'AUTH', '1237', 1, 0, 1);
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1237, '查看任务轨迹', '/api/admin/mark/task/track', 'URL', 917, 30, 'AUTH', NULL, 1, 1, 1);
-INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1238, 'AI评卷失败待复核', 'AiMarkAbnormal', 'BUTTON', '946', '15', 'AUTH', '888,894,956,957,958,1011,1239', '1', '0', '1');
-INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES (1239, 'AI评卷失败待复核', '/api/admin/mark/inspected/ai/mark/abnormal/count', 'URL', '946', '15', 'AUTH', '1', '1', '1');
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1300, '获取评卷区', '/api/admin/mark/inspected/get_mark_area', 'URL', 946, 9, 'AUTH', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (1999, '达成度统计', 'DegreeManage', 'MENU', 2000, 2, NULL, NULL, 1, 0, 1);
 INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES (2000, '达成度分析', 'TargetDegreeManage', 'MENU', NULL, 13, NULL, NULL, 1, 0, 1);

+ 0 - 3
distributed-print/install/mysql/upgrade/3.4.5.sql

@@ -145,6 +145,3 @@ ADD COLUMN `retry_count` INT NULL DEFAULT 0 COMMENT '重试次数' AFTER `ai_mar
 
 ALTER TABLE `mark_task` ADD COLUMN `next_retry_time` BIGINT(20) NULL COMMENT '下一次重试时间' AFTER `retry_count`;
 ALTER TABLE `mark_student` ADD COLUMN `ai_mark_abnormal` TINYINT(1) NULL DEFAULT 0 COMMENT 'ai评卷异常' AFTER `version`;
-
-INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('1238', 'AI评卷失败待复核', 'AiMarkAbnormal', 'BUTTON', '946', '15', 'AUTH', '888,894,956,957,958,1011,1239', '1', '0', '1');
-INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('1239', 'AI评卷失败待复核', '/api/admin/mark/inspected/ai/mark/abnormal/count', 'URL', '946', '15', 'AUTH', '1', '1', '1');

+ 0 - 9
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkInspectedController.java

@@ -125,13 +125,4 @@ public class MarkInspectedController extends BaseController {
 
         return ResultUtil.ok(markStudentService.findScoreByAiMark(examId, paperNumber));
     }
-
-    @ApiOperation(value = "获取AI智能失败数量")
-    @RequestMapping(value = "/ai/mark/abnormal/count", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "AI智能评卷任务数量", response = MarkAiScoreDto.class)})
-    public Result getAiMarkAbnormalCount(@ApiParam(value = "考试ID", required = true) @RequestParam Long examId,
-                                              @ApiParam(value = "试卷编码", required = true) @RequestParam String paperNumber) {
-
-        return ResultUtil.ok(markStudentService.listAiMarkAbnormal(examId, paperNumber));
-    }
 }

+ 0 - 3
distributed-print/src/main/resources/upgrade/3.4.5-upgrade.sql

@@ -147,6 +147,3 @@ ALTER TABLE `mark_task`
     ADD COLUMN `next_retry_time` BIGINT(20) NULL COMMENT '下一次重试时间' AFTER `retry_count`;
 
 ALTER TABLE `mark_student` ADD COLUMN `ai_mark_abnormal` TINYINT(1) NULL DEFAULT 0 COMMENT 'ai评卷异常' AFTER `version`;
-
-INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('1238', 'AI评卷失败待复核', 'AiMarkAbnormal', 'BUTTON', '946', '15', 'AUTH', '888,894,956,957,958,1011,1239', '1', '0', '1');
-INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('1239', 'AI评卷失败待复核', '/api/admin/mark/inspected/ai/mark/abnormal/count', 'URL', '946', '15', 'AUTH', '1', '1', '1');

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

@@ -310,7 +310,5 @@ public interface MarkStudentService extends IService<MarkStudent> {
      * @return
      */
     List<MarkAiScoreDto> findScoreByAiMark(Long examId, String paperNumber);
-    List<Long> listAiMarkAbnormal(Long examId, String paperNumber);
-
     int countByExamIdAndPaperNumberAndAiMarkAbnormal(Long examId, String paperNumber, boolean aiMarkAbnormal);
 }

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

@@ -1694,7 +1694,9 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
     public void updateCheckInfo(Long studentId, Long userId) {
         UpdateWrapper<MarkStudent> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(MarkStudent::getCheckUserId, userId)
-                .set(MarkStudent::getCheckTime, System.currentTimeMillis()).eq(MarkStudent::getId, studentId);
+                .set(MarkStudent::getCheckTime, System.currentTimeMillis())
+                .set(MarkStudent::getAiMarkAbnormal, false)
+                .eq(MarkStudent::getId, studentId);
         this.update(updateWrapper);
     }
 
@@ -2767,11 +2769,6 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         return this.baseMapper.findScoreByAiMark(examId, paperNumber);
     }
 
-    @Override
-    public List<Long> listAiMarkAbnormal(Long examId, String paperNumber) {
-        return this.baseMapper.listAiMarkAbnormal(examId, paperNumber);
-    }
-
     @Override
     public int countByExamIdAndPaperNumberAndAiMarkAbnormal(Long examId, String paperNumber, boolean aiMarkAbnormal) {
         QueryWrapper<MarkStudent> queryWrapper = new QueryWrapper<>();

+ 32 - 24
teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml

@@ -1105,29 +1105,37 @@
     </select>
 
     <select id="findScoreByAiMark" resultType="com.qmth.teachcloud.mark.dto.mark.score.MarkAiScoreDto">
-        select * from(select distinct ms.id as studentId,
-            mp.total_score as totalScore,
-            mp.total_score * mp.pass_score / 100 as passScore,
-        ifnull(ms.objective_score, 0) + ifnull(ms.subjective_score, 0) as studentTotalScore
-        from mark_student ms
-        left join mark_task mt on mt.student_id = ms.id
-        left join mark_paper mp on mp.exam_id = ms.exam_id and mp.paper_number = ms.paper_number
-        <where>
-            <if test="examId != null and examId != ''">
-                and mt.exam_id = #{examId}
-            </if>
-            <if test="paperNumber != null and paperNumber != ''">
-                and mt.paper_number = #{paperNumber}
-            </if>
-            and mt.ai_marked = true
-            and ms.subjective_status = 'MARKED'
-            and ms.subjective_score_list is not null
-            and ms.check_user_id is null
-        </where>) t
-        where (t.studentTotalScore = t.totalScore or t.studentTotalScore <![CDATA[ < ]]> passScore)
-        order by t.studentTotalScore
-    </select>
-    <select id="listAiMarkAbnormal" resultType="java.lang.Long">
-        select id from mark_student where exam_id = #{examId} and paper_number = #{paperNumber} and ai_mark_abnormal = true
+        SELECT
+            *
+        FROM
+            (SELECT
+                 ms.id AS studentId,
+                 mp.total_score AS totalScore,
+                 mp.total_score * mp.pass_score / 100 AS passScore,
+                 IFNULL(ms.objective_score, 0) + IFNULL(ms.subjective_score, 0) AS studentTotalScore
+             FROM
+                 mark_student ms
+                     LEFT JOIN mark_paper mp ON mp.exam_id = ms.exam_id
+                     AND mp.paper_number = ms.paper_number
+             WHERE
+                 ms.exam_id = #{examId}
+               AND ms.paper_number = #{paperNumber}
+               AND ms.subjective_status = 'MARKED'
+               AND ms.subjective_score_list IS NOT NULL
+               AND (ms.check_user_id IS NULL
+                 OR ms.ai_mark_abnormal = TRUE)
+               AND EXISTS( SELECT
+                               1
+                           FROM
+                               mark_task mt
+                           WHERE
+                               mt.exam_id = #{examId}
+                             AND mt.paper_number = #{paperNumber}
+                             AND mt.ai_marked = TRUE
+                             AND ms.id = mt.student_id)) t
+        WHERE
+            (t.studentTotalScore = t.totalScore
+                OR t.studentTotalScore <![CDATA[ < ]]> passScore)
+        ORDER BY t.studentTotalScore
     </select>
 </mapper>