Browse Source

根据课表获取教师所教班级

dzx 6 months ago
parent
commit
852c73e0a7

+ 13 - 0
src/main/java/com/xjrsoft/module/base/vo/BaseClassPageVo.java

@@ -37,9 +37,22 @@ public class BaseClassPageVo {
     @ApiModelProperty("男生人数")
     private Integer maleCout;
 
+    @ApiModelProperty("男生住校数量")
+    private Integer maleStayCount;
+
+    @ApiModelProperty("男生走读数量")
+    private Integer maleNotStayCount;
+
+
     @ApiModelProperty("女生人数")
     private Integer femaleCount;
 
+    @ApiModelProperty("女生住校数量")
+    private Integer femaleStayCount;
+
+    @ApiModelProperty("女生走读数量")
+    private Integer femaleNotStayCount;
+
     @ApiModelProperty("住校数量")
     private Integer stayCount;
 

+ 4 - 0
src/main/java/com/xjrsoft/module/courseTable/mapper/CourseTableMapper.java

@@ -1,7 +1,9 @@
 package com.xjrsoft.module.courseTable.mapper;
 
 import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.schedule.dto.ClassOptionDto;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
+import com.xjrsoft.module.schedule.vo.ClassOptionVo;
 import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
 import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.vo.CourseDetailVo;
@@ -24,4 +26,6 @@ public interface CourseTableMapper extends MPJBaseMapper<CourseTable> {
     List<CourseDetailVo> getList(@Param("dto") CourseTableDto dto);
 
     List<CourseListVo> getAdjustList(@Param("dto") CourseTableAdjustDto dto);
+
+    List<ClassOptionVo> getClassListByTeacherId(@Param("dto") ClassOptionDto dto);
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/courseTable/service/ICourseTableService.java

@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.xjrsoft.module.courseTable.dto.ClassListDto;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
 import com.xjrsoft.module.courseTable.vo.ClassListVo;
+import com.xjrsoft.module.schedule.dto.ClassOptionDto;
 import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.dto.ScheduleWeekExportQueryDto;
 import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
+import com.xjrsoft.module.schedule.vo.ClassOptionVo;
 import com.xjrsoft.module.schedule.vo.CourseListVo;
 import com.xjrsoft.module.schedule.vo.CourseTableVo;
 
@@ -43,4 +45,6 @@ public interface ICourseTableService extends IService<CourseTable> {
     Boolean adjustCourse(WfCourseAdjust courseAdjust) throws Exception;
 
     ByteArrayOutputStream listScheduleWeekExportQuery(ScheduleWeekExportQueryDto dto);
+
+    List<ClassOptionVo> getClassListByTeacherId(ClassOptionDto dto);
 }

+ 7 - 0
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -42,12 +42,14 @@ import com.xjrsoft.module.courseTable.mapper.ClassTimeMapper;
 import com.xjrsoft.module.courseTable.mapper.CourseTableMapper;
 import com.xjrsoft.module.courseTable.service.ICourseTableService;
 import com.xjrsoft.module.courseTable.vo.ClassListVo;
+import com.xjrsoft.module.schedule.dto.ClassOptionDto;
 import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
 import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.dto.ScheduleWeekExportQueryDto;
 import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
 import com.xjrsoft.module.schedule.mapper.CourseTableBakMapper;
 import com.xjrsoft.module.schedule.util.ScheduleUtil;
+import com.xjrsoft.module.schedule.vo.ClassOptionVo;
 import com.xjrsoft.module.schedule.vo.CourseDetailVo;
 import com.xjrsoft.module.schedule.vo.CourseListVo;
 import com.xjrsoft.module.schedule.vo.CourseTableVo;
@@ -395,6 +397,11 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
         return outputStream;
     }
 
+    @Override
+    public List<ClassOptionVo> getClassListByTeacherId(ClassOptionDto dto) {
+        return this.baseMapper.getClassListByTeacherId(dto);
+    }
+
     private CourseTableVo getCourseTableVo(ScheduleWeekExportQueryDto dto) {
         CourseTableDto courseTableDto = new CourseTableDto();
         BeanUtils.copyProperties(dto, courseTableDto);

+ 13 - 0
src/main/java/com/xjrsoft/module/schedule/controller/ScheduleController.java

@@ -18,6 +18,7 @@ import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.base.service.IBaseSemesterService;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
 import com.xjrsoft.module.courseTable.service.ICourseTableService;
+import com.xjrsoft.module.schedule.dto.ClassOptionDto;
 import com.xjrsoft.module.schedule.dto.CourseTableAdjustDto;
 import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.dto.CourseTablePreCheckDto;
@@ -26,6 +27,7 @@ import com.xjrsoft.module.schedule.dto.ScheduleWeekExportQueryDto;
 import com.xjrsoft.module.schedule.entity.CourseReceiveMsg;
 import com.xjrsoft.module.schedule.service.ICourseReceiveMsgService;
 import com.xjrsoft.module.schedule.util.ScheduleUtil;
+import com.xjrsoft.module.schedule.vo.ClassOptionVo;
 import com.xjrsoft.module.schedule.vo.CourseListVo;
 import com.xjrsoft.module.schedule.vo.CourseTableVo;
 import com.xjrsoft.module.schedule.vo.ScheduleWeekVo;
@@ -343,4 +345,15 @@ public class ScheduleController {
 
         return RT.ok(result);
     }
+
+    @GetMapping(value = "/class-list")
+    @ApiOperation(value="根据课表获取教师所教班级")
+    @SaCheckPermission("room:detail")
+    public RT<List<ClassOptionVo>> classList(@Valid ClassOptionDto dto){
+        if(dto.getUserId() != null){
+            dto.setUserId(StpUtil.getLoginIdAsLong());
+        }
+        List<ClassOptionVo> result = courseTableService.getClassListByTeacherId(dto);
+        return RT.ok(result);
+    }
 }

+ 23 - 0
src/main/java/com/xjrsoft/module/schedule/dto/ClassOptionDto.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.schedule.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+* @title: 寝室
+* @Author dzx
+* @Date: 2023-12-27
+* @Version 1.0
+*/
+@Data
+public class ClassOptionDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("教师id")
+    private Long userId;
+
+}

+ 19 - 0
src/main/java/com/xjrsoft/module/schedule/vo/ClassOptionVo.java

@@ -0,0 +1,19 @@
+package com.xjrsoft.module.schedule.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author dzx
+ * @date 2024/1/29
+ */
+@Data
+public class ClassOptionVo {
+
+    @ApiModelProperty("班级id")
+    private Long id;
+
+    @ApiModelProperty("班级名称")
+    private String name;
+
+}

+ 26 - 1
src/main/resources/mapper/base/BaseClass.xml

@@ -11,6 +11,18 @@
         WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
         AND a1.gender = 'SB10001' AND a2.class_id = t1.id
         AND a2.archives_status = 'FB2901') AS male_cout,
+
+        (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
+        LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
+        WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
+        AND a2.class_id = t1.id AND a2.stduy_status = 'FB3002'
+        AND a2.archives_status = 'FB2901' AND a1.gender = 'SB10001') AS male_stay_count,
+        (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
+        LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
+        WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
+        AND a2.class_id = t1.id AND a2.stduy_status = 'FB3001'
+        AND a2.archives_status = 'FB2901' AND a1.gender = 'SB10001') AS male_not_stay_count,
+
         (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
         LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
         WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
@@ -20,12 +32,25 @@
         LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
         WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
         AND a2.class_id = t1.id AND a2.stduy_status = 'FB3002'
+        AND a2.archives_status = 'FB2901' AND a1.gender = 'SB10002') AS female_stay_count,
+        (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
+        LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
+        WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
+        AND a2.class_id = t1.id AND a2.stduy_status = 'FB3001'
+        AND a2.archives_status = 'FB2901' AND a1.gender = 'SB10002') AS female_not_stay_count,
+        <!--
+        (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
+        LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
+        WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
+        AND a2.class_id = t1.id AND a2.stduy_status = 'FB3002'
         AND a2.archives_status = 'FB2901') AS stay_count,
         (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
         LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
         WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
         AND a2.class_id = t1.id AND a2.stduy_status = 'FB3001'
-        AND a2.archives_status = 'FB2901') AS not_stay_count,t7.name AS org_name,
+        AND a2.archives_status = 'FB2901') AS not_stay_count,
+        -->
+        t7.name AS org_name,
         t8.name as major_set_name,t1.major_set_id FROM base_class t1
         LEFT JOIN xjr_user t2 ON t1.teacher_id = t2.id
         LEFT JOIN xjr_dictionary_detail t3 ON t3.code = t1.enroll_type AND t3.item_id = 2023000000000000027

+ 5 - 0
src/main/resources/mapper/courseTable/CourseTable.xml

@@ -58,4 +58,9 @@
             and t1.class_id = #{dto.classId}
         </if>
     </select>
+    <select id="getClassListByTeacherId" parameterType="com.xjrsoft.module.schedule.dto.ClassOptionDto" resultType="com.xjrsoft.module.schedule.vo.ClassOptionVo">
+        SELECT id,name FROM base_class WHERE delete_mark = 0 AND id IN (
+            SELECT DISTINCT class_id FROM course_table WHERE teacher_id = #{userId}
+        )
+    </select>
 </mapper>