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

3.4.5 update-20250607 bug修复

xiaofei 2 долоо хоног өмнө
parent
commit
2e0a90ba24

+ 39 - 0
distributed-print/src/test/java/com/qmth/distributed/print/dto/ExportAiResultDto.java

@@ -0,0 +1,39 @@
+package com.qmth.distributed.print.dto;
+
+import com.qmth.boot.tools.excel.annotation.ExcelColumn;
+
+/**
+ */
+public class ExportAiResultDto {
+
+    @ExcelColumn(name = "学号", index = 0)
+    private String studentCode;
+    @ExcelColumn(name = "AI评卷分数", index = 1)
+    private Double markerScore;
+    @ExcelColumn(name = "OCR识别结果", index = 2)
+    private String ocrResult;
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public Double getMarkerScore() {
+        return markerScore;
+    }
+
+    public void setMarkerScore(Double markerScore) {
+        this.markerScore = markerScore;
+    }
+
+    public String getOcrResult() {
+        return ocrResult;
+    }
+
+    public void setOcrResult(String ocrResult) {
+        this.ocrResult = ocrResult;
+    }
+}

+ 2 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/enums/LockType.java

@@ -28,7 +28,8 @@ public enum LockType {
 	OCR_MARK("ocr_mark"),
 	AI_MARK_TASK("ai_mark_task"),
 	AI_MARK("ai_mark"),
-	RELATE_STUDENTS("relate_students");
+	RELATE_STUDENTS("relate_students"),
+	BUILD_MARK_TASK("build_mark_task");
 
 	private String name;
 

+ 18 - 5
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/BuildMarkTaskJob.java

@@ -1,11 +1,14 @@
 package com.qmth.teachcloud.task.job;
 
+import com.qmth.boot.core.concurrent.service.ConcurrentService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.mark.enums.LockType;
 import com.qmth.teachcloud.task.job.service.JobService;
 import org.quartz.DisallowConcurrentExecution;
 import org.quartz.JobExecutionContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.quartz.QuartzJobBean;
 
 import javax.annotation.Resource;
@@ -13,19 +16,29 @@ import javax.annotation.Resource;
 /**
  * 生成评卷任务
  */
-@DisallowConcurrentExecution//串行执行
+//@DisallowConcurrentExecution//串行执行
 public class BuildMarkTaskJob extends QuartzJobBean {
     private final static Logger log = LoggerFactory.getLogger(BuildMarkTaskJob.class);
 
+    @Autowired
+    private ConcurrentService concurrentService;
+
     @Resource
     JobService jobService;
 
     @Override
     protected void executeInternal(JobExecutionContext jobExecutionContext) {
-        try {
-            jobService.updateBuildMarkTask();
-        } catch (Exception e) {
-            log.error(SystemConstant.LOG_ERROR, e);
+        if (concurrentService.getReadWriteLock(LockType.BUILD_MARK_TASK.name()).writeLock().tryLock()) {
+            try {
+                jobService.updateBuildMarkTask();
+            } catch (Exception e) {
+                log.info("build-mark-task error");
+                e.printStackTrace();
+            } finally {
+                concurrentService.getReadWriteLock(LockType.BUILD_MARK_TASK.name()).writeLock().unlock();
+            }
+        } else {
+            log.info("build-mark-task is running");
         }
     }
 }