Browse Source

3.1.0-bug

xiaof 3 years ago
parent
commit
50bc545ffa

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

@@ -51,5 +51,5 @@ public interface ExamStudentMapper extends BaseMapper<ExamStudent> {
 
     List<Map> listStudentScoreSync(@Param("schoolId") Long schoolId, @Param("studentCode") String studentCode, @Param("examNumber") String examNumber, @Param("subjectCode") String subjectCode, @Param("printPlanId") Long printPlanId);
 
-    List<ExamStudentCourseClassDto> listExamStudentByPaperNumberAndPaperType(@Param("paperNumber") String paperNumber, @Param("paperType") String paperType);
+    List<ExamStudentCourseClassDto> listExamStudentByPaperNumberAndPaperType(@Param("batchId") Long batchId, @Param("paperNumber") String paperNumber, @Param("paperType") String paperType);
 }

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

@@ -65,9 +65,6 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
     @Resource
     ExamStudentMapper examStudentMapper;
 
-    @Resource
-    GradeBatchStudentService gradeBatchStudentService;
-
     @Resource
     GradeBatchStudentClazzService gradeBatchStudentClazzService;
 
@@ -184,7 +181,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
 
         List<ExamStudentCourseClassDto> finalList = new ArrayList<>();
         for (GradeBatchPaper gradeBatchPaper : gradeBatchPaperList) {
-            List<ExamStudentCourseClassDto> examStudentClassList = examStudentMapper.listExamStudentByPaperNumberAndPaperType(gradeBatchPaper.getPaperNumber(), gradeBatchPaper.getPaperType());
+            List<ExamStudentCourseClassDto> examStudentClassList = examStudentMapper.listExamStudentByPaperNumberAndPaperType(batchId, gradeBatchPaper.getPaperNumber(), gradeBatchPaper.getPaperType());
             if (!examStudentClassList.isEmpty()) {
                 finalList.addAll(examStudentClassList);
             }
@@ -293,10 +290,16 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
             XSSFCell cell6 = row.createCell(6);
             cell6.setCellStyle(unlockStyle);
             cell6.setCellType(CellType.STRING);
+            if(StringUtils.isNotBlank(examStudentCourseDto.getTeacherName())){
+                cell6.setCellValue(examStudentCourseDto.getTeacherName());
+            }
 
             XSSFCell cell7 = row.createCell(7);
             cell7.setCellStyle(unlockStyle);
             cell7.setCellType(CellType.STRING);
+            if(StringUtils.isNotBlank(examStudentCourseDto.getTeacherNumber())){
+                cell7.setCellValue(examStudentCourseDto.getTeacherNumber());
+            }
         }
 
         for (int i = 0; i < fieldsNameList.length; i++) {

+ 10 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/OpenApiServiceImpl.java

@@ -10,6 +10,7 @@ import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.entity.BasicMajor;
 import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicMajorService;
 import org.springframework.stereotype.Service;
 
@@ -199,9 +200,13 @@ public class OpenApiServiceImpl implements OpenApiService {
                 BasicMajor basicMajor = basicMajorService.getById(m.getMajorId());
                 examStudentScore.setMajor(basicMajor == null ? null : basicMajor.getName());
                 examStudentScore.setClassName(m.getClazzName());
-                GradeBatchStudentClazz gradeBatchStudentClazz = gradeBatchStudentClazzList.isEmpty() ? null : gradeBatchStudentClazzList.stream().filter(s -> s.getClazzId().equals(m.getClazzId().toString()) && s.getPaperNumber().equals(examStudentScore.getPaperNumber()) && s.getPaperType().equals(examStudentScore.getPaperType())).findFirst().orElseGet(null);
-                examStudentScore.setTeacherName(gradeBatchStudentClazz != null ? gradeBatchStudentClazz.getTeacherName() : null);
-                examStudentScore.setTeacherCode(gradeBatchStudentClazz != null ? gradeBatchStudentClazz.getTeacherNumber() : null);
+                List<GradeBatchStudentClazz> gradeBatchStudentClazzs = gradeBatchStudentClazzList.isEmpty() ? null : gradeBatchStudentClazzList.stream().filter(s -> s.getClazzId().equals(m.getClazzId().toString()) && s.getPaperNumber().equals(examStudentScore.getPaperNumber()) && s.getPaperType().equals(examStudentScore.getPaperType())).collect(Collectors.toList());
+                GradeBatchStudentClazz gradeBatchStudentClazz = gradeBatchStudentClazzs == null || gradeBatchStudentClazzs.isEmpty() ? null : gradeBatchStudentClazzs.get(0);
+                if(gradeBatchStudentClazz == null){
+                    throw ExceptionResultEnum.ERROR.exception(String.format("科目[%s],试卷编号[%s],班级[%s]未导入任课老师", examTask.getCourseName(), examTask.getPaperNumber(), m.getClazzName()));
+                }
+                examStudentScore.setTeacherName(gradeBatchStudentClazz.getTeacherName());
+                examStudentScore.setTeacherCode(gradeBatchStudentClazz.getTeacherNumber());
                 examStudentScore.setStatus(m.getStatus());
                 examStudentScore.setTotalScore(m.getTotalScore());
                 examStudentScore.setObjectiveScore(m.getObjectiveScore());
@@ -210,6 +215,7 @@ public class OpenApiServiceImpl implements OpenApiService {
                 return examStudentScore;
             }
         }).collect(Collectors.toList());
-        return examStudentScoreList.stream().filter(Objects::nonNull).collect(Collectors.toList());
+        List<ExamStudentScore> list = examStudentScoreList.stream().filter(Objects::nonNull).collect(Collectors.toList());
+        return list;
     }
 }

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

@@ -226,18 +226,37 @@
     <select id="listExamStudentByPaperNumberAndPaperType"
             resultType="com.qmth.distributed.print.business.bean.dto.ExamStudentCourseClassDto">
         SELECT
-            distinct edc.course_code courseCode,
-            edc.course_name courseName,
-            edc.paper_number paperNumber,
-            es.paper_type paperType,
-            es.clazz_id clazzId,
-            es.clazz_name clazzName
+            a.course_code courseCode,
+            a.course_name courseName,
+            a.paper_number paperNumber,
+            a.paper_type paperType,
+            a.clazz_id clazzId,
+            a.clazz_name clazzName,
+            b.teacher_name teacherName,
+            b.teacher_number teacherNumber
         FROM
-            exam_student es
-                JOIN
-            exam_detail_course edc ON es.exam_detail_course_id = edc.id
-        WHERE
-            edc.paper_number = #{paperNumber}
-          AND es.paper_type = #{paperType}
+            (SELECT DISTINCT
+                 edc.course_code,
+                 edc.course_name,
+                 edc.paper_number,
+                 es.paper_type,
+                 es.clazz_id,
+                 es.clazz_name
+             FROM
+                 exam_student es
+                     JOIN exam_detail_course edc ON es.exam_detail_course_id = edc.id
+             WHERE
+                 edc.paper_number = #{paperNumber}
+               AND es.paper_type = #{paperType}) a
+                LEFT JOIN
+            (SELECT
+                 *
+             FROM
+                 grade_batch_student_clazz
+             WHERE
+                 batch_id = #{batchId}) b ON a.course_code = b.course_code
+                AND a.paper_number = b.paper_number
+                AND a.paper_type = b.paper_type
+                AND a.clazz_id = b.clazz_id
     </select>
 </mapper>

+ 1 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/CallPrintOpenApiServiceImpl.java

@@ -171,7 +171,7 @@ public class CallPrintOpenApiServiceImpl implements CallPrintOpenApiService {
                 log.info("callResult:{}", JacksonUtil.parseJson(callResult));
                 Result result = JSON.parseObject(callResult, Result.class);
                 if (result.getData() == null){
-                    throw ExceptionResultEnum.ERROR.exception("未找到考生信息");
+                    throw ExceptionResultEnum.ERROR.exception(result.getMessage());
                 }
                 Object data = result.getData();
                 examStudentScoreCell = JSON.parseArray(JSON.toJSONString(data), ExamStudentScore.class);