brealinxx hace 1 año
padre
commit
f04c504fc6

+ 12 - 0
src/main/java/com/xjrsoft/module/student/vo/BaseStudentInfoDetailVo.java

@@ -108,4 +108,16 @@ public class BaseStudentInfoDetailVo {
      */
     @ApiModelProperty("性别中文")
     private String genderCn;
+
+    @ApiModelProperty("军训费")
+    private String jxf;
+
+    @ApiModelProperty("教材费")
+    private String jcf;
+
+    @ApiModelProperty("宿舍费")
+    private String ssf;
+
+    @ApiModelProperty("学生类别")
+    private String studentForm;
 }

+ 54 - 42
src/main/resources/mapper/student/BaseStudentSchoolRollMapper.xml

@@ -4,45 +4,36 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper">
     <select id="getMobilePage" parameterType="com.xjrsoft.module.student.dto.BaseStudentInfoPageDto" resultType="com.xjrsoft.module.student.vo.BaseStudentInfoPageVo">
-        SELECT t2.id,
-            t2.name AS student_name,
-            t1.student_id,
-            t2.mobile AS phone,
-            t5.mobile AS teacher_phone,
-            t5.name AS teacher_name,
-            t4.name AS class_name,
-            (SELECT mobile
-            FROM base_student_family_member
-            WHERE delete_mark = 0
-            AND user_id = t2.id
-            AND is_guardian = 1) AS guardian_phone,
-            t7.name AS gender_cn,
-            t8.name AS stduyStatus,
-            t2.gender,
-            t11.name AS genderCn,
-            t2.birth_date,
-            t2.avatar,
-            t6.name AS nation,
---             t10.name AS major_set_name,
-            t3.archives_status AS archives_status,
-            t3.stduy_status AS stduy_status,
-            t3.roll_modality AS roll_modality,
-            t3.archives_status AS archivesStatusCode,
-            t3.stduy_status AS stduyStatusCode,
-            t3.roll_modality AS rollModalityCode,
-            t11.name AS student_form,
-        CASE
-            WHEN t10.feeitemcode LIKE '999010604%' THEN t10.jfzt
-            ELSE NULL
-        END AS jxf,
-        CASE
-            WHEN t10.feeitemcode LIKE '103042766003001%' THEN t10.jfzt
-            ELSE NULL
-        END AS ssf,
-        CASE
-            WHEN t10.feeitemcode LIKE '999010603%' THEN t10.jfzt
-            ELSE NULL
-        END AS jcf
+        SELECT
+        t2.id,
+        t2.name AS student_name,
+        t1.student_id,
+        t2.mobile AS phone,
+        t5.mobile AS teacher_phone,
+        t5.name AS teacher_name,
+        t4.name AS class_name,
+        (SELECT mobile
+        FROM base_student_family_member
+        WHERE delete_mark = 0
+        AND user_id = t2.id
+        AND is_guardian = 1) AS guardian_phone,
+        t7.name AS gender_cn,
+        t8.name AS stduyStatus,
+        t2.gender,
+        t10.sex AS genderCn,
+        t2.birth_date,
+        t2.avatar,
+        t6.name AS nation,
+        t3.archives_status AS archives_status,
+        t3.stduy_status AS stduy_status,
+        t3.roll_modality AS roll_modality,
+        t3.archives_status AS archivesStatusCode,
+        t3.stduy_status AS stduyStatusCode,
+        t3.roll_modality AS rollModalityCode,
+        t11.name AS student_form,
+        MAX(CASE WHEN t10.feeitemcode LIKE '999010604%' THEN t10.jfzt ELSE NULL END) AS jxf,
+        MAX(CASE WHEN t10.feeitemcode = 103042766003001 AND t10.beltcode LIKE '%2024%' THEN t10.jfzt ELSE NULL END) AS ssf,
+        MAX(CASE WHEN t10.feeitemcode LIKE '999010603%' THEN t10.jfzt ELSE NULL END) AS jcf
         FROM base_student t1
         INNER JOIN xjr_user t2 ON t1.user_id = t2.id
         INNER JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
@@ -53,7 +44,7 @@
         LEFT JOIN xjr_dictionary_detail t8 ON t8.code = t3.stduy_status
         LEFT JOIN xjr_dictionary_detail t11 ON t11.code = t3.student_type
         LEFT JOIN pb_v_xssfdetail t9 ON t9.personalid = t1.student_id
-        LEFT JOIN pb_v_xsxxsfytb t10 ON t10.feeitemcode = t9.feeitemcode
+        LEFT JOIN pb_v_xsxxsfytb t10 ON t10.Studentcode = t9.personalid
         WHERE t2.delete_mark = 0
         AND t1.delete_mark = 0
         AND t3.archives_status = 'FB2901'
@@ -61,7 +52,7 @@
             AND t4.grade_id = #{dto.gradeId}
         </if>
         <if test="dto.majorSetId != null">
-            AND t3.major_set_id = #{dto.majorSetId}
+            AND t3.major_set_id = #{dto.majorSetId }
         </if>
         <if test="dto.classId != null">
             AND t4.id = #{dto.classId}
@@ -78,6 +69,11 @@
             OR t6.mobile LIKE concat('%', #{dto.keyWord}, '%')
             )
         </if>
+        GROUP BY t2.id, t2.name, t1.student_id, t2.mobile, t5.mobile, t5.name, t4.name,
+        (SELECT mobile FROM base_student_family_member WHERE delete_mark = 0 AND user_id = t2.id AND is_guardian = 1),
+        t7.name, t8.name, t2.gender, t10.sex, t2.birth_date, t2.avatar, t6.name,
+        t3.archives_status, t3.stduy_status, t3.roll_modality,
+        t3.archives_status, t3.stduy_status, t3.roll_modality, t11.name
     </select>
     <select id="getInfoById" resultType="com.xjrsoft.module.student.vo.BaseStudentInfoDetailVo">
         SELECT t2.id,
@@ -104,7 +100,20 @@
                t10.name                                                                                                      AS major_set_name,
                t3.archives_status                                                                                            as archivesStatusCode,
                t3.stduy_status                                                                                               as stduyStatusCode,
-               t3.roll_modality                                                                                              as rollModalityCode
+               t3.roll_modality                                                                                              as rollModalityCode,
+                t12.name AS student_form,
+                CASE
+                    WHEN t14.feeitemcode LIKE '999010604%' THEN t14.jfzt
+                    ELSE NULL
+                    END AS jxf,
+               CASE
+                   WHEN t14.feeitemcode LIKE '103042766003001%' THEN t14.jfzt
+                   ELSE NULL
+                   END AS ssf,
+               CASE
+                   WHEN t14.feeitemcode LIKE '999010603%' THEN t14.jfzt
+                   ELSE NULL
+                   END AS jcf
         FROM base_student t1
                  INNER JOIN xjr_user t2 ON t1.user_id = t2.id
                  INNER JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
@@ -116,6 +125,9 @@
                  LEFT JOIN xjr_dictionary_detail t9 ON t9.code = t3.roll_modality AND t9.item_id = 1762024751192084482
                  LEFT JOIN base_major_set t10 ON t3.major_set_id = t10.id
                  LEFT JOIN xjr_dictionary_detail t11 ON t11.code = t2.gender
+                 LEFT JOIN xjr_dictionary_detail t12 ON t12.code = t3.student_type
+                 LEFT JOIN pb_v_xssfdetail t13 ON t13.personalid = t1.student_id
+                 LEFT JOIN pb_v_xsxxsfytb t14 ON t14.Studentcode = t13.personalid
         WHERE t2.id = #{id}
     </select>
     <update id="updateInfoByUserId" parameterType="com.xjrsoft.module.student.dto.UpdateBaseStudentInfoDto">