Browse Source

解决收费信息为欠费的问题

dzx 1 year ago
parent
commit
f3ad26a7a0

+ 3 - 1
src/main/java/com/xjrsoft/module/student/mapper/PbVXsxxsfytbMapper.java

@@ -4,7 +4,9 @@ import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.student.dto.PbVXsxxsfytbDto;
 import com.xjrsoft.module.student.entity.PbVXsxxsfytb;
 import com.xjrsoft.module.student.vo.BaseClassQfCountVo;
+import com.xjrsoft.module.student.vo.PbVXsxxsfytbVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
@@ -19,5 +21,5 @@ import java.util.List;
 public interface PbVXsxxsfytbMapper extends MPJBaseMapper<PbVXsxxsfytb> {
     List<BaseClassQfCountVo> getClassQfCount();
 
-    List<PbVXsxxsfytb> getList(PbVXsxxsfytbDto dto);
+    List<PbVXsxxsfytbVo> getList(@Param("dto") PbVXsxxsfytbDto dto);
 }

+ 10 - 2
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentSchoolRollServiceImpl.java

@@ -70,13 +70,21 @@ public class BaseStudentSchoolRollServiceImpl extends MPJBaseServiceImpl<BaseStu
         Page<BaseStudentInfoPageVo> mobilePage = baseStudentSchoolRollMapper.getMobilePage(page, dto);
         List<String> studentCodes = new ArrayList<>();
         for (BaseStudentInfoPageVo record : mobilePage.getRecords()) {
-
+            studentCodes.add(record.getStudentId());
         }
         PbVXsxxsfytbDto dto2 = new PbVXsxxsfytbDto();
         dto2.setStudentCodes(studentCodes);
         dto2.setBeltcode(lastBeltcode);
-        List<PbVXsxxsfytb> list = pbVXsxxsfytbMapper.getList(dto2);
+        List<PbVXsxxsfytbVo> list = pbVXsxxsfytbMapper.getList(dto2);
         Map<String, String> jfztMaps = new HashMap<>();
+        for (PbVXsxxsfytbVo pbVXsxxsfytb : list) {
+            jfztMaps.put(pbVXsxxsfytb.getStudentcode() + pbVXsxxsfytb.getFeeitemcode(), pbVXsxxsfytb.getJfzt().replaceAll("未交费", "欠费"));
+        }
+        for (BaseStudentInfoPageVo record : mobilePage.getRecords()) {
+            record.setSsf(jfztMaps.get(record.getStudentId() + "103042766003001") == null?"欠费":jfztMaps.get(record.getStudentId() + "103042766003001"));
+            record.setJxf(jfztMaps.get(record.getStudentId() + "999010604") == null?"欠费":jfztMaps.get(record.getStudentId() + "999010604"));
+            record.setJcf(jfztMaps.get(record.getStudentId() + "999010603") == null?"欠费":jfztMaps.get(record.getStudentId() + "999010603"));
+        }
         return mobilePage;
     }
 

+ 3 - 10
src/main/resources/mapper/student/BaseStudentSchoolRollMapper.xml

@@ -20,7 +20,7 @@
             t7.name AS gender_cn,
             t8.name AS stduyStatus,
             t2.gender,
-            t10.sex AS genderCn,
+            t10.name AS genderCn,
             t2.birth_date,
             t2.avatar,
             t6.name AS nation,
@@ -31,9 +31,6 @@
             t8.name AS stduy_status,
             t13.name AS roll_modality,
             t11.name AS student_form,
-            MAX(CASE WHEN t10.feeitemcode LIKE '999010604%' AND t10.beltcode = #{dto.beltcode} THEN t10.jfzt ELSE '欠费' END) AS jxf,
-            MAX(CASE WHEN t10.feeitemcode = 103042766003001 AND t10.beltcode = #{dto.beltcode} THEN t10.jfzt ELSE '欠费' END) AS ssf,
-            MAX(CASE WHEN t10.feeitemcode LIKE '999010603%' AND t10.beltcode = #{dto.beltcode} THEN t10.jfzt ELSE '欠费' END) AS jcf,
             CONCAT(t16.name, ' ', t15.room_name, ' ', t14.bed_number) AS bed_info
         FROM base_student t1
         INNER JOIN xjr_user t2 ON t1.user_id = t2.id
@@ -46,7 +43,7 @@
         LEFT JOIN xjr_dictionary_detail t11 ON t11.code = t3.student_type
         LEFT JOIN xjr_dictionary_detail t12 ON t12.code = t3.archives_status
         LEFT JOIN xjr_dictionary_detail t13 ON t13.code = t3.roll_modality
-        LEFT JOIN pb_v_xsxxsfytb t10 ON t10.Studentcode = t2.credential_type
+        LEFT JOIN xjr_dictionary_detail t10 ON t2.gender = t10.code
         LEFT JOIN room_bed t14 ON t14.student_user_id = t2.id
         LEFT JOIN room t15 ON t14.room_id = t15.id
         LEFT JOIN base_office_build t16 ON t15.office_build_id = t16.id
@@ -73,10 +70,6 @@
             OR t2.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,
-        t12.name, t13.name, t11.name,t3.stduy_status,t3.archives_status,t3.roll_modality,CONCAT(t16.name, ' ', t15.room_name, ' ', t14.bed_number)
     </select>
 
     <select id="getInfoById" resultType="com.xjrsoft.module.student.vo.BaseStudentInfoDetailVo">
@@ -94,7 +87,7 @@
                 WHERE delete_mark = 0
                   AND user_id = t2.id
                   AND is_guardian = 1)                                                                                       AS guardian_phone,
-               t8.name                                                                                                       AS archives_status,
+               t8.name AS archives_status,
                t7.name                                                                                                       AS stduy_status,
                t9.name                                                                                                       AS roll_modality,
                t2.birth_date,

+ 1 - 1
src/main/resources/mapper/student/PbVXsxxsfytbMapper.xml

@@ -13,7 +13,7 @@
         from base_class where delete_mark = 0
     </select>
 
-    <select id="getList" parameterType="com.xjrsoft.module.student.dto.PbVXsxxsfytbDto" resultType="com.xjrsoft.module.student.vo.BaseClassQfCountVo">
+    <select id="getList" parameterType="com.xjrsoft.module.student.dto.PbVXsxxsfytbDto" resultType="com.xjrsoft.module.student.vo.PbVXsxxsfytbVo">
         SELECT * FROM pb_v_xsxxsfytb WHERE 1 = 1
         <if test="dto.studentCodes != null and dto.studentCodes.size() > 0">
             and Studentcode IN