Browse Source

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

dzx 11 months ago
parent
commit
ff4bb96e8b

+ 3 - 0
src/main/java/com/xjrsoft/module/student/dto/BaseStudentInfoPageDto.java

@@ -44,4 +44,7 @@ public class BaseStudentInfoPageDto extends PageInput {
      */
     @ApiModelProperty("班主任id")
     private Long teacherId;
+
+    @ApiModelProperty("最新收费区间")
+    private String beltcode;
 }

+ 28 - 0
src/main/java/com/xjrsoft/module/student/dto/PbVXsxxsfytbDto.java

@@ -0,0 +1,28 @@
+package com.xjrsoft.module.student.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+* @title: 学生荣誉
+* @Author dzx
+* @Date: 2023-12-05
+* @Version 1.0
+*/
+@Data
+public class PbVXsxxsfytbDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("学生身份")
+    private List<String> studentCodes;
+
+    @ApiModelProperty("最新区间编码")
+    private String beltcode;
+
+
+}

+ 5 - 0
src/main/java/com/xjrsoft/module/student/mapper/PbSemesterConfigMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.student.entity.PbSemesterConfig;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 
 /**
 * @title: 攀宝学期对应
@@ -14,4 +15,8 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface PbSemesterConfigMapper extends MPJBaseMapper<PbSemesterConfig> {
 
+    @Select("SELECT t1.beltcode FROM pb_semester_config t1 " +
+            "INNER JOIN base_semester t2 ON t1.base_semester_id = t2.id " +
+            "WHERE t2.delete_mark = 0 ORDER BY t2.start_date DESC LIMIT 1")
+    String getLastBeltcode();
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/student/mapper/PbVXsxxsfytbMapper.java

@@ -1,9 +1,11 @@
 package com.xjrsoft.module.student.mapper;
 
 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 org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 
@@ -16,4 +18,6 @@ import java.util.List;
 @Mapper
 public interface PbVXsxxsfytbMapper extends MPJBaseMapper<PbVXsxxsfytb> {
     List<BaseClassQfCountVo> getClassQfCount();
+
+    List<PbVXsxxsfytb> getList(PbVXsxxsfytbDto dto);
 }

+ 23 - 1
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentSchoolRollServiceImpl.java

@@ -12,15 +12,22 @@ import com.xjrsoft.module.base.mapper.BaseClassMapper;
 import com.xjrsoft.module.room.mapper.RoomBedMapper;
 import com.xjrsoft.module.room.vo.RoomBedInfoVo;
 import com.xjrsoft.module.student.dto.BaseStudentInfoPageDto;
+import com.xjrsoft.module.student.dto.PbVXsxxsfytbDto;
 import com.xjrsoft.module.student.dto.UpdateBaseStudentInfoDto;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+import com.xjrsoft.module.student.entity.PbVXsxxsfytb;
 import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
+import com.xjrsoft.module.student.mapper.PbSemesterConfigMapper;
+import com.xjrsoft.module.student.mapper.PbVXsxxsfytbMapper;
 import com.xjrsoft.module.student.service.IBaseStudentSchoolRollService;
 import com.xjrsoft.module.student.vo.*;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
 * @title: 助学金申请
@@ -35,6 +42,8 @@ public class BaseStudentSchoolRollServiceImpl extends MPJBaseServiceImpl<BaseStu
     private final BaseStudentSchoolRollMapper baseStudentSchoolRollMapper;
     private final RoomBedMapper roomBedMapper;
     private final BaseClassMapper baseClassMapper;
+    private final PbSemesterConfigMapper pbSemesterConfigMapper;
+    private final PbVXsxxsfytbMapper pbVXsxxsfytbMapper;
 
 
     @Override
@@ -55,7 +64,20 @@ public class BaseStudentSchoolRollServiceImpl extends MPJBaseServiceImpl<BaseStu
                 dto.setClassId(classList.get(0).getId());
             }
         }
-        return baseStudentSchoolRollMapper.getMobilePage(page, dto);
+
+        String lastBeltcode = pbSemesterConfigMapper.getLastBeltcode();
+        dto.setBeltcode(lastBeltcode);
+        Page<BaseStudentInfoPageVo> mobilePage = baseStudentSchoolRollMapper.getMobilePage(page, dto);
+        List<String> studentCodes = new ArrayList<>();
+        for (BaseStudentInfoPageVo record : mobilePage.getRecords()) {
+
+        }
+        PbVXsxxsfytbDto dto2 = new PbVXsxxsfytbDto();
+        dto2.setStudentCodes(studentCodes);
+        dto2.setBeltcode(lastBeltcode);
+        List<PbVXsxxsfytb> list = pbVXsxxsfytbMapper.getList(dto2);
+        Map<String, String> jfztMaps = new HashMap<>();
+        return mobilePage;
     }
 
     @Override

+ 6 - 11
src/main/resources/mapper/student/BaseStudentSchoolRollMapper.xml

@@ -31,9 +31,9 @@
             t8.name AS stduy_status,
             t13.name AS roll_modality,
             t11.name AS student_form,
-            MAX(CASE WHEN t10.feeitemcode LIKE '999010604%' AND LEFT(t10.beltcode, 4) = DATE_FORMAT(CURRENT_DATE, '%Y') THEN t10.jfzt ELSE '欠费' END) AS jxf,
-            MAX(CASE WHEN t10.feeitemcode = 103042766003001 AND LEFT(t10.beltcode, 4) = DATE_FORMAT(CURRENT_DATE, '%Y') THEN t10.jfzt ELSE '欠费' END) AS ssf,
-            MAX(CASE WHEN t10.feeitemcode LIKE '999010603%' AND LEFT(t10.beltcode, 4) = DATE_FORMAT(CURRENT_DATE, '%Y') THEN t10.jfzt ELSE '欠费' END) AS jcf,
+            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
@@ -106,9 +106,9 @@
                t3.stduy_status                                                                                               as stduyStatusCode,
                t3.roll_modality                                                                                              as rollModalityCode,
                 t12.name AS student_form,
-               MAX(CASE WHEN t14.feeitemcode LIKE '999010604%' AND LEFT(t14.beltcode, 4) = DATE_FORMAT(CURRENT_DATE, '%Y') THEN t14.jfzt ELSE '欠费' END) AS jxf,
-               MAX(CASE WHEN t14.feeitemcode = 103042766003001 AND LEFT(t14.beltcode, 4) = DATE_FORMAT(CURRENT_DATE, '%Y') THEN t14.jfzt ELSE '欠费' END) AS ssf,
-               MAX(CASE WHEN t14.feeitemcode LIKE '999010603%' AND LEFT(t14.beltcode, 4) = DATE_FORMAT(CURRENT_DATE, '%Y') THEN t14.jfzt ELSE '欠费' END) AS jcf,
+               IFNULL((SELECT jfzt FROM pb_v_xsxxsfytb WHERE Studentcode = t2.credential_number AND feeitemcode LIKE '999010604%' AND beltcode = '202401'),'欠费') AS jxf,
+               IFNULL((SELECT jfzt FROM pb_v_xsxxsfytb WHERE Studentcode = t2.credential_number AND feeitemcode = 103042766003001 AND beltcode = '202401'),'欠费') AS ssf,
+               IFNULL((SELECT jfzt FROM pb_v_xsxxsfytb WHERE Studentcode = t2.credential_number AND feeitemcode LIKE '999010603%' AND beltcode = '202401'),'欠费') AS jcf,
                CONCAT(t17.name, ' ', t16.room_name, ' ', t15.bed_number) AS bed_info
         FROM base_student t1
                  INNER JOIN xjr_user t2 ON t1.user_id = t2.id
@@ -122,15 +122,10 @@
                  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_xsxxsfytb t14 ON t14.Studentcode = t2.credential_type
                  left join room_bed t15 on t15.student_user_id = t1.user_id
                  left join room t16 on t16.id = t15.room_id
                  left join base_office_build t17 on t17.id = t16.office_build_id
         WHERE t2.id = #{id}
-        GROUP BY t2.id, t2.name, t2.mobile, t2.gender, t11.name, t1.student_id, t5.name, t5.mobile, t4.name,
-                 (SELECT mobile FROM base_student_family_member WHERE delete_mark = 0 AND user_id = t2.id AND is_guardian = 1),
-                 t8.name, t7.name, t9.name, t2.birth_date, t2.avatar, t6.name, t10.name, t3.archives_status, t3.stduy_status,
-                 t3.roll_modality, t3.archives_status, t3.stduy_status, t3.roll_modality, t12.name, CONCAT(t17.name, ' ', t16.room_name, ' ', t15.bed_number)
     </select>
     <update id="updateInfoByUserId" parameterType="com.xjrsoft.module.student.dto.UpdateBaseStudentInfoDto">
         UPDATE base_student_school_roll SET delete_mark = delete_mark

+ 11 - 0
src/main/resources/mapper/student/PbVXsxxsfytbMapper.xml

@@ -12,4 +12,15 @@
         ) as count
         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 * FROM pb_v_xsxxsfytb WHERE 1 = 1
+        <if test="dto.studentCodes != null and dto.studentCodes.size() > 0">
+            and Studentcode IN
+            <foreach item="studentcode" index="index" collection="dto.studentCodes" open="(" close=")" separator=",">
+                #{studentcode}
+            </foreach>
+        </if>
+        AND beltcode = #{dto.beltcode} and feeitemcode in (103042766003001, 999010604, 999010603)
+    </select>
 </mapper>