瀏覽代碼

3.4.5 update-20250416,新功能开发

xiaofei 2 月之前
父節點
當前提交
3d4cb8b321

+ 2 - 2
distributed-print-business/pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.distributed.print.business</groupId>
     <artifactId>distributed-print-business</artifactId>
-    <version>3.4.4</version>
+    <version>3.4.5</version>
     <build>
         <plugins>
             <plugin>
@@ -22,7 +22,7 @@
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <dependencies>

+ 2 - 2
distributed-print/pom.xml

@@ -4,13 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.distributed.print</groupId>
     <artifactId>distributed-print</artifactId>
-    <version>3.4.4</version>
+    <version>3.4.5</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <dependencies>

+ 1 - 1
pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.distributed.print.service</groupId>
     <artifactId>distributed-print-service</artifactId>
-    <version>3.4.4</version>
+    <version>3.4.5</version>
     <packaging>pom</packaging>
 
     <modules>

+ 2 - 2
teachcloud-common-api/pom.xml

@@ -4,13 +4,13 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.qmth.teachcloud.common.api</groupId>
 	<artifactId>teachcloud-common-api</artifactId>
-	<version>3.4.4</version>
+	<version>3.4.5</version>
 	<packaging>jar</packaging>
 
 	<parent>
 		<groupId>com.qmth.distributed.print.service</groupId>
 		<artifactId>distributed-print-service</artifactId>
-		<version>3.4.4</version>
+		<version>3.4.5</version>
 	</parent>
 
 	<dependencies>

+ 2 - 2
teachcloud-common/pom.xml

@@ -4,13 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.common</groupId>
     <artifactId>teachcloud-common</artifactId>
-    <version>3.4.4</version>
+    <version>3.4.5</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <dependencies>

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -285,7 +285,7 @@ public class SystemConstant {
     public static final String ID = "id";
     public static final String MODEL = "model";
     public static final String VERSION = "version";
-    public static final String VERSION_VALUE = "3.4.4";
+    public static final String VERSION_VALUE = "3.4.5";
     public static final String FLOW_ENTITY_ID = "flowEntityId";
     public static final String CUSTOM_FLOW_ID = "customFlowId";
     public static final String ACT_FLOW_ID = "actFlowId";

+ 2 - 2
teachcloud-data/pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.data</groupId>
     <artifactId>teachcloud-data</artifactId>
-    <version>3.4.4</version>
+    <version>3.4.5</version>
     <build>
         <plugins>
             <plugin>
@@ -22,7 +22,7 @@
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <dependencies>

+ 2 - 2
teachcloud-mark/pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.mark</groupId>
     <artifactId>teachcloud-mark</artifactId>
-    <version>3.4.4</version>
+    <version>3.4.5</version>
     <build>
         <plugins>
             <plugin>
@@ -22,7 +22,7 @@
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <dependencies>

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

@@ -14,6 +14,7 @@ import com.qmth.teachcloud.mark.dto.mark.manage.MarkGroupSummaryProgressDto;
 import com.qmth.teachcloud.mark.dto.mark.setting.MarkGroupTaskDto;
 import com.qmth.teachcloud.mark.dto.mark.setting.MarkQuestionDto;
 import com.qmth.teachcloud.mark.dto.mark.setting.MarkQuestionSubjectiveStepStatusDto;
+import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.params.MarkObjectiveQuestionParams;
 import com.qmth.teachcloud.mark.params.MarkQuestionParams;
 import org.springframework.web.multipart.MultipartFile;
@@ -123,4 +124,6 @@ public interface MarkQuestionService extends IService<MarkQuestion> {
 
     boolean enableAi(Long questionId, Boolean enableAi);
     boolean updateClearOcrResult(Long questionId, Boolean clearOcrResult);
+
+    void aiMarkByMarkPaper(MarkPaper markPaper);
 }

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

@@ -109,7 +109,7 @@ public interface MarkService {
 
     void resetMarkedQuestionId(MarkUserQuestion markUserQuestion);
 
-    void aiMark(Long schoolId, Long examId, String paperNumber, Long questionId);
+    void aiMark(MarkQuestion markQuestion);
 
     void resetAiTask(Long examId, String paperNumber, Long questionId);
 }

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

@@ -21,5 +21,5 @@ public interface MarkSyncService {
 
     void aiTaskResetSync(MarkQuestion markQuestion, Long questionId);
 
-    void aiAutoMark(Long schoolId, MarkQuestion markQuestion);
+    void aiAutoMark(MarkQuestion markQuestion);
 }

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

@@ -915,10 +915,8 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
         if (this.update(updateWrapper)) {
             if (enableAi) {
                 MarkQuestion markQuestion = this.getById(questionId);
-                BasicSchool basicSchool = basicSchoolMapper.selectByExamId(markQuestion.getExamId());
-
                 if (lockService.trylock(LockType.AI_MARK, markQuestion.getId())) {
-                    markSyncService.aiAutoMark(basicSchool.getId(), markQuestion);
+                    markSyncService.aiAutoMark(markQuestion);
                     return true;
                 }
             }
@@ -933,4 +931,14 @@ public class MarkQuestionServiceImpl extends ServiceImpl<MarkQuestionMapper, Mar
                 .set(MarkQuestion::getId, questionId);
         return this.update(updateWrapper);
     }
+
+    @Override
+    public void aiMarkByMarkPaper(MarkPaper markPaper) {
+        List<MarkQuestion> markQuestionList = this.listByExamIdAndPaperNumberAndObjective(markPaper.getExamId(), markPaper.getPaperNumber(), false);
+        for (MarkQuestion markQuestion : markQuestionList) {
+            if (lockService.trylock(LockType.AI_MARK, markQuestion.getId())) {
+                markSyncService.aiAutoMark(markQuestion);
+            }
+        }
+    }
 }

+ 20 - 7
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -257,6 +257,7 @@ public class MarkServiceImpl implements MarkService {
         queryWrapper.lambda().eq(MarkTask::getExamId, examId)
                 .eq(MarkTask::getPaperNumber, paperNumber)
                 .eq(MarkTask::getQuestionId, questionId)
+                .eq(MarkTask::getAiMarked, false)
                 .last(" limit 1");
         MarkTask markTask = markTaskService.getOne(queryWrapper);
 
@@ -506,10 +507,10 @@ public class MarkServiceImpl implements MarkService {
             }
             // 处理正常考生
             List<MarkQuestion> markQuestionList = markQuestionService.listByExamIdAndPaperNumberAndObjective(markPaper.getExamId(), markPaper.getPaperNumber(), false);
+            if (CollectionUtils.isEmpty(markQuestionList) || markQuestionList.stream().filter(m -> m.getTotalScore() == null || m.getIntervalScore() == null || StringUtils.isBlank(m.getPicList())).count() > 0) {
+                return;
+            }
             for (MarkQuestion markQuestion : markQuestionList) {
-                if (!MarkPaperAiMark.NONE.equals(markQuestion.getAiMark()) && !markAiQuestionParamService.existMarkAiQuestionPointOrLevel(markQuestion.getExamId(), markQuestion.getPaperNumber(), markQuestion.getId())) {
-                    continue;
-                }
                 // 生成正评任务
                 buildFormalTask(markQuestion);
                 if (markQuestion.getDoubleRate() != null && markQuestion.getDoubleRate() > 0) {
@@ -1513,12 +1514,24 @@ public class MarkServiceImpl implements MarkService {
 
 
     @Override
-    public void aiMark(Long schoolId, Long examId, String paperNumber, Long questionId) {
-        SysUser aiUser = sysUserService.getAiUserBySchoolId(schoolId);
+    public void aiMark(MarkQuestion markQuestion) {
+        Long examId = markQuestion.getExamId();
+        String paperNumber = markQuestion.getPaperNumber();
+        Long questionId = markQuestion.getId();
+
+        // 终止AI评卷
+        if (!markQuestion.getEnableAi()) {
+            return;
+        }
+        // AI评卷且未设置评卷参数
+        if (!MarkPaperAiMark.NONE.equals(markQuestion.getAiMark()) && !markAiQuestionParamService.existMarkAiQuestionPointOrLevel(examId, paperNumber, questionId)) {
+            return;
+        }
+
+        BasicSchool basicSchool = basicSchoolMapper.selectByExamId(examId);
+        SysUser aiUser = sysUserService.getAiUserBySchoolId(basicSchool.getId());
         if (aiUser != null) {
-            BasicSchool basicSchool = basicSchoolMapper.selectByExamId(examId);
             BasicCourse basicCourse = basicCourseMapper.selectByExamIdAndPaperNumber(examId, paperNumber);
-            MarkQuestion markQuestion = markQuestionService.getById(questionId);
             MarkAiQuestionParam markAiQuestionParam = markAiQuestionParamService.getByExamIdAndPaperNumberAndQuestionId(examId, paperNumber, questionId);
             List<MarkTask> markTasks = null;
             int pageNumber = 1;

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

@@ -117,10 +117,10 @@ public class MarkSyncServiceImpl implements MarkSyncService {
 
     @Async
     @Override
-    public void aiAutoMark(Long schoolId, MarkQuestion markQuestion) {
+    public void aiAutoMark(MarkQuestion markQuestion) {
         try {
             if (markQuestion != null) {
-                markService.aiMark(schoolId, markQuestion.getExamId(), markQuestion.getPaperNumber(), markQuestion.getId());
+                markService.aiMark(markQuestion);
             }
         } catch (Exception e) {
             log.error("ai auto mark error", e);

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

@@ -290,7 +290,7 @@
             <if test="paperNumber != null and paperNumber != ''">
                 and muq.paper_number = #{paperNumber}
             </if>
-                and muq.enable = true and mq.task_count > 0 and mq.task_count > mq.marked_count
+                and muq.enable = true and mq.task_count > 0 and mq.person_task = true and mq.task_count > mq.marked_count
         </where>
         group by
             muq.exam_id,

+ 2 - 2
teachcloud-obe/pom.xml

@@ -4,13 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.obe</groupId>
     <artifactId>teachcloud-obe</artifactId>
-    <version>3.4.4</version>
+    <version>3.4.5</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
 

+ 2 - 2
teachcloud-report-business/pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.report.business</groupId>
     <artifactId>teachcloud-report-business</artifactId>
-    <version>3.4.4</version>
+    <version>3.4.5</version>
     <build>
         <plugins>
             <plugin>
@@ -22,7 +22,7 @@
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <dependencies>

+ 2 - 2
teachcloud-report/pom.xml

@@ -4,13 +4,13 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.qmth.teachcloud.report</groupId>
 	<artifactId>teachcloud-report</artifactId>
-	<version>3.4.4</version>
+	<version>3.4.5</version>
 	<packaging>jar</packaging>
 
 	<parent>
 		<groupId>com.qmth.distributed.print.service</groupId>
 		<artifactId>distributed-print-service</artifactId>
-		<version>3.4.4</version>
+		<version>3.4.5</version>
 	</parent>
 
 	<dependencies>

+ 2 - 2
teachcloud-task/pom.xml

@@ -4,13 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.task</groupId>
     <artifactId>teachcloud-task</artifactId>
-    <version>3.4.4</version>
+    <version>3.4.5</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.4</version>
+        <version>3.4.5</version>
     </parent>
 
     <dependencies>

+ 6 - 4
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java

@@ -153,11 +153,13 @@ public class JobServiceImpl implements JobService {
         try {
             List<MarkPaper> markPaperList = markPaperService.listQualityMarkPaperByStatus(MarkPaperStatus.FORMAL, 0);
             for (MarkPaper markPaper : markPaperList) {
-                List<MarkQuestion> markQuestionList = markQuestionService.listByExamIdAndPaperNumberAndObjective(markPaper.getExamId(), markPaper.getPaperNumber(), false);
-                if (CollectionUtils.isEmpty(markQuestionList) || markQuestionList.stream().filter(m -> m.getTotalScore() == null || m.getIntervalScore() == null || StringUtils.isBlank(m.getPicList())).count() > 0) {
-                    continue;
-                }
+                // 生成评卷任务
                 markService.buildMarkTask(markPaper);
+
+                // AI评卷任务自动评卷
+                markQuestionService.aiMarkByMarkPaper(markPaper);
+
+                // 给评卷员发送短信
                 basicMessageService.smsMarkTask(markPaper.getExamId(), markPaper.getCourseId(), markPaper.getPaperNumber());
             }
         } catch (Exception e) {