Selaa lähdekoodia

3.3.0 阅卷科目、阅卷考生新增

xiaofei 1 vuosi sitten
vanhempi
commit
eda418d9f0

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamStudentService.java

@@ -54,4 +54,6 @@ public interface ExamStudentService extends IService<ExamStudent> {
     List<String> listUserClass(Long schoolId, Long examId, String paperNumber);
 
     ExamStudent listByExamDetailCourseIdLimit1(Long schoolId, Long examDetailCourseId);
+
+    List<ExamStudent> listByExamDetailCourseId(Long examDetailCourseId);
 }

+ 17 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/PrintFinishService.java

@@ -0,0 +1,17 @@
+package com.qmth.distributed.print.business.service;
+
+import com.qmth.distributed.print.business.entity.ExamDetail;
+
+/**
+ * 打印结束后操作服务类
+ */
+public interface PrintFinishService {
+
+    public void insertMarkPaper(Long examId, String courseCode, String courseName, String paperNumber);
+
+    public void insertMarkStudent(ExamDetail examDetail);
+
+    public void insertScanAnswerCard();
+
+    public void insertMarkQuestion();
+}

+ 7 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamStudentServiceImpl.java

@@ -13,7 +13,6 @@ import com.qmth.distributed.print.business.entity.ExamStudent;
 import com.qmth.distributed.print.business.mapper.ExamDetailCourseMapper;
 import com.qmth.distributed.print.business.mapper.ExamStudentMapper;
 import com.qmth.distributed.print.business.service.ExamStudentService;
-import com.qmth.teachcloud.common.entity.BasicCollege;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
@@ -141,4 +140,11 @@ public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentMapper, ExamS
     public ExamStudent listByExamDetailCourseIdLimit1(Long schoolId, Long examDetailCourseId) {
         return this.baseMapper.listByExamDetailCourseIdLimit1(schoolId, examDetailCourseId);
     }
+
+    @Override
+    public List<ExamStudent> listByExamDetailCourseId(Long examDetailCourseId) {
+        QueryWrapper<ExamStudent> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamStudent::getExamDetailCourseId, examDetailCourseId);
+        return this.list(queryWrapper);
+    }
 }

+ 81 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintFinishServiceImpl.java

@@ -0,0 +1,81 @@
+package com.qmth.distributed.print.business.service.impl;
+
+import com.qmth.distributed.print.business.entity.ExamDetail;
+import com.qmth.distributed.print.business.entity.ExamDetailCourse;
+import com.qmth.distributed.print.business.entity.ExamStudent;
+import com.qmth.distributed.print.business.service.ExamDetailCourseService;
+import com.qmth.distributed.print.business.service.ExamStudentService;
+import com.qmth.distributed.print.business.service.PrintFinishService;
+import com.qmth.teachcloud.common.entity.MarkPaper;
+import com.qmth.teachcloud.common.entity.MarkStudent;
+import com.qmth.teachcloud.common.service.MarkPaperService;
+import com.qmth.teachcloud.common.service.MarkQuestionService;
+import com.qmth.teachcloud.common.service.MarkStudentService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class PrintFinishServiceImpl implements PrintFinishService {
+
+    @Resource
+    private MarkPaperService markPaperService;
+    @Resource
+    private MarkQuestionService markQuestionService;
+    @Resource
+    private MarkStudentService markStudentService;
+    @Resource
+    private ExamDetailCourseService examDetailCourseService;
+    @Resource
+    private ExamStudentService examStudentService;
+
+    /**
+     * 打印结束后,生成阅卷科目数据
+     *
+     * @param examId
+     * @param courseCode
+     * @param courseName
+     * @param paperNumber
+     */
+    @Override
+    public void insertMarkPaper(Long examId, String courseCode, String courseName, String paperNumber) {
+        MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
+        if (markPaper != null) {
+            return;
+        }
+        MarkPaper insertMarkPaper = new MarkPaper(examId, courseCode, courseName, paperNumber);
+        markPaperService.save(insertMarkPaper);
+    }
+
+    @Override
+    public void insertMarkStudent(ExamDetail examDetail) {
+        List<MarkStudent> markStudentList = new ArrayList<>();
+        List<ExamDetailCourse> examDetailCourseList = examDetailCourseService.listByExamDetailId(examDetail.getId());
+        for (ExamDetailCourse examDetailCourse : examDetailCourseList) {
+            List<ExamStudent> examStudentList = examStudentService.listByExamDetailCourseId(examDetailCourse.getId());
+            for (ExamStudent examStudent : examStudentList) {
+                MarkStudent markStudent = markStudentService.getById(examStudent.getId());
+                if (markStudent != null) {
+                    continue;
+                }
+                markStudentList.add(new MarkStudent(examStudent.getId(), examDetail.getExamId(), examDetailCourse.getCourseCode(), examDetailCourse.getCourseName(), examDetailCourse.getPaperNumber(), examStudent.getStudentCode(), examStudent.getStudentName(), examDetail.getPackageCode(), examDetail.getExamPlace(), examDetail.getExamRoom(), examStudent.getStudentName()));
+            }
+        }
+        if (CollectionUtils.isNotEmpty(markStudentList)) {
+            markStudentService.saveBatch(markStudentList);
+        }
+    }
+
+    @Override
+    public void insertScanAnswerCard() {
+
+    }
+
+    @Override
+    public void insertMarkQuestion() {
+
+    }
+}

+ 19 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/MarkPaper.java

@@ -102,6 +102,25 @@ public class MarkPaper implements Serializable {
 
     private MarkPaperStatus status;
 
+    public MarkPaper() {
+    }
+
+    public MarkPaper(Long examId, String courseCode, String courseName, String paperNumber) {
+        this.examId = examId;
+        this.courseCode = courseCode;
+        this.courseName = courseName;
+        this.paperNumber = paperNumber;
+        this.objectiveScore = 0D;
+        this.subjectiveScore = 0D;
+        this.totalScore =0D;
+        this.studentCount = 0;
+        this.uploadCount = 0;
+        this.absentCount = 0;
+        this.groupStatus =false;
+        this.openMarkClass = false;
+        this.status = MarkPaperStatus.FORMAL;
+    }
+
     public Long getExamId() {
         return examId;
     }

+ 17 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/MarkStudent.java

@@ -133,6 +133,23 @@ public class MarkStudent implements Serializable {
 
     private Boolean omrAbsent;
 
+    public MarkStudent() {
+    }
+
+    public MarkStudent(Long id, Long examId, String courseCode, String courseName, String paperNumber, String studentCode, String studentName, String packageCode, String examPlace, String examRoom, String className) {
+        this.id = id;
+        this.examId = examId;
+        this.courseCode = courseCode;
+        this.courseName = courseName;
+        this.paperNumber = paperNumber;
+        this.studentCode = studentCode;
+        this.studentName = studentName;
+        this.packageCode = packageCode;
+        this.examPlace = examPlace;
+        this.examRoom = examRoom;
+        this.className = className;
+    }
+
     public Long getId() {
         return id;
     }