Browse Source

Merge remote-tracking branch 'origin/dev' into dev

dzx 1 year ago
parent
commit
3ae5175eac

+ 14 - 0
src/main/java/com/xjrsoft/module/student/controller/ClassHonorsController.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.student.controller;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.xjrsoft.common.page.ConventPage;
@@ -11,6 +12,8 @@ import com.xjrsoft.module.student.dto.AddClassHonorsDto;
 import com.xjrsoft.module.student.dto.UpdateClassHonorsDto;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.alibaba.excel.EasyExcel;
+import com.xjrsoft.module.student.vo.BaseStudentAssessmentProjectTreeVo;
+import com.xjrsoft.module.student.vo.ClassHonorsSemesterClassTreeVo;
 import org.springframework.web.multipart.MultipartFile;
 import java.io.IOException;
 
@@ -43,6 +46,17 @@ public class ClassHonorsController {
 
     private final IClassHonorsService classHonorsService;
 
+    @GetMapping(value = "/semesterClassTree")
+    @ApiOperation(value="班级荣誉学期班级树")
+    @SaCheckPermission("classhonors:detail")
+    public RT<List<ClassHonorsSemesterClassTreeVo>> semesterClassTree(){
+        List<ClassHonorsSemesterClassTreeVo> list = classHonorsService.getSemesterClassTree();
+        if(ObjectUtil.isNull(list) || list.size() == 0){
+            return RT.error("找不到此数据!");
+        }
+        return RT.ok(list);
+    }
+
     @GetMapping(value = "/page")
     @ApiOperation(value="班级荣誉列表(分页)")
     @SaCheckPermission("classhonors:detail")

+ 10 - 0
src/main/java/com/xjrsoft/module/student/dto/ClassHonorsPageDto.java

@@ -37,4 +37,14 @@ public class ClassHonorsPageDto extends PageInput {
      */
     @ApiModelProperty("荣誉名称")
     private String name;
+    /**
+     * 学期ID(base_semester)
+     */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+     * 班级id
+     */
+    @ApiModelProperty("班级id")
+    private Long classId;
 }

+ 15 - 0
src/main/java/com/xjrsoft/module/student/mapper/ClassHonorsMapper.java

@@ -9,9 +9,12 @@ import com.xjrsoft.module.student.dto.ClassHonorsPageDto;
 import com.xjrsoft.module.student.entity.ClassHonors;
 import com.xjrsoft.module.student.vo.BaseStudentPunishmentInfoPageVo;
 import com.xjrsoft.module.student.vo.ClassHonorsPageVo;
+import com.xjrsoft.module.student.vo.ClassHonorsSemesterClassVo;
 import com.xjrsoft.module.student.vo.ClassHonorsVo;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
 * @title: 班级荣誉
 * @Author szs
@@ -35,4 +38,16 @@ public interface ClassHonorsMapper extends MPJBaseMapper<ClassHonors> {
      */
     ClassHonorsVo getInfoById(Long id);
 
+    /**
+     * 获取整个班级荣誉表出现的所有学期
+     * @return
+     */
+    List<ClassHonorsSemesterClassVo> getSemester();
+
+    /**
+     * 获取整个班级荣誉表出现的所有学期和其下的所有班级
+     * @return
+     */
+    List<ClassHonorsSemesterClassVo> getSemesterClass();
+
 }

+ 20 - 24
src/main/java/com/xjrsoft/module/student/service/impl/ClassHonorsServiceImpl.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.student.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -9,6 +10,7 @@ import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.utils.TreeUtil;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.service.IBaseSemesterService;
 import com.xjrsoft.module.student.dto.ClassHonorsPageDto;
@@ -70,32 +72,26 @@ public class ClassHonorsServiceImpl extends MPJBaseServiceImpl<ClassHonorsMapper
 
     @Override
     public List<ClassHonorsSemesterClassTreeVo> getSemesterClassTree() {
-        List<ClassHonorsSemesterClassTreeVo> treeVoList = new ArrayList<>();
+        List<ClassHonorsSemesterClassTreeVo> treeVoList = new ArrayList<ClassHonorsSemesterClassTreeVo>();
 
-        //获取所有的学期id
-        LambdaQueryWrapper<ClassHonors> queryWrapper1 = new LambdaQueryWrapper<>();
-        queryWrapper1
-                .select(ClassHonors::getBaseSemesterId)
-                .groupBy(ClassHonors::getBaseSemesterId)
-                .orderByDesc(ClassHonors::getId);
-        List<ClassHonors> classHonorsList = this.list(queryWrapper1);
-        List<Long> semesterIds = new ArrayList<>();
-        for (ClassHonors c : classHonorsList){
-            semesterIds.add(c.getBaseSemesterId());
-        }
+        //获取班级荣誉中出现的学期作为树的父级
+        classHonorsMapper.getSemester().forEach((node) -> {
+            treeVoList.add(new ClassHonorsSemesterClassTreeVo(){{
+                setId(node.getBaseSemesterId());
+                setName(node.getBaseSemesterIdCN());
+            }});
+        });
 
-        //获取所有的班级id
-        LambdaQueryWrapper<ClassHonors> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                .select(ClassHonors::getBaseSemesterId)
-                .groupBy(ClassHonors::getBaseSemesterId)
-                .orderByDesc(ClassHonors::getId);
-        List<ClassHonors> classHonorsList_all = this.list(queryWrapper);
-        List<Long> classIds = new ArrayList<>();
-        for (ClassHonors c : classHonorsList){
-            semesterIds.add(c.getBaseSemesterId());
-        }
+        //获取班级荣誉中出现的学期下的所有班级作为树的子级
+        classHonorsMapper.getSemesterClass().forEach((node) -> {
+            treeVoList.add(new ClassHonorsSemesterClassTreeVo(){{
+                setId(node.getClassId());
+                setName(node.getClassIdCN());
+                setParentId(node.getBaseSemesterId());
+            }});
+        });
 
-        return null;
+        List<ClassHonorsSemesterClassTreeVo> resultTreeVoList = TreeUtil.build(treeVoList);
+        return resultTreeVoList;
     }
 }

+ 2 - 5
src/main/java/com/xjrsoft/module/student/vo/ClassHonorsSemesterClassTreeVo.java

@@ -17,16 +17,13 @@ import java.util.List;
 public class ClassHonorsSemesterClassTreeVo implements ITreeNode<ClassHonorsSemesterClassTreeVo,Long>, Serializable {
 
     private static final long serialVersionUID = 1L;
-    /**
-     * 班级id
-     */
-    @ApiModelProperty("班级id")
+
     private Long id;
 
     @ApiModelProperty("名字")
     private String name;
 
-    @ApiModelProperty("父级id-学期id")
+    @ApiModelProperty("父级id")
     private Long parentId;
 
     private List<ClassHonorsSemesterClassTreeVo> children;

+ 37 - 0
src/main/java/com/xjrsoft/module/student/vo/ClassHonorsSemesterClassVo.java

@@ -0,0 +1,37 @@
+package com.xjrsoft.module.student.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+* @title: 班级荣誉分页列表学期班级出参
+* @Author szs
+* @Date: 2023-12-06
+* @Version 1.0
+*/
+@Data
+public class ClassHonorsSemesterClassVo {
+
+    /**
+     * 学期ID(base_semester)
+     */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
+    /**
+     * 学期ID中文(base_semester)
+     */
+    @ApiModelProperty("学期ID中文(base_semester)")
+    private String baseSemesterIdCN;
+    /**
+     * 班级id
+     */
+    @ApiModelProperty("班级id")
+    private Long classId;
+    /**
+     * 班级id中文
+     */
+    @ApiModelProperty("班级id中文")
+    private String classIdCN;
+}

+ 2 - 2
src/main/java/com/xjrsoft/module/student/vo/ClassHonorsVo.java

@@ -38,7 +38,7 @@ public class ClassHonorsVo {
      * 学期ID中文(base_semester)
      */
     @ApiModelProperty("学期ID中文(base_semester)")
-    private Long baseSemesterIdCN;
+    private String baseSemesterIdCN;
     /**
     * 班级id
     */
@@ -48,7 +48,7 @@ public class ClassHonorsVo {
      * 班级id中文
      */
     @ApiModelProperty("班级id中文")
-    private Long classIdCN;
+    private String classIdCN;
     /**
     * 荣誉级别(xjr_dictionary_item[honors_level])
     */

+ 31 - 0
src/main/resources/mapper/student/ClassHonorsMapper.xml

@@ -28,6 +28,12 @@
             <if test="dto.name != null and dto.name != ''">
                 and t.name like concat('%',#{dto.name},'%')
             </if>
+            <if test="dto.baseSemesterId != null and dto.baseSemesterId > 0">
+                and t.base_semester_id = #{dto.baseSemesterId}
+            </if>
+            <if test="dto.classId != null and dto.classId > 0">
+                and t.class_id = #{dto.classId}
+            </if>
         ORDER BY
             t.id DESC;
     </select>
@@ -47,4 +53,29 @@
         WHERE
             t.id = #{id} AND t.delete_mark = 0;
     </select>
+    <select id="getSemester"
+            resultType="com.xjrsoft.module.student.vo.ClassHonorsSemesterClassVo">
+        select
+            distinct
+            t.base_semester_id,
+            t1.name AS baseSemesterIdCN
+        from class_honors t
+                 left join base_semester t1 on t1.id = t.base_semester_id
+        where
+            t.delete_mark = 0;
+    </select>
+    <select id="getSemesterClass"
+            resultType="com.xjrsoft.module.student.vo.ClassHonorsSemesterClassVo">
+        select
+            distinct
+            t.base_semester_id,
+            t.class_id,
+            t1.name AS semesterName,
+            t2.name AS classIdCN
+        from class_honors t
+                 left join base_semester t1 on t1.id = t.base_semester_id
+                 left join base_class t2 on t2.id = t.class_id
+        where
+            t.delete_mark = 0;
+    </select>
 </mapper>