|
@@ -1,34 +1,20 @@
|
|
|
package cn.com.qmth.examcloud.task.service.job;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import cn.com.qmth.examcloud.commons.exception.StatusException;
|
|
|
-import cn.com.qmth.examcloud.core.oe.admin.api.ExamRecordForMarkingCloudService;
|
|
|
-import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamRecordForMarkingBean;
|
|
|
-import cn.com.qmth.examcloud.core.oe.admin.api.request.FindExamRecordForMarkingInfoReq;
|
|
|
-import cn.com.qmth.examcloud.core.oe.admin.api.response.FindExamRecordForMarkingInfoResp;
|
|
|
-import cn.com.qmth.examcloud.core.questions.api.ExtractConfigCloudService;
|
|
|
-import cn.com.qmth.examcloud.core.questions.api.request.GetBasePaperReq;
|
|
|
-import cn.com.qmth.examcloud.core.questions.api.response.GetBasePaperResp;
|
|
|
-import cn.com.qmth.examcloud.marking.api.MarkItemCloudService;
|
|
|
import cn.com.qmth.examcloud.marking.api.MarkWorkCloudService;
|
|
|
-import cn.com.qmth.examcloud.marking.api.bean.MarkItemBean;
|
|
|
import cn.com.qmth.examcloud.marking.api.bean.MarkWorkBean;
|
|
|
import cn.com.qmth.examcloud.marking.api.bean.MarkWorkMainBean;
|
|
|
-import cn.com.qmth.examcloud.marking.api.request.SaveMarkItemReq;
|
|
|
import cn.com.qmth.examcloud.marking.api.request.UpdateMarkWorkReq;
|
|
|
import cn.com.qmth.examcloud.marking.api.response.GetTodoMarkWorkMainResp;
|
|
|
-import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
|
|
|
-import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionGroup;
|
|
|
-import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionStructureWrapper;
|
|
|
-import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionUnitWrapper;
|
|
|
import cn.com.qmth.examcloud.task.service.consumer.MarkWorkCreateConsumer;
|
|
|
+import cn.com.qmth.examcloud.task.service.consumer.MarkWorkCreateItemsConsumer;
|
|
|
+import cn.com.qmth.examcloud.task.service.producer.MarkWorkCreateItemsProducer;
|
|
|
import cn.com.qmth.examcloud.task.service.producer.MarkWorkCreateProducer;
|
|
|
import cn.com.qmth.examcloud.web.task.AbstractTask;
|
|
|
import cn.com.qmth.examcloud.web.task.ScheduleJob;
|
|
@@ -37,19 +23,10 @@ import cn.com.qmth.examcloud.web.task.TaskTracker;
|
|
|
@Component("markWorkPaperCreateTask")
|
|
|
public class MarkWorkPaperCreateTask extends AbstractTask {
|
|
|
|
|
|
- private static final double SCORE_INTERVAL = 0.5;
|
|
|
|
|
|
@Autowired
|
|
|
private MarkWorkCloudService markWorkCloudService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private MarkItemCloudService markItemCloudService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private ExtractConfigCloudService extractConfigCloudService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private ExamRecordForMarkingCloudService examRecordForMarkingCloudService;
|
|
|
|
|
|
@Autowired
|
|
|
TaskTracker TaskTracker;
|
|
@@ -84,52 +61,12 @@ public class MarkWorkPaperCreateTask extends AbstractTask {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void createMarkItems(Long examId, Long workId) {
|
|
|
- // 根据考试批次ID获取需要阅卷的试卷集合
|
|
|
- FindExamRecordForMarkingInfoReq markingReq = new FindExamRecordForMarkingInfoReq();
|
|
|
- markingReq.setExamId(examId);
|
|
|
- markingReq.setBatchNum(workId + "");
|
|
|
- FindExamRecordForMarkingInfoResp markingResp = examRecordForMarkingCloudService
|
|
|
- .findExamRecordForMarkingInfo(markingReq);
|
|
|
- List<ExamRecordForMarkingBean> examRecordForMarkingBeanList = markingResp.getExamRecordForMarkingBeanList();
|
|
|
- List<MarkItemBean> markItems = new ArrayList<MarkItemBean>();
|
|
|
- GetBasePaperReq getBasePaperReq = new GetBasePaperReq();
|
|
|
- for (ExamRecordForMarkingBean markingBean : examRecordForMarkingBeanList) {
|
|
|
- getBasePaperReq.setPaperId(markingBean.getBasePaperId());
|
|
|
- GetBasePaperResp getBasePaperResp = extractConfigCloudService.getBasePaper(getBasePaperReq);
|
|
|
- DefaultPaper defaultPaper = getBasePaperResp.getDefaultPaper();
|
|
|
- List<DefaultQuestionGroup> defaultQuestionGroupList = defaultPaper.getQuestionGroupList();
|
|
|
- // 大题号
|
|
|
- int mainNumber = 1;
|
|
|
- // 每个小题在试卷中的位置
|
|
|
- int order = 0;
|
|
|
- for (DefaultQuestionGroup defaultQuestionGroup : defaultQuestionGroupList) {
|
|
|
- List<DefaultQuestionStructureWrapper> defaultQuestionStructureWrapperList = defaultQuestionGroup
|
|
|
- .getQuestionWrapperList();
|
|
|
- // 小题号
|
|
|
- int subNumber = 1;
|
|
|
- for (DefaultQuestionStructureWrapper defaultQuestionStructureWrapper : defaultQuestionStructureWrapperList) {
|
|
|
- List<DefaultQuestionUnitWrapper> defaultQuestionUnitWrapperList = defaultQuestionStructureWrapper
|
|
|
- .getQuestionUnitWrapperList();
|
|
|
- for (DefaultQuestionUnitWrapper defaultQuestionUnitWrapper : defaultQuestionUnitWrapperList) {
|
|
|
- order++;
|
|
|
- if ("FILL_UP".equals(defaultQuestionUnitWrapper.getQuestionType().toString())
|
|
|
- || "ESSAY".equals(defaultQuestionUnitWrapper.getQuestionType().toString())) {
|
|
|
- MarkItemBean markItem = new MarkItemBean(markingBean.getBasePaperId(), mainNumber,
|
|
|
- subNumber, defaultQuestionUnitWrapper.getQuestionScore(), SCORE_INTERVAL, order,
|
|
|
- defaultQuestionStructureWrapper.getQuestionId());
|
|
|
- markItems.add(markItem);
|
|
|
- }
|
|
|
- subNumber++;
|
|
|
- }
|
|
|
- }
|
|
|
- mainNumber++;
|
|
|
- }
|
|
|
- }
|
|
|
- SaveMarkItemReq req = new SaveMarkItemReq();
|
|
|
- req.setWorkId(workId);
|
|
|
- req.setMarkItemBeanList(markItems);
|
|
|
- markItemCloudService.saveMarkWork(req);
|
|
|
+ private void createMarkItems(Long examId, Long workId) throws InstantiationException, IllegalAccessException{
|
|
|
+ MarkWorkCreateItemsProducer producer = new MarkWorkCreateItemsProducer();
|
|
|
+ Map<String, Object> param = new HashMap<String, Object>();
|
|
|
+ param.put("examId", examId);
|
|
|
+ param.put("workId", workId);
|
|
|
+ producer.startDispose(MarkWorkCreateItemsConsumer.class, 10, param);
|
|
|
}
|
|
|
|
|
|
private void createStudentPapers(Long examId, Long workId) throws InstantiationException, IllegalAccessException {
|