Forráskód Böngészése

加入批次和批次科目更新

wangliang 3 éve
szülő
commit
1e4f2278a8

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/CalculateNotifyResult.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.bean.result;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -34,6 +35,17 @@ public class CalculateNotifyResult implements Serializable {
     @ApiModelProperty(value = "时间戳")
     private Long time;
 
+    @ApiModelProperty(value = "数据结果,SUCCESS:成功,ERROR:失败")
+    private String result;
+
+    public String getResult() {
+        return result;
+    }
+
+    public void setResult(String result) {
+        this.result = result;
+    }
+
     public Long getExamId() {
         return examId;
     }

+ 17 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradeBatch.java

@@ -1,9 +1,12 @@
 package com.qmth.distributed.print.business.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -41,6 +44,7 @@ public class GradeBatch extends BaseEntity implements Serializable {
     private Long batchTime;
 
     @ApiModelProperty(value = "批次状态")
+    @TableField(value = "status", updateStrategy = FieldStrategy.IGNORED)
     private GradeAnalyzePaperStatusEnum status;
 
     @ApiModelProperty(value = "第三方考试id")
@@ -51,6 +55,7 @@ public class GradeBatch extends BaseEntity implements Serializable {
     private String source;
 
     @ApiModelProperty(value = "进度")
+    @TableField(value = "progress", updateStrategy = FieldStrategy.IGNORED)
     private BigDecimal progress;
 
     @ApiModelProperty(value = "报告路径")
@@ -59,6 +64,18 @@ public class GradeBatch extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "回调时间")
     private Long notifyTime;
 
+    @ApiModelProperty(value = "数据结果,SUCCESS:成功,ERROR:失败")
+    @TableField(value = "result", updateStrategy = FieldStrategy.IGNORED)
+    private TaskResultEnum result;
+
+    public TaskResultEnum getResult() {
+        return result;
+    }
+
+    public void setResult(TaskResultEnum result) {
+        this.result = result;
+    }
+
     public Long getNotifyTime() {
         return notifyTime;
     }

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradeBatchPaper.java

@@ -1,5 +1,7 @@
 package com.qmth.distributed.print.business.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
@@ -44,6 +46,7 @@ public class GradeBatchPaper extends BaseEntity implements Serializable {
     private String paperName;
 
     @ApiModelProperty(value = "分析试卷状态")
+    @TableField(value = "status", updateStrategy = FieldStrategy.IGNORED)
     private GradeAnalyzePaperStatusEnum status;
 
     @ApiModelProperty(value = "开课学院id")

+ 9 - 7
distributed-print/src/main/java/com/qmth/distributed/print/api/NotifyApiController.java

@@ -15,6 +15,7 @@ import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.util.*;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
@@ -97,12 +98,11 @@ public class NotifyApiController {
 
             if (Objects.isNull(gradeBatch.getNotifyTime()) ||
                     (Objects.nonNull(gradeBatch.getNotifyTime())
-                            && gradeBatch.getNotifyTime().longValue() >= calculateNotifyResult.getTime().longValue())) {
-                if (Objects.nonNull(calculateNotifyResult.getStatus())) {
-                    gradeBatch.setStatus(GradeAnalyzePaperStatusEnum.valueOf(calculateNotifyResult.getStatus()));
-                }
+                            && gradeBatch.getNotifyTime().longValue() <= calculateNotifyResult.getTime().longValue())) {
+                gradeBatch.setStatus(Objects.nonNull(calculateNotifyResult.getStatus()) ? GradeAnalyzePaperStatusEnum.valueOf(calculateNotifyResult.getStatus()) : null);
                 gradeBatch.setProgress(calculateNotifyResult.getProgress());
                 gradeBatch.setNotifyTime(System.currentTimeMillis());
+                gradeBatch.setResult(Objects.nonNull(calculateNotifyResult.getResult()) ? TaskResultEnum.valueOf(calculateNotifyResult.getResult()) : null);
                 gradeBatchService.updateById(gradeBatch);
 
                 QueryWrapper<GradeBatchPaper> gradeBatchPaperQueryWrapper = new QueryWrapper<>();
@@ -115,9 +115,11 @@ public class NotifyApiController {
                     GradeBatchPaper gradeBatchPaper = gradeBatchPaperService.getOne(gradeBatchPaperQueryWrapper);
                     Optional.ofNullable(gradeBatchPaper).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("批次科目[" + k + "]数据为空"));
 
-                    gradeBatchPaper.setStatus(v);
-                    gradeBatchPaper.setUpdateTime(System.currentTimeMillis());
-                    gradeBatchPaperList.add(gradeBatchPaper);
+                    if (Objects.isNull(gradeBatchPaper.getStatus()) || (Objects.nonNull(gradeBatchPaper.getStatus()) && gradeBatchPaper.getStatus() != v)) {
+                        gradeBatchPaper.setStatus(v);
+                        gradeBatchPaper.setUpdateTime(System.currentTimeMillis());
+                        gradeBatchPaperList.add(gradeBatchPaper);
+                    }
                 });
                 gradeBatchPaperService.updateBatchById(gradeBatchPaperList);
             }

+ 1 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/templete/strategy/CalculateTaskTemplate.java

@@ -150,6 +150,7 @@ public abstract class CalculateTaskTemplate {
         jsonObject.put("courseCode", calculateParams.getCourseCodeMap());
         jsonObject.put("progress", tbSyncTask.getProgress());
         jsonObject.put("status", tbSyncTask.getStatus());
+        jsonObject.put("result", tbSyncTask.getResult());
         jsonObject.put("time", time);
 
         String sign = URLEncoder.encode(Base64Util.encode(ShaUtils.sha1(dictionaryConfig.printOpenDomain().getCallbackPwd() + jsonObject.toJSONString())), SystemConstant.CHARSET_NAME);