|
@@ -8,6 +8,7 @@ import com.qmth.teachcloud.common.contant.SpringContextHolder;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
import com.qmth.teachcloud.common.entity.BasicSchool;
|
|
|
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.enums.TaskStatusEnum;
|
|
|
import com.qmth.teachcloud.common.service.CommonCacheService;
|
|
@@ -21,6 +22,9 @@ import org.slf4j.LoggerFactory;
|
|
|
import java.io.IOException;
|
|
|
import java.lang.reflect.InvocationTargetException;
|
|
|
import java.net.URLEncoder;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.LinkedHashMap;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
/**
|
|
@@ -42,18 +46,25 @@ public abstract class CalculateTaskTemplate {
|
|
|
protected void createSyncTask(CalculateParams calculateParams) throws IOException {
|
|
|
log.info("createSyncTask come in");
|
|
|
TBSyncTaskService tbSyncTaskService = SpringContextHolder.getBean(TBSyncTaskService.class);
|
|
|
+ Collections.sort(calculateParams.getCourseCode());
|
|
|
+
|
|
|
String source = Base64Util.encode(ShaUtils.sha1(calculateParams.getExamId() + calculateParams.getCourseCode().toString()));
|
|
|
QueryWrapper<TBSyncTask> tbSyncTaskQueryWrapper = new QueryWrapper<>();
|
|
|
tbSyncTaskQueryWrapper.lambda().eq(TBSyncTask::getThirdRelateId, calculateParams.getExamId())
|
|
|
.eq(TBSyncTask::getSource, source);
|
|
|
TBSyncTask tbSyncTask = tbSyncTaskService.getOne(tbSyncTaskQueryWrapper);
|
|
|
- calculateParams.setTbSyncTask(tbSyncTask);
|
|
|
if (Objects.isNull(tbSyncTask)) {
|
|
|
tbSyncTask = new TBSyncTask(calculateParams.getSchoolId(), calculateParams.getExamId(), source);
|
|
|
tbSyncTaskService.save(tbSyncTask);
|
|
|
} else if (tbSyncTask.getStatus() == TaskStatusEnum.FINISH && tbSyncTask.getResult() == TaskResultEnum.SUCCESS) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("该批次已完成计算");
|
|
|
}
|
|
|
+ calculateParams.setTbSyncTask(tbSyncTask);
|
|
|
+ Map<String, GradeAnalyzePaperStatusEnum> map = new LinkedHashMap<>();
|
|
|
+ for (String s : calculateParams.getCourseCode()) {
|
|
|
+ map.put(s, GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE);
|
|
|
+ }
|
|
|
+ calculateParams.setCourseCodeMap(map);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -83,6 +94,13 @@ public abstract class CalculateTaskTemplate {
|
|
|
TBSyncTaskService tbSyncTaskService = SpringContextHolder.getBean(TBSyncTaskService.class);
|
|
|
TBSyncTask tbSyncTask = calculateParams.getTbSyncTask();
|
|
|
tbSyncTaskService.updateById(tbSyncTask);
|
|
|
+
|
|
|
+ if (Objects.nonNull(tbSyncTask.getObj())) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(tbSyncTask.getObj());
|
|
|
+ for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
|
|
|
+ calculateParams.getCourseCodeMap().put(entry.getKey(), GradeAnalyzePaperStatusEnum.valueOf((String) entry.getValue()));
|
|
|
+ }
|
|
|
+ }
|
|
|
callback(calculateParams);
|
|
|
}
|
|
|
|
|
@@ -129,7 +147,7 @@ public abstract class CalculateTaskTemplate {
|
|
|
Long time = System.currentTimeMillis();
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("examId", tbSyncTask.getThirdRelateId());
|
|
|
- jsonObject.put("courseCode", calculateParams.getCourseCode());
|
|
|
+ jsonObject.put("courseCode", calculateParams.getCourseCodeMap());
|
|
|
jsonObject.put("progress", tbSyncTask.getProgress());
|
|
|
jsonObject.put("status", tbSyncTask.getStatus());
|
|
|
jsonObject.put("time", time);
|