فهرست منبع

3.2.3 试卷编号在考试下唯一bug修改

xiaofei 2 سال پیش
والد
کامیت
3607236abb

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

@@ -11,5 +11,5 @@ import com.qmth.distributed.print.business.entity.ExamTaskSync;
  */
 public interface ExamTaskSyncService extends IService<ExamTaskSync> {
 
-    ExamTaskSync getBySchoolIdAndOrgCodeAndPaperNumber(Long schoolId, String orgCode, String paperNumber);
+    ExamTaskSync getBySchoolIdAndOrgCodeAndPaperNumber(Long schoolId, Long examId, String orgCode, String paperNumber);
 }

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

@@ -134,7 +134,7 @@ public class DataSyncServiceImpl implements DataSyncService {
 
                 Long examTaskId = Long.valueOf(param.getExamTaskId());
                 ExamTask examTask = examTaskService.getById(examTaskId);
-                ExamTaskSync examTaskSync = examTaskSyncService.getBySchoolIdAndOrgCodeAndPaperNumber(schoolId, orgCode, examTask.getPaperNumber());
+                ExamTaskSync examTaskSync = examTaskSyncService.getBySchoolIdAndOrgCodeAndPaperNumber(schoolId, examTask.getExamId(), orgCode, examTask.getPaperNumber());
                 if (examTaskSync != null && ExamTaskSyncStatusEnum.STARTING.equals(examTaskSync.getSyncStatus())) {
                     throw ExceptionResultEnum.ERROR.exception("其它任务中该课程正在同步中,请刷新列表查看最新状态");
                 }

+ 8 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1477,13 +1477,15 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
             if (StringUtils.isNotBlank(examTask.getPaperNumber())) {
                 QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
-                taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getPaperNumber, examTask.getPaperNumber());
+                taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId)
+                        .eq(ExamTask::getExamId, examId)
+                        .eq(ExamTask::getPaperNumber, examTask.getPaperNumber());
                 if (Objects.nonNull(examTask.getId())) {
                     taskQueryWrapper.lambda().ne(ExamTask::getId, examTask.getId());
                 }
                 ExamTask task = this.getOne(taskQueryWrapper);
                 if (task != null) {
-                    throw ExceptionResultEnum.ERROR.exception("试卷编号已存在");
+                    throw ExceptionResultEnum.ERROR.exception(String.format("试卷编号[%s]在当前考试下已存在"));
                 }
             } else {
                 // 试卷编号生成规则:年月日(例如:20100419)+0000(例如:0001)顺序编号
@@ -1618,13 +1620,15 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
             if (StringUtils.isNotBlank(examTask.getPaperNumber())) {
                 QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
-                taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getPaperNumber, examTask.getPaperNumber());
+                taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId)
+                        .eq(ExamTask::getExamId, examTask.getExamId())
+                        .eq(ExamTask::getPaperNumber, examTask.getPaperNumber());
                 if (Objects.nonNull(examTask.getId())) {
                     taskQueryWrapper.lambda().ne(ExamTask::getId, examTask.getId());
                 }
                 ExamTask task = this.getOne(taskQueryWrapper);
                 if (task != null) {
-                    throw ExceptionResultEnum.ERROR.exception("试卷编号已存在");
+                    throw ExceptionResultEnum.ERROR.exception(String.format("试卷编号[%s]在当前考试下已存在"));
                 }
             } else {
                 // 试卷编号生成规则:年月日(例如:20100419)+0000(例如:0001)顺序编号

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

@@ -18,10 +18,11 @@ import org.springframework.stereotype.Service;
 public class ExamTaskSyncServiceImpl extends ServiceImpl<ExamTaskSyncMapper, ExamTaskSync> implements ExamTaskSyncService {
 
     @Override
-    public ExamTaskSync getBySchoolIdAndOrgCodeAndPaperNumber(Long schoolId, String orgCode, String paperNumber) {
+    public ExamTaskSync getBySchoolIdAndOrgCodeAndPaperNumber(Long schoolId, Long examId, String orgCode, String paperNumber) {
 
         QueryWrapper<ExamTaskSync> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamTaskSync::getSchoolId, schoolId)
+                .eq(ExamTaskSync::getExamId, examId)
                 .eq(ExamTaskSync::getPaperNumber, paperNumber);
         if(StringUtils.isNotBlank(orgCode)){
             queryWrapper.lambda().eq(ExamTaskSync::getOrgCode, orgCode);

+ 2 - 0
distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml

@@ -241,10 +241,12 @@
              exam_detail c ON b.exam_detail_id = c.id
                  LEFT JOIN
              exam_task et ON b.school_id = et.school_id
+                 and c.exam_id = et.exam_id
                  and b.course_code = et.course_code
                  and b.paper_number = et.paper_number
                  LEFT JOIN
              exam_task_sync ets ON et.school_id = ets.school_id
+                and et.exam_id = ets.exam_id
                  and et.paper_number = ets.paper_number
         <where>
             <if test="examTaskId != null">

+ 1 - 1
distributed-print-business/src/main/resources/mapper/ExamStudentMapper.xml

@@ -131,7 +131,7 @@
              exam_detail c ON b.exam_detail_id = c.id
                  LEFT JOIN
              exam_task et ON b.school_id = et.school_id
-                 c.exam_id = et.exam_id
+                 and c.exam_id = et.exam_id
                  and b.course_code = et.course_code
                  and b.paper_number = et.paper_number
         WHERE b.id = #{examDetailCourseId}