Эх сурвалжийг харах

Merge remote-tracking branch 'origin/dev_v3.3.1' into dev_v3.3.1

caozixuan 1 жил өмнө
parent
commit
c35f3bb7d2

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamStudentMapper.java

@@ -58,8 +58,9 @@ public interface ExamStudentMapper extends BaseMapper<ExamStudent> {
      * 查询班级和老师信息
      *
      * @param examId
+     * @param courseCode
      * @param paperNumber
      * @return
      */
-    ExamStudentDto queryByExamIdAndPaperNumber(@Param("examId") Long examId, @Param("paperNumber") String paperNumber);
+    ExamStudentDto queryExamStudent(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber);
 }

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

@@ -50,8 +50,9 @@ public interface ExamStudentService extends IService<ExamStudent> {
      * 查询班级和老师信息
      *
      * @param examId
+     * @param courseCode
      * @param paperNumber
      * @return
      */
-    ExamStudentDto queryByExamIdAndPaperNumber(Long examId, String paperNumber);
+    ExamStudentDto queryExamStudent(Long examId, String courseCode, String paperNumber);
 }

+ 3 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamStudentServiceImpl.java

@@ -125,11 +125,12 @@ public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentMapper, ExamS
      * 查询班级和老师信息
      *
      * @param examId
+     * @param courseCode
      * @param paperNumber
      * @return
      */
     @Override
-    public ExamStudentDto queryByExamIdAndPaperNumber(Long examId, String paperNumber) {
-        return this.baseMapper.queryByExamIdAndPaperNumber(examId, paperNumber);
+    public ExamStudentDto queryExamStudent(Long examId, String courseCode, String paperNumber) {
+        return this.baseMapper.queryExamStudent(examId, courseCode, paperNumber);
     }
 }

+ 7 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRBasicInfoServiceImpl.java

@@ -385,9 +385,12 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
         BasicSemester basicSemester = basicSemesterService.selectByExamId(markPaper.getExamId());
         Objects.requireNonNull(basicSemester, "未找到学期信息");
 
-        ExamStudentDto examStudentDto = examStudentService.queryByExamIdAndPaperNumber(markPaper.getExamId(), markPaper.getPaperNumber());
-        String teachingObject = Objects.nonNull(examStudentDto) ? examStudentDto.getClazzNames() : null;
-        String teacher = Objects.nonNull(examStudentDto) ? examStudentDto.getTeacherNames() : null;
+        String teachingObject = null, teacher = null;
+        if (Objects.nonNull(markPaper.getPaperNumber())) {
+            ExamStudentDto examStudentDto = examStudentService.queryExamStudent(markPaper.getExamId(), markPaper.getCourseCode(), markPaper.getPaperNumber());
+            teachingObject = Objects.nonNull(examStudentDto) ? examStudentDto.getClazzNames() : null;
+            teacher = Objects.nonNull(examStudentDto) ? examStudentDto.getTeacherNames() : null;
+        }
 
         if (Objects.isNull(trBasicInfo)) {
             trBasicInfo = new TRBasicInfo(markPaper.getExamId(), markPaper.getCourseCode(), markPaper.getCourseName(), markPaper.getPaperNumber(), teachCourseId, basicSemester.getName(), teachingObject, teacher, null, userId);
@@ -766,7 +769,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                 rowRenderDataExamStudent[i + 2] = examStudent_row;
             }
 
-            String title = trBasicInfo.getTeachingObject();
+            String title = Objects.nonNull(trBasicInfo.getTeachingObject()) ? trBasicInfo.getTeachingObject() : "";
             String sumTitle = "学生共${examStudentSum}名";
             sumTitle = sumTitle.replace("${examStudentSum}", trExamStudentList.size() - 3 + "");
 

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

@@ -245,17 +245,21 @@
                               es.id = ms.id)
     </select>
 
-    <select id="queryByExamIdAndPaperNumber" resultType="com.qmth.distributed.print.business.bean.dto.ExamStudentDto">
+    <select id="queryExamStudent" resultType="com.qmth.distributed.print.business.bean.dto.ExamStudentDto">
         SELECT
             GROUP_CONCAT(DISTINCT es.teach_clazz_name) as clazzNames,
             GROUP_CONCAT(DISTINCT su.real_name) as teacherNames
         FROM
             exam_student es
             left join sys_user su on su.id = es.teacher_id
+            left join exam_detail_course edc on edc.id = exam_detail_course_id
         <where>
             <if test="examId != null and examId != ''">
                 AND es.exam_id = #{examId}
             </if>
+            <if test="courseCode != null and courseCode != ''">
+                AND edc.course_code = #{courseCode}
+            </if>
             <if test="paperNumber != null and paperNumber != ''">
                 AND es.paper_number = #{paperNumber}
             </if>

+ 2 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TCPaperStructController.java

@@ -111,8 +111,9 @@ public class TCPaperStructController {
     @Aac(rateLimit = @RateLimit(count = 1, period = 1000L))
     public Result finalScorePaperStructDimensionSync(@ApiParam(value = "考试id", required = true) @RequestParam Long examId,
                                                      @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
-                                                     @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
+                                                     @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
                                                      @ApiParam(value = "教学课程id", required = true) @RequestParam Long teachCourseId) throws IOException {
+        Objects.requireNonNull(paperNumber, "未查询到题和知识点对应关系请手动关联");
         printCommonService.getLock(examId, courseCode, paperNumber, teachCourseId);
         String lockKey = SystemConstant.REDIS_PAPER_STRUCT_FLOW_PREFIX + SystemConstant.SYNC + examId + "_" + courseCode + "_" + paperNumber + "_" + teachCourseId;
         boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_PAPER_STRUCT_TIME_OUT);