xiaofei 11 mesiacov pred
rodič
commit
c369e61373

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskWholeService.java

@@ -7,6 +7,7 @@ import com.qmth.distributed.print.business.entity.ExamTaskWhole;
 import com.qmth.teachcloud.common.enums.clientpackage.ClientPackageEnum;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.List;
 import java.util.Map;
 
 public interface ExamTaskWholeService extends IService<ExamTaskWhole> {
@@ -14,6 +15,8 @@ public interface ExamTaskWholeService extends IService<ExamTaskWhole> {
     void checkAndCreateTask(Long examId, Long courseId, String paperNumber);
 
     ExamTaskWhole getByExamIdAndCourseIdAndPaperNumber(Long examId, String paperNumber);
+    int countByExamIdAndCourseIdAndPaperNumber(Long examId, String paperNumber);
+    boolean deleteByExamIdAndCourseIdAndPaperNumber(Long examId, String paperNumber);
 
     Map getWholePdf(Long examId, String paperNumber);
 

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

@@ -1114,7 +1114,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
                 examDetailCourse.setCoursePaperId(examDetailCourseInfo.getCoursePaperId());
                 examDetailCourse.setTotalSubjects(examDetailCourseValues.size());
                 examDetailCourse.setCreateId(createId);
-                String clazzName = examDetailCourseValues.stream().filter(m -> StringUtils.isNotBlank(m.getTeachClassName())).map(BasicExamStudent::getTeachClassName).collect(Collectors.joining(","));
+                String clazzName = examDetailCourseValues.stream().filter(m -> StringUtils.isNotBlank(m.getTeachClassName())).map(BasicExamStudent::getTeachClassName).distinct().collect(Collectors.joining(","));
                 if (StringUtils.isNotBlank(clazzName)) {
                     examDetailCourse.setClazzName(clazzName);
                 }

+ 23 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskWholeServiceImpl.java

@@ -64,6 +64,9 @@ public class ExamTaskWholeServiceImpl extends ServiceImpl<ExamTaskWholeMapper, E
                 return;
             }
             examTaskWholeList.add(key);
+            if (this.countByExamIdAndCourseIdAndPaperNumber(examId, paperNumber) > 1) {
+                this.deleteByExamIdAndCourseIdAndPaperNumber(examId, paperNumber);
+            }
             boolean isAllPrintFinish = examDetailService.allExamDetailIsExist(examId, courseId, paperNumber);
             ExamTaskWhole examTaskWhole = this.getByExamIdAndCourseIdAndPaperNumber(examId, paperNumber);
             if (isAllPrintFinish) {
@@ -107,9 +110,28 @@ public class ExamTaskWholeServiceImpl extends ServiceImpl<ExamTaskWholeMapper, E
         return this.getOne(queryWrapper);
     }
 
+    @Override
+    public int countByExamIdAndCourseIdAndPaperNumber(Long examId, String paperNumber) {
+        QueryWrapper<ExamTaskWhole> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamTaskWhole::getExamId, examId)
+                .eq(ExamTaskWhole::getPaperNumber, paperNumber);
+        return this.count(queryWrapper);
+    }
+
+    @Override
+    public boolean deleteByExamIdAndCourseIdAndPaperNumber(Long examId, String paperNumber) {
+        QueryWrapper<ExamTaskWhole> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamTaskWhole::getExamId, examId)
+                .eq(ExamTaskWhole::getPaperNumber, paperNumber);
+        return this.remove(queryWrapper);
+    }
+
     @Override
     public Map getWholePdf(Long examId, String paperNumber) {
-        ExamTaskWhole examTaskWhole = getByExamIdAndCourseIdAndPaperNumber(examId, paperNumber);
+        if (this.countByExamIdAndCourseIdAndPaperNumber(examId, paperNumber) > 1) {
+            this.deleteByExamIdAndCourseIdAndPaperNumber(examId, paperNumber);
+        }
+        ExamTaskWhole examTaskWhole = this.getByExamIdAndCourseIdAndPaperNumber(examId, paperNumber);
         Map map = new HashMap();
         map.put("status", examTaskWhole != null ? examTaskWhole.getStatus() : ExamTaskWholeStatusEnum.INIT);
         map.put("url", examTaskWhole != null && StringUtils.isNotBlank(examTaskWhole.getAttachmentPath()) ? fileUploadService.filePreview(examTaskWhole.getAttachmentPath()) : null);