瀏覽代碼

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

wangliang 3 年之前
父節點
當前提交
940b4e25b1

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

@@ -35,6 +35,12 @@ public interface ExamStudentMapper extends BaseMapper<ExamStudent> {
 
     void insertBatch(@Param("examStudents") List<ExamStudent> examStudents);
 
+    /**
+     * 根据班级id查询考生,班级可以是教学班或行政班(两表查)
+     * @param schoolId 学校id
+     * @param classId 班级id
+     * @return 考生查询结果
+     */
     List<ExamStudent> listExamStudentBySchoolIdAndClazzId(@Param("schoolId") Long schoolId, @Param("classId") String classId);
 
     SysOrg getSysOrgByBelongOrgId(@Param("studentCode") String studentCode, @Param("schoolId") Long schoolId);

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

@@ -1751,12 +1751,12 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     examStudentService.insertBatch(examStudents);
                 }
                 int studentCount = examStudents.size();
-                if (studentCount - examDetail.getTotalSubjects().intValue() != 0) {
+                if (studentCount - examDetail.getTotalSubjects() != 0) {
                     UpdateWrapper<ExamDetail> updateWrapper = new UpdateWrapper<>();
                     updateWrapper.lambda().set(ExamDetail::getTotalSubjects, studentCount).eq(ExamDetail::getId, examDetail.getId());
                     examDetailService.update(updateWrapper);
                 }
-                if (studentCount - examDetailCourse.getTotalSubjects().intValue() != 0) {
+                if (studentCount - examDetailCourse.getTotalSubjects() != 0) {
                     UpdateWrapper<ExamDetailCourse> updateWrapper = new UpdateWrapper<>();
                     updateWrapper.lambda().set(ExamDetailCourse::getTotalSubjects, studentCount).eq(ExamDetailCourse::getId, examDetailCourse.getId());
                     examDetailCourseService.update(updateWrapper);

+ 4 - 2
distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml

@@ -6,7 +6,7 @@
         SELECT
             eps.id,
             epp.school_id schoolId,
-            epp.semester_id semesterId,
+            bs.id semesterId,
             bs.name semesterName,
             epp.third_relate_id thirdRelateId,
             epp.third_relate_name thirdRelateName,
@@ -20,7 +20,9 @@
         FROM
             exam_print_plan epp
                 LEFT JOIN
-            basic_semester bs ON epp.semester_id = bs.name
+            basic_exam be on epp.exam_id = be.id
+                LEFT JOIN
+            basic_semester bs ON be.semester_id = bs.id
                 LEFT JOIN
             (SELECT DISTINCT
                 a.print_plan_id,

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

@@ -122,16 +122,44 @@
     <select id="listExamStudentBySchoolIdAndClazzId"
             resultType="com.qmth.distributed.print.business.entity.ExamStudent">
         SELECT
-            bs.student_name studentName,
-            bs.student_code studentCode,
-            bs.clazz_id clazzId,
-            bc.clazz_name clazzName
+            *
         FROM
-            basic_student bs
-                LEFT JOIN
-            basic_clazz bc ON bs.school_id = bc.school_id and bs.clazz_id = bc.id
-        where bs.school_id = #{schoolId}
-            and bs.clazz_id = #{classId}
+            (SELECT
+                 bs.school_id AS schoolId,
+                 bs.student_code AS studentCode,
+                 bs.student_name AS studentName,
+                 bs.clazz_id AS clazzId,
+                 bc.clazz_name AS clazzName
+             FROM
+                 basic_student bs
+                     INNER JOIN basic_clazz bc ON bs.clazz_id = bc.id
+            <where>
+                <if test="schoolId != null and schoolId != ''">
+                    AND bs.school_id = #{schoolId}
+                </if>
+                <if test="classId != null and classId != ''">
+                    AND bc.id = #{classId}
+                </if>
+            </where>
+        UNION
+            SELECT
+                ts.school_id AS schoolId,
+                ts.student_code AS studentCode,
+                ts.student_name AS studentName,
+                ts.teach_clazz_id AS clazzId,
+                tc.teach_clazz_name AS clazzName
+             FROM
+                 teach_student ts
+                    INNER JOIN teach_clazz tc ON ts.teach_clazz_id = tc.id
+            <where>
+                <if test="schoolId != null and schoolId != ''">
+                    AND ts.school_id = #{schoolId}
+                </if>
+                <if test="classId != null and classId != ''">
+                    AND tc.id = #{classId}
+                </if>
+            </where>
+                ) t0;
     </select>
     <select id="getSysOrgByBelongOrgId" resultType="com.qmth.teachcloud.common.entity.SysOrg">
         SELECT

+ 12 - 0
distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

@@ -7,7 +7,9 @@ import com.qmth.distributed.print.business.bean.dto.examObject.ExamObjectDto;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
 import com.qmth.distributed.print.business.entity.ExamCardDetail;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
+import com.qmth.distributed.print.business.entity.ExamStudent;
 import com.qmth.distributed.print.business.enums.MessageEnum;
+import com.qmth.distributed.print.business.mapper.ExamStudentMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
@@ -55,6 +57,8 @@ public class ServiceTest {
     private ExamCardDetailService examCardDetailService;
     @Resource
     private BasicPrintConfigService basicPrintConfigService;
+    @Resource
+    private ExamStudentMapper examStudentMapper;
 
 
     @Test
@@ -165,4 +169,12 @@ public class ServiceTest {
         System.out.println(var);
     }
 
+    @Test
+    public void findExamStudent(){
+        Long schoolId = 2L;
+        String clazzId = "225944699725156352";
+        List<ExamStudent> examStudentList = examStudentMapper.listExamStudentBySchoolIdAndClazzId(schoolId,clazzId);
+        System.out.println(JSON.toJSONString(examStudentList));
+    }
+
 }