xiaofei hai 1 ano
pai
achega
d32c2018d8
Modificáronse 16 ficheiros con 167 adicións e 80 borrados
  1. 61 31
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/initMarkData/ExamDetailCourseInitMarkDto.java
  2. 1 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java
  3. 6 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java
  4. 10 10
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePrintPdfUtil.java
  5. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfFillUtils.java
  6. 8 7
      distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml
  7. 11 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/bean/scanexaminfo/PackageScan.java
  8. 3 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperService.java
  9. 19 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java
  10. 1 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java
  11. 2 2
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanOmrTaskServiceImpl.java
  12. 1 0
      teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml
  13. 2 2
      teachcloud-mark/src/main/resources/mapper/ScanOmrTaskMapper.xml
  14. 1 1
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java
  15. 36 22
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/service/impl/PrintFinishServiceImpl.java
  16. 3 3
      teachcloud-task/src/main/java/com/qmth/teachcloud/task/start/StartRunning.java

+ 61 - 31
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/initMarkData/ExamDetailCourseInitMarkDto.java

@@ -1,39 +1,29 @@
 package com.qmth.distributed.print.business.bean.dto.initMarkData;
 
-import com.qmth.distributed.print.business.entity.ExamDetailCourse;
-
 /**
  * 课程同步阅卷数据dto
  */
-public class ExamDetailCourseInitMarkDto extends ExamDetailCourse {
+public class ExamDetailCourseInitMarkDto {
 
     private Long schoolId;
-    private Long examDetailId;
     private Long examId;
-    private String packageCode;
-    private String examPlace;
-    private String examRoom;
+    private String courseCode;
+    private String courseName;
+    private String paperNumber;
+    private String coursePaperId;
+    private String paperType;
+    private Long createId;
+    private String packageCodes;
+    private String examDetailCourseIds;
 
-    @Override
     public Long getSchoolId() {
         return schoolId;
     }
 
-    @Override
     public void setSchoolId(Long schoolId) {
         this.schoolId = schoolId;
     }
 
-    @Override
-    public Long getExamDetailId() {
-        return examDetailId;
-    }
-
-    @Override
-    public void setExamDetailId(Long examDetailId) {
-        this.examDetailId = examDetailId;
-    }
-
     public Long getExamId() {
         return examId;
     }
@@ -42,27 +32,67 @@ public class ExamDetailCourseInitMarkDto extends ExamDetailCourse {
         this.examId = examId;
     }
 
-    public String getPackageCode() {
-        return packageCode;
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public String getCoursePaperId() {
+        return coursePaperId;
+    }
+
+    public void setCoursePaperId(String coursePaperId) {
+        this.coursePaperId = coursePaperId;
+    }
+
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
+    public Long getCreateId() {
+        return createId;
     }
 
-    public void setPackageCode(String packageCode) {
-        this.packageCode = packageCode;
+    public void setCreateId(Long createId) {
+        this.createId = createId;
     }
 
-    public String getExamPlace() {
-        return examPlace;
+    public String getPackageCodes() {
+        return packageCodes;
     }
 
-    public void setExamPlace(String examPlace) {
-        this.examPlace = examPlace;
+    public void setPackageCodes(String packageCodes) {
+        this.packageCodes = packageCodes;
     }
 
-    public String getExamRoom() {
-        return examRoom;
+    public String getExamDetailCourseIds() {
+        return examDetailCourseIds;
     }
 
-    public void setExamRoom(String examRoom) {
-        this.examRoom = examRoom;
+    public void setExamDetailCourseIds(String examDetailCourseIds) {
+        this.examDetailCourseIds = examDetailCourseIds;
     }
 }

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java

@@ -249,4 +249,5 @@ public interface ExamDetailService extends IService<ExamDetail> {
 
     List<ExamDetail> listByExamAndPackage(Long examId, String packageCode);
 
+    ExamDetail getByExamDetailId(Long examDetailId);
 }

+ 6 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -1284,4 +1284,10 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         lw.eq(ExamDetail::getPackageCode, packageCode);
         return this.list(wrapper);
     }
+
+    @Override
+    public ExamDetail getByExamDetailId(Long examDetailId) {
+        ExamDetailCourse examDetailCourse = examDetailCourseService.getById(examDetailId);
+        return this.getById(examDetailCourse.getExamDetailId());
+    }
 }

+ 10 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePrintPdfUtil.java

@@ -129,10 +129,10 @@ public class CreatePrintPdfUtil {
         basicTable.addCell(PdfFillUtils.createTitleCell(pdfFillDto.getTitle(), PdfFillUtils.textFont16, 60f, 15, 1, 6));
         List<Map<String, String>> basicPlate = pdfFillDto.getBasicPlate();
         for (Map<String, String> stringMap : basicPlate) {
-            basicTable.addCell(PdfFillUtils.createCell(stringMap.get("name") + ":" + stringMap.get("value"), PdfFillUtils.textFont11, null, Element.ALIGN_LEFT, 0, 1, 3));
+            basicTable.addCell(PdfFillUtils.createCell(stringMap.get("name") + ":" + stringMap.get("value"), PdfFillUtils.textFont10, null, Element.ALIGN_LEFT, 0, 1, 3));
         }
         if (basicPlate.size() % 2 > 0) {
-            basicTable.addCell(PdfFillUtils.createCell(" ", PdfFillUtils.textFont11, null, Element.ALIGN_LEFT, 0, 1, 3));
+            basicTable.addCell(PdfFillUtils.createCell(" ", PdfFillUtils.textFont10, null, Element.ALIGN_LEFT, 0, 1, 3));
         }
         document.add(basicTable);
 
@@ -157,7 +157,7 @@ public class CreatePrintPdfUtil {
                     if ("座位号".equals(value)) {
                         value = "座号";
                     }
-                    studentTable.addCell(PdfFillUtils.createCell(value, PdfFillUtils.textFont11, BaseColor.LIGHT_GRAY, Element.ALIGN_CENTER, 0, 1, 1));
+                    studentTable.addCell(PdfFillUtils.createCell(value, PdfFillUtils.textFont9, BaseColor.LIGHT_GRAY, Element.ALIGN_CENTER, 0, 1, 1));
                     j++;
                 }
             }
@@ -171,19 +171,19 @@ public class CreatePrintPdfUtil {
                 Map<String, String> stringMap1 = studentPlate.get(2 * i);
                 for (int j = 0; j < stringMap1.size(); j++) {
                     String value = stringMap1.get(headKeys[j]);
-                    studentTable.addCell(PdfFillUtils.createCell(value, chooseFont(value, columnWidth[j]), null, Element.ALIGN_CENTER, 0, 1, 1));
+                    studentTable.addCell(PdfFillUtils.createCell(value, PdfFillUtils.textFont9, null, Element.ALIGN_CENTER, 0, 1, 1));
                 }
 
                 if (studentPlateCount % 2 > 0 && 2 * i + 1 == studentPlate.size()) {
                     for (int i1 = 0; i1 < columnCount; i1++) {
-                        studentTable.addCell(PdfFillUtils.createCell("", PdfFillUtils.textFont11, null, Element.ALIGN_CENTER, 0, 1, 1));
+                        studentTable.addCell(PdfFillUtils.createCell("", PdfFillUtils.textFont9, null, Element.ALIGN_CENTER, 0, 1, 1));
                     }
                     continue;
                 }
                 Map<String, String> stringMap2 = studentPlate.get(2 * i + 1);
                 for (int j = 0; j < stringMap2.size(); j++) {
                     String value = stringMap2.get(headKeys[j + columnCount]);
-                    studentTable.addCell(PdfFillUtils.createCell(value, chooseFont(value, columnWidth[j + columnCount]), null, Element.ALIGN_CENTER, 0, 1, 1));
+                    studentTable.addCell(PdfFillUtils.createCell(value, PdfFillUtils.textFont9, null, Element.ALIGN_CENTER, 0, 1, 1));
                 }
             }
         }
@@ -197,7 +197,7 @@ public class CreatePrintPdfUtil {
                 if ("座位号".equals(value)) {
                     value = "座号";
                 }
-                studentTable.addCell(PdfFillUtils.createCell(value, PdfFillUtils.textFont11, BaseColor.LIGHT_GRAY, Element.ALIGN_CENTER, 0, 1, 1));
+                studentTable.addCell(PdfFillUtils.createCell(value, PdfFillUtils.textFont9, BaseColor.LIGHT_GRAY, Element.ALIGN_CENTER, 0, 1, 1));
                 k++;
             }
 
@@ -209,7 +209,7 @@ public class CreatePrintPdfUtil {
                 Map<String, String> stringMap1 = studentPlate.get(i);
                 for (int j = 0; j < stringMap1.size(); j++) {
                     String value = stringMap1.get(headKeys[j]);
-                    studentTable.addCell(PdfFillUtils.createCell(value, chooseFont(value, columnWidth[j]), null, Element.ALIGN_CENTER, 0, 1, 1));
+                    studentTable.addCell(PdfFillUtils.createCell(value, PdfFillUtils.textFont9, null, Element.ALIGN_CENTER, 0, 1, 1));
                 }
             }
         }
@@ -502,7 +502,7 @@ public class CreatePrintPdfUtil {
     public static void main(String[] args) {
         PdfSignDto pdfFillDto = new PdfSignDto();
         pdfFillDto.setTitle("测试签到表");
-        pdfFillDto.setPackageNumber("200032324");
+        pdfFillDto.setPackageNumber("1000004");
 
         // 基础信息
         List<Map<String, String>> basicPlate = new ArrayList<>();
@@ -575,7 +575,7 @@ public class CreatePrintPdfUtil {
 
         PdfPackageDto pdfPackageDto = new PdfPackageDto();
         pdfPackageDto.setTitle("测试卷袋贴");
-        pdfPackageDto.setPackageNumber("20000213134");
+        pdfPackageDto.setPackageNumber("1000004");
 
         // 基础信息
         List<Map<String, String>> basicPlate1 = new ArrayList<>();

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfFillUtils.java

@@ -337,7 +337,7 @@ public class PdfFillUtils {
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
         cell.setHorizontalAlignment(horizontalAlignment);
         cell.setUseAscender(true);
-        cell.setNoWrap(false);
+//        cell.setNoWrap(false);
         if (font != null) {
             cell.setPhrase(new Phrase(value, font));
         } else {
@@ -346,7 +346,7 @@ public class PdfFillUtils {
         if (cellColor != null) {
             cell.setBackgroundColor(cellColor);
         }
-        cell.setMinimumHeight(20f);
+//        cell.setMinimumHeight(20f);
         if (disableBorderSide > 0) {
             cell.disableBorderSide(disableBorderSide);
         }

+ 8 - 7
distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml

@@ -688,23 +688,22 @@
     <select id="listPrintFinishExamDetailCourse"
             resultType="com.qmth.distributed.print.business.bean.dto.initMarkData.ExamDetailCourseInitMarkDto">
         SELECT
-            ed.id examDetailId,
             ed.school_id schoolId,
             ed.exam_id examId,
-            edc.id,
-            ed.package_code packageCode,
-            ed.exam_place examPlace,
-            ed.exam_room examRoom,
             edc.course_code courseCode,
             edc.course_name courseName,
             edc.paper_number paperNumber,
             edc.course_paper_id coursePaperId,
-            edc.paper_type paperType,
-            edc.create_id createId
+            edcpt.paper_type paperType,
+            ed.create_id createId,
+            group_concat(ed.package_code) packageCodes,
+            group_concat(edc.id) examDetailCourseIds
         FROM
             exam_detail ed
                 LEFT JOIN
             exam_detail_course edc ON ed.id = edc.exam_detail_id
+                LEFT JOIN
+            exam_detail_course_paper_type edcpt ON edc.id = edcpt.exam_detail_course_id
         WHERE
             ed.status = #{printStatus}
           AND ed.print_end_time > #{startTime}
@@ -716,5 +715,7 @@
                               ed.exam_id = mp.exam_id
                             AND edc.paper_number = mp.paper_number
                             AND mp.status = #{markStatus})
+        ORDER BY ed.id
+        GROUP BY ed.school_id, ed.exam_id, edc.course_code, edc.course_name, edc.paper_number, edc.course_paper_id, edc.paper_type, ed.create_id
     </select>
 </mapper>

+ 11 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/bean/scanexaminfo/PackageScan.java

@@ -2,7 +2,18 @@ package com.qmth.teachcloud.mark.bean.scanexaminfo;
 
 
 public class PackageScan {
+
+	private int totalCount;
 	private int scannedCount;
+
+	public int getTotalCount() {
+		return totalCount;
+	}
+
+	public void setTotalCount(int totalCount) {
+		this.totalCount = totalCount;
+	}
+
 	public int getScannedCount() {
 		return scannedCount;
 	}

+ 3 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperService.java

@@ -57,4 +57,7 @@ public interface MarkPaperService extends IService<MarkPaper> {
 
 	IPage<ArchiveScoreVo> scoreList(ArchiveScoreQuery query);
 
+    int getPackageCountByExamId(Long examId);
+
+    List<MarkPaper> listByExamId(Long examId);
 }

+ 19 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java

@@ -34,6 +34,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -282,4 +284,21 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
         return ret;
     }
 
+    @Override
+    public int getPackageCountByExamId(Long examId) {
+        List<MarkPaper> markPaperList = this.listByExamId(examId);
+        List<String> packageCodes = new ArrayList<>();
+        for (MarkPaper markPaper : markPaperList) {
+            packageCodes.addAll(Arrays.asList(markPaper.getPackageCode().split(",")));
+        }
+        return packageCodes.size();
+    }
+
+    @Override
+    public List<MarkPaper> listByExamId(Long examId) {
+        QueryWrapper<MarkPaper> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(MarkPaper::getExamId, examId);
+        return this.list(queryWrapper);
+    }
+
 }

+ 1 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -147,6 +147,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         vo.getAnswerScan().setCourseCount(markPaperService.getCountByExam(exam.getId()));
         vo.getAnswerScan().setTotalCount(getCount(exam.getId(), null));
         vo.getAnswerScan().setScannedCount(getCount(exam.getId(), ScanStatus.SCANNED));
+        vo.getPackageScan().setTotalCount(markPaperService.getPackageCountByExamId(exam.getId()));
         vo.getPackageScan().setScannedCount(scanPackageService.getCount(exam.getId()));
         return vo;
     }

+ 2 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanOmrTaskServiceImpl.java

@@ -531,8 +531,8 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
 	@Override
 	public ScanOmrTaskStatusDto getStatus(Long examId, Long userId) {
 		ScanOmrTaskStatusDto status = new ScanOmrTaskStatusDto();
-		status.setFinishCount(this.getCountByExamAndStatusAndUserId(examId, userId, OmrTaskStatus.PROCESSED));
-		status.setTodoCount(this.getCountByExamAndStatus(examId, OmrTaskStatus.WAITING));
+//		status.setFinishCount(this.getCountByExamAndStatusAndUserId(examId, userId, OmrTaskStatus.PROCESSED));
+//		status.setTodoCount(this.getCountByExamAndStatus(examId, OmrTaskStatus.WAITING));
 		return status;
 	}
 

+ 1 - 0
teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml

@@ -27,6 +27,7 @@
         <result column="show_object_score" property="showObjectScore" />
         <result column="open_mark_class" property="openMarkClass" />
         <result column="status" property="status" />
+        <result column="package_code" property="packageCode"/>
     </resultMap>
     <select id="listPaperSetting" resultType="com.qmth.teachcloud.common.bean.dto.mark.MarkSettingDto">
         SELECT

+ 2 - 2
teachcloud-mark/src/main/resources/mapper/ScanOmrTaskMapper.xml

@@ -21,7 +21,7 @@
 			typeHandler="com.qmth.teachcloud.mark.handle.OmrTaskPageListTypeHandler" />
     </resultMap>
     
-    <select id="findUnMarked" resultMap="com.qmth.teachcloud.mark.entity.ScanOmrTask">
+    <select id="findUnMarked" resultType="com.qmth.teachcloud.mark.entity.ScanOmrTask">
 		select *
 		from scan_omr_task t
 		where t.exam_id=#{examId}
@@ -32,7 +32,7 @@
 		#{pageNumber},#{pageSize}
 	</select>
 	
-	   <select id="listByExamIdAndStatusAndUserId" resultMap="com.qmth.teachcloud.mark.dto.ScanStudentDto">
+	   <select id="listByExamIdAndStatusAndUserId" resultType="com.qmth.teachcloud.mark.dto.ScanStudentDto">
 		select 
 			s.id,
 			s.student_name,

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

@@ -151,7 +151,7 @@ public class JobServiceImpl implements JobService {
         for (ExamDetailCourseInitMarkDto dto : examDetailCourseInitMarkDtoList) {
             TBSyncTask tbSyncTask = tbSyncTaskService.saveTask(dto.getSchoolId(), dto.getExamId(), dto.getPaperNumber(), dto.getPaperType(), PushTypeEnum.INIT_MARK_DATA, "");
             try {
-                printFinishService.insertMarkPaper(dto.getExamId(), dto.getCourseCode(), dto.getCourseName(), dto.getPaperNumber(), dto.getCoursePaperId(), dto.getPackageCode(), dto.getCreateId(), dto.getPaperType());
+                printFinishService.insertMarkPaper(dto.getExamId(), dto.getCourseCode(), dto.getCourseName(), dto.getPaperNumber(), dto.getCoursePaperId(), dto.getPackageCodes(), dto.getCreateId(), dto.getPaperType());
                 printFinishService.insertMarkStudent(dto);
                 printFinishService.insertScanAnswerCardAndMarkQuestion(dto);
                 tbSyncTask.setResult(TaskResultEnum.SUCCESS);

+ 36 - 22
teachcloud-task/src/main/java/com/qmth/teachcloud/task/service/impl/PrintFinishServiceImpl.java

@@ -1,13 +1,13 @@
 package com.qmth.teachcloud.task.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.qmth.distributed.print.business.bean.dto.initMarkData.ExamDetailCourseInitMarkDto;
 import com.qmth.distributed.print.business.entity.ExamCard;
+import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamStudent;
 import com.qmth.distributed.print.business.entity.ExamTaskDetail;
 import com.qmth.distributed.print.business.enums.CardTypeEnum;
-import com.qmth.distributed.print.business.service.ExamCardService;
-import com.qmth.distributed.print.business.service.ExamStudentService;
-import com.qmth.distributed.print.business.service.ExamTaskDetailService;
+import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.MarkQuestion;
@@ -38,10 +38,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 @Service
 public class PrintFinishServiceImpl implements PrintFinishService {
@@ -57,7 +54,9 @@ public class PrintFinishServiceImpl implements PrintFinishService {
     @Resource
     private ScanAnswerCardService scanAnswerCardService;
     @Resource
-    private ScanPaperService scanPaperService;
+    private ExamDetailCourseService examDetailCourseService;
+    @Resource
+    private ExamDetailService examDetailService;
     @Resource
     private ExamStudentService examStudentService;
     @Resource
@@ -82,11 +81,19 @@ public class PrintFinishServiceImpl implements PrintFinishService {
     public void insertMarkPaper(Long examId, String courseCode, String courseName, String paperNumber, String coursePaperId, String packageCode, Long userId, String paperType) {
         try {
             MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
+            List<String> packageCodes = Arrays.asList(packageCode.split(","));
             if (markPaper != null) {
-                return;
+                if (packageCode.equals(markPaper.getPackageCode())) {
+                    return;
+                }
+                UpdateWrapper<MarkPaper> updateWrapper = new UpdateWrapper<>();
+                updateWrapper.lambda().set(MarkPaper::getPackageCode, packageCode)
+                        .eq(MarkPaper::getId, markPaper.getId());
+                markPaperService.update(updateWrapper);
+            } else {
+                MarkPaper insertMarkPaper = new MarkPaper(examId, courseCode, courseName, paperNumber, coursePaperId, packageCode, userId, paperType);
+                markPaperService.save(insertMarkPaper);
             }
-            MarkPaper insertMarkPaper = new MarkPaper(examId, courseCode, courseName, paperNumber, coursePaperId, packageCode, userId, paperType);
-            markPaperService.save(insertMarkPaper);
         } catch (Exception e) {
             log.info("同步考试课程失败");
         }
@@ -97,26 +104,33 @@ public class PrintFinishServiceImpl implements PrintFinishService {
     public void insertMarkStudent(ExamDetailCourseInitMarkDto dto) {
         try {
             List<MarkStudent> markStudentList = new ArrayList<>();
-            List<ExamStudent> examStudentList = examStudentService.listByExamDetailCourseIdNotIntMarkStudent(dto.getId());
             Set<String> secretNumberSet = new HashSet<>();
-            for (ExamStudent examStudent : examStudentList) {
-                MarkStudent markStudent = markStudentService.getById(examStudent.getId());
-                if (markStudent != null) {
+            for (String id : dto.getExamDetailCourseIds().split(",")) {
+                Long examDetailId = Long.valueOf(id);
+                ExamDetail examDetail = examDetailService.getByExamDetailId(examDetailId);
+                if (examDetail == null) {
                     continue;
                 }
-                MarkStudent student = new MarkStudent(examStudent.getId(), dto.getExamId(), dto.getCourseCode(), dto.getCourseName(), dto.getPaperNumber(), dto.getCoursePaperId(), dto.getPaperType(), examStudent.getStudentCode(), examStudent.getStudentName(), dto.getPackageCode(), dto.getExamPlace(), dto.getExamRoom(), examStudent.getCollegeName(), examStudent.getClazzName());
-                if (student.getSecretNumber() == null) {
-                    student.randomSecretNumber();
-                    while (secretNumberSet.contains(student.getSecretNumber())
-                            || markStudentService.countByExamIdAndSecretNumber(student.getExamId(), student.getSecretNumber()) > 0) {
+                List<ExamStudent> examStudentList = examStudentService.listByExamDetailCourseIdNotIntMarkStudent(examDetailId);
+                for (ExamStudent examStudent : examStudentList) {
+                    MarkStudent markStudent = markStudentService.getById(examStudent.getId());
+                    if (markStudent != null) {
+                        continue;
+                    }
+                    MarkStudent student = new MarkStudent(examStudent.getId(), dto.getExamId(), dto.getCourseCode(), dto.getCourseName(), dto.getPaperNumber(), dto.getCoursePaperId(), dto.getPaperType(), examStudent.getStudentCode(), examStudent.getStudentName(), examDetail.getPackageCode(), examDetail.getExamPlace(), examDetail.getExamRoom(), examStudent.getCollegeName(), examStudent.getClazzName());
+                    if (student.getSecretNumber() == null) {
                         student.randomSecretNumber();
+                        while (secretNumberSet.contains(student.getSecretNumber())
+                                || markStudentService.countByExamIdAndSecretNumber(student.getExamId(), student.getSecretNumber()) > 0) {
+                            student.randomSecretNumber();
+                        }
                     }
+                    markStudentList.add(student);
                 }
-                markStudentList.add(student);
             }
+
             if (CollectionUtils.isNotEmpty(markStudentList)) {
                 markStudentService.saveBatch(markStudentList);
-
                 // 更新mark_paper表student_count字段
                 markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(dto.getExamId(), dto.getPaperNumber(), dto.getPaperType());
             }

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

@@ -93,7 +93,7 @@ public class StartRunning implements CommandLineRunner {
         Map qualityJobMap = new HashMap();
         qualityJobMap.computeIfAbsent("name", v -> SubjectCalculateJob.class.getName());
         quartzService.deleteJob(JobEnum.UPDATE_MARKER_QUALITY.name(), JobEnum.UPDATE_MARKER_QUALITY_GROUP.name());
-        quartzService.addJob(SubjectCalculateJob.class, JobEnum.UPDATE_MARKER_QUALITY.name(), JobEnum.UPDATE_MARKER_QUALITY_GROUP.name(), "0 */1 * * * ?", qualityJobMap);
+//        quartzService.addJob(SubjectCalculateJob.class, JobEnum.UPDATE_MARKER_QUALITY.name(), JobEnum.UPDATE_MARKER_QUALITY_GROUP.name(), "0 */1 * * * ?", qualityJobMap);
         log.info("增加更新评卷员质量监控指标定时任务 end");
 
 
@@ -102,7 +102,7 @@ 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分钟一次
@@ -110,7 +110,7 @@ public class StartRunning implements CommandLineRunner {
         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 */5 * * * ?", initMarkDataJobMap);
+        quartzService.addJob(InitMarkDataJob.class, JobEnum.INIT_MARK_DATA.name(), JobEnum.INIT_MARK_DATA_GROUP.name(), "0 */1 * * * ?", initMarkDataJobMap);
         log.info("增加初始化阅卷数据定时任务 end");
 
         log.info("服务器启动时执行 end");