Ver código fonte

3.3.0 update

xiaofei 1 ano atrás
pai
commit
d4d5fa601b

+ 23 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkArchiveController.java

@@ -0,0 +1,23 @@
+package com.qmth.distributed.print.api.mark;
+
+
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 成绩管理 前端控制器
+ * </p>
+ *
+ * @author xf
+ * @since 2023-09-22
+ */
+@Api(tags = "评卷-分班阅管理")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_MARK + "/archive")
+public class MarkArchiveController {
+
+}

+ 3 - 0
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java

@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -148,6 +149,7 @@ public class JobServiceImpl implements JobService {
 
     @Override
     public void initMarkData() {
+        log.info("开始同步数据:"+ DateDisposeUtils.dateTime(new Date()));
         // 结束阅卷的课程,不同步,3.3.0版本更新前的历史数据,统一不同步
         long startTime = DateDisposeUtils.parseDate("2023-10-01 00:00:00").getTime();
         List<ExamDetailCourseInitMarkDto> examDetailCourseInitMarkDtoList = examDetailService.listPrintFinishExamDetailCourse(ExamDetailStatusEnum.FINISH.name(), startTime, MarkPaperStatus.FINISH.name());
@@ -156,6 +158,7 @@ public class JobServiceImpl implements JobService {
             printFinishService.insertMarkStudent(dto);
             printFinishService.insertScanAnswerCard(dto);
         }
+        log.info("结束同步数据:"+ DateDisposeUtils.dateTime(new Date()));
     }
 
     /**

+ 59 - 51
teachcloud-task/src/main/java/com/qmth/teachcloud/task/service/impl/PrintFinishServiceImpl.java

@@ -9,11 +9,11 @@ import com.qmth.distributed.print.business.service.ExamStudentService;
 import com.qmth.distributed.print.business.service.ExamTaskDetailService;
 import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.util.ExamTaskUtil;
 import com.qmth.teachcloud.mark.bean.vo.parseCard.Struct;
 import com.qmth.teachcloud.mark.entity.MarkPaper;
-import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.mark.entity.MarkStudent;
 import com.qmth.teachcloud.mark.entity.ScanAnswerCard;
 import com.qmth.teachcloud.mark.enums.CardSource;
@@ -77,12 +77,16 @@ public class PrintFinishServiceImpl implements PrintFinishService {
      */
     @Override
     public void insertMarkPaper(Long examId, String courseCode, String courseName, String paperNumber, String packageCode, Long userId, String paperType) {
-        MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
-        if (markPaper != null) {
-            return;
+        try {
+            MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
+            if (markPaper != null) {
+                return;
+            }
+            MarkPaper insertMarkPaper = new MarkPaper(examId, courseCode, courseName, paperNumber, packageCode, userId, paperType);
+            markPaperService.save(insertMarkPaper);
+        } catch (Exception e) {
+            log.info("同步考试课程失败");
         }
-        MarkPaper insertMarkPaper = new MarkPaper(examId, courseCode, courseName, paperNumber, packageCode, userId, paperType);
-        markPaperService.save(insertMarkPaper);
     }
 
     @Transactional
@@ -165,13 +169,13 @@ public class PrintFinishServiceImpl implements PrintFinishService {
                             try {
                                 FileUtils.forceDeleteOnExit(jsonFile);
                             } catch (IOException e) {
-                                throw new RuntimeException(e);
+                                log.info("删除jsonFile失败");
                             }
                             if (inputStream != null) {
                                 try {
                                     inputStream.close();
                                 } catch (IOException e) {
-                                    throw new RuntimeException(e);
+                                    log.info("关闭inputStream流失败");
                                 }
                             }
                         }
@@ -183,56 +187,60 @@ public class PrintFinishServiceImpl implements PrintFinishService {
 
     @Override
     public void insertMarkQuestion(Long examId, String paperNumber, String content) {
-        List<Struct> structList = CardParseUtils.parseCardContent(content);
-        if (CollectionUtils.isEmpty(structList)) {
-            return;
-        }
-        List<MarkQuestion> markQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumber(examId, paperNumber);
-        if (CollectionUtils.isEmpty(markQuestionList)) {
-            List<MarkQuestion> markQuestions = new ArrayList<>();
-            for (Struct struct : structList) {
-                MarkQuestion markQuestion = new MarkQuestion();
-                markQuestion.setId(SystemConstant.getDbUuid());
-                markQuestion.setExamId(examId);
-                markQuestion.setPaperNumber(paperNumber);
-                markQuestion.setObjective(struct.getObjective());
-                markQuestion.setMainNumber(struct.getMainNumber());
-                markQuestion.setSubNumber(struct.getSubNumber());
-                markQuestion.setMainTitle(struct.getMainTitle());
-                markQuestion.setQuestionType(struct.getType());
-                markQuestion.setPaperIndex(struct.getPaperIndex());
-                markQuestion.setPageIndex(struct.getPageIndex());
-                markQuestions.add(markQuestion);
+        try {
+            List<Struct> structList = CardParseUtils.parseCardContent(content);
+            if (CollectionUtils.isEmpty(structList)) {
+                return;
             }
-            markQuestionService.saveBatch(markQuestions);
-        } else {
-
-            List<ScanAnswerCard> scanAnswerCardList = scanAnswerCardService.listByExamIdAndPaperNumber(examId, paperNumber);
-            if (CollectionUtils.isNotEmpty(scanAnswerCardList)) {
-                for (ScanAnswerCard scanAnswerCard : scanAnswerCardList) {
-                    int count = scanPaperService.getCountByExamAndCardNumber(examId, scanAnswerCard.getNumber());
-                    if (count > 0) return;
+            List<MarkQuestion> markQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumber(examId, paperNumber);
+            if (CollectionUtils.isEmpty(markQuestionList)) {
+                List<MarkQuestion> markQuestions = new ArrayList<>();
+                for (Struct struct : structList) {
+                    MarkQuestion markQuestion = new MarkQuestion();
+                    markQuestion.setId(SystemConstant.getDbUuid());
+                    markQuestion.setExamId(examId);
+                    markQuestion.setPaperNumber(paperNumber);
+                    markQuestion.setObjective(struct.getObjective());
+                    markQuestion.setMainNumber(struct.getMainNumber());
+                    markQuestion.setSubNumber(struct.getSubNumber());
+                    markQuestion.setMainTitle(struct.getMainTitle());
+                    markQuestion.setQuestionType(struct.getType());
+                    markQuestion.setPaperIndex(struct.getPaperIndex());
+                    markQuestion.setPageIndex(struct.getPageIndex());
+                    markQuestions.add(markQuestion);
                 }
-            }
+                markQuestionService.saveBatch(markQuestions);
+            } else {
 
-            // todo 题卡变动后,结构数据处理逻辑
-            if (structList.size() == markQuestionList.size()) {
-                for (int i = 0; i < structList.size(); i++) {
-                    Struct struct = structList.get(i);
-                    MarkQuestion markQuestion = markQuestionList.get(i);
-                    if (markQuestion.getGroupNumber() != null) {
-                        if (struct.getMainNumber() == markQuestion.getMainNumber()
-                                && struct.getSubNumber() == markQuestion.getSubNumber()
-                                && struct.getObjective().equals(markQuestion.getObjective())
-                                && struct.getType() == markQuestion.getQuestionType()
-                                && struct.getMainTitle().equals(markQuestion.getMainTitle())) {
-                            continue;
-                        }
+                List<ScanAnswerCard> scanAnswerCardList = scanAnswerCardService.listByExamIdAndPaperNumber(examId, paperNumber);
+                if (CollectionUtils.isNotEmpty(scanAnswerCardList)) {
+                    for (ScanAnswerCard scanAnswerCard : scanAnswerCardList) {
+                        int count = scanPaperService.getCountByExamAndCardNumber(examId, scanAnswerCard.getNumber());
+                        if (count > 0) return;
                     }
                 }
-            } else {
 
+                // todo 题卡变动后,结构数据处理逻辑
+                if (structList.size() == markQuestionList.size()) {
+                    for (int i = 0; i < structList.size(); i++) {
+                        Struct struct = structList.get(i);
+                        MarkQuestion markQuestion = markQuestionList.get(i);
+                        if (markQuestion.getGroupNumber() != null) {
+                            if (struct.getMainNumber() == markQuestion.getMainNumber()
+                                    && struct.getSubNumber() == markQuestion.getSubNumber()
+                                    && struct.getObjective().equals(markQuestion.getObjective())
+                                    && struct.getType() == markQuestion.getQuestionType()
+                                    && struct.getMainTitle().equals(markQuestion.getMainTitle())) {
+                                continue;
+                            }
+                        }
+                    }
+                } else {
+
+                }
             }
+        } catch (Exception e) {
+            log.info("同步结构失败");
         }
     }
 }

+ 7 - 7
teachcloud-task/src/main/java/com/qmth/teachcloud/task/start/StartRunning.java

@@ -102,16 +102,16 @@ public class StartRunning implements CommandLineRunner {
         Map buildMarkTaskJobMap = new HashMap();
         buildMarkTaskJobMap.computeIfAbsent("name", v -> BuildMarkTaskJob.class.getName());
         quartzService.deleteJob(JobEnum.BUILD_MARK_TASK.name(), JobEnum.BUILD_MARK_TASK_GROUP.name());
-        quartzService.addJob(BuildMarkTaskJob.class, JobEnum.BUILD_MARK_TASK.name(), JobEnum.BUILD_MARK_TASK_GROUP.name(), "0 */1 * * * ?", buildMarkTaskJobMap);
+//        quartzService.addJob(BuildMarkTaskJob.class, JobEnum.BUILD_MARK_TASK.name(), JobEnum.BUILD_MARK_TASK_GROUP.name(), "0 */1 * * * ?", buildMarkTaskJobMap);
         log.info("增加评卷任务生成定时任务 end");
 
         // 每1分钟一次
-//        log.info("增加初始化阅卷数据定时任务 start");
-//        Map initMarkDataJobMap = new HashMap();
-//        initMarkDataJobMap.computeIfAbsent("name", v -> InitMarkDataJob.class.getName());
-//        quartzService.deleteJob(JobEnum.INIT_MARK_DATA.name(), JobEnum.INIT_MARK_DATA_GROUP.name());
-//        quartzService.addJob(InitMarkDataJob.class, JobEnum.INIT_MARK_DATA.name(), JobEnum.INIT_MARK_DATA_GROUP.name(), "0 0/5 * * * ?", initMarkDataJobMap);
-//        log.info("增加初始化阅卷数据定时任务 end");
+        log.info("增加初始化阅卷数据定时任务 start");
+        Map initMarkDataJobMap = new HashMap();
+        initMarkDataJobMap.computeIfAbsent("name", v -> InitMarkDataJob.class.getName());
+        quartzService.deleteJob(JobEnum.INIT_MARK_DATA.name(), JobEnum.INIT_MARK_DATA_GROUP.name());
+        quartzService.addJob(InitMarkDataJob.class, JobEnum.INIT_MARK_DATA.name(), JobEnum.INIT_MARK_DATA_GROUP.name(), "0 0/5 * * * ?", initMarkDataJobMap);
+        log.info("增加初始化阅卷数据定时任务 end");
 
         log.info("服务器启动时执行 end");
     }