dzx 1 рік тому
батько
коміт
33b29285e0

+ 1 - 0
src/main/java/com/xjrsoft/module/courseTable/entity/CourseTable.java

@@ -81,4 +81,5 @@ public class CourseTable implements Serializable {
 
     @TableField(fill = FieldFill.UPDATE)
     private LocalDateTime modifyDate;
+
 }

+ 5 - 1
src/main/java/com/xjrsoft/module/courseTable/mapper/CourseTableMapper.java

@@ -2,8 +2,12 @@ package com.xjrsoft.module.courseTable.mapper;
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
+import com.xjrsoft.module.schedule.dto.CourseTableDto;
+import com.xjrsoft.module.schedule.vo.CourseDetailVo;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 课表 Mapper 接口
@@ -14,5 +18,5 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface CourseTableMapper extends MPJBaseMapper<CourseTable> {
-
+    List<CourseDetailVo> getList(CourseTableDto dto);
 }

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

@@ -4,6 +4,8 @@ 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.CourseTableDto;
+import com.xjrsoft.module.schedule.vo.CourseTableVo;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -22,4 +24,6 @@ public interface ICourseTableService extends IService<CourseTable> {
     Boolean wordImport(InputStream inputStream) throws IOException;
 
     List<ClassListVo> classList(ClassListDto dto);
+
+    CourseTableVo getList(CourseTableDto dto);
 }

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

@@ -5,7 +5,9 @@ import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -16,6 +18,7 @@ import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.config.TimetableConfig;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.base.mapper.BaseSemesterMapper;
 import com.xjrsoft.module.base.service.IBaseClassService;
 import com.xjrsoft.module.base.service.IBaseSemesterService;
 import com.xjrsoft.module.courseTable.dto.ClassListDto;
@@ -26,6 +29,9 @@ 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.CourseTableDto;
+import com.xjrsoft.module.schedule.vo.CourseDetailVo;
+import com.xjrsoft.module.schedule.vo.CourseTableVo;
 import com.xjrsoft.module.teacher.entity.BaseTeacher;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.teacher.service.ITeacherbaseManagerService;
@@ -69,6 +75,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
     private final TimetableConfig timetableConfig;
 
     private final ClassTimeMapper classTimeMapper;
+    private final BaseSemesterMapper baseSemesterMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -153,6 +160,38 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
         return classListVos;
     }
 
+    @Override
+    public CourseTableVo getList(CourseTableDto dto) {
+        List<CourseDetailVo> list = courseTableMapper.getList(dto);
+        List<ClassTime> classTimes = classTimeMapper.selectList(null);
+
+        CourseTableVo tableVo = new CourseTableVo();
+        tableVo.setCourseList(list);
+        tableVo.setClassHour(list.size());
+        tableVo.setClassTimeList(classTimes);
+
+        if(dto.getSemesterId() != null){
+            BaseSemester baseSemester = baseSemesterMapper.selectById(dto.getSemesterId());
+            tableVo.setSemesterName(baseSemester.getName());
+        }
+        if(!StrUtil.isEmpty(dto.getTeacherName()) || !StrUtil.isEmpty(dto.getJobNumber())){
+            List<XjrUser> userList = teacherbaseManagerService.list(
+                new QueryWrapper<XjrUser>().lambda()
+                .like(!StrUtil.isEmpty(dto.getTeacherName()), XjrUser::getName, dto.getTeacherName())
+                .like(!StrUtil.isEmpty(dto.getJobNumber()), XjrUser::getCode, dto.getJobNumber())
+            );
+            if(userList != null && !userList.isEmpty()){
+                tableVo.setTeacherName(userList.get(0).getName());
+            }
+        }
+        if(dto.getClassId() != null){
+            BaseClass baseClass = baseClassService.getById(dto.getClassId());
+            tableVo.setClassName(baseClass.getName());
+        }
+        //设置第几周
+        return tableVo;
+    }
+
     /**
      * 获取节次
      *

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

@@ -10,6 +10,8 @@ import com.xjrsoft.common.enums.EnabledMark;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.DatasourceUtil;
 import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.courseTable.service.ICourseTableService;
+import com.xjrsoft.module.schedule.dto.CourseTableDto;
 import com.xjrsoft.module.schedule.entity.CourseReceiveMsg;
 import com.xjrsoft.module.schedule.entity.JianyueData;
 import com.xjrsoft.module.schedule.service.ICourseReceiveMsgService;
@@ -46,6 +48,7 @@ public class ScheduleController {
 
     private final ICourseReceiveMsgService courseReceiveMsgService;
     private final IJianyueDataService jianyueDataService;
+    private final ICourseTableService courseTableService;
 
     @GetMapping(value = "/receive-msg")
     @ApiOperation(value="接收消息")
@@ -117,4 +120,12 @@ public class ScheduleController {
         return RT.ok(courseReceiveMsg);
     }
 
+    @GetMapping(value = "/course-table")
+    @ApiOperation(value="接收消息")
+    @SaCheckPermission("room:detail")
+    public RT<CourseReceiveMsg> courseInfo(CourseTableDto dto){
+        courseTableService.list();
+        return null;
+    }
+
 }

+ 39 - 0
src/main/java/com/xjrsoft/module/schedule/dto/CourseTableDto.java

@@ -0,0 +1,39 @@
+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 CourseTableDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("学期管理")
+    private Long semesterId;
+    @ApiModelProperty("课表类型(teacher:教师,class:班级)")
+    private String courseType;
+    @ApiModelProperty("周次")
+    private Integer week;
+
+    @ApiModelProperty("姓名(课表类型为teachar时使用)")
+    private String teacherName;
+    @ApiModelProperty("工号(课表类型为teachar时使用)")
+    private String jobNumber;
+
+    @ApiModelProperty("年级id(课表类型为class时使用)")
+    private Long gradeId;
+    @ApiModelProperty("班级id(课表类型为class时使用)")
+    private Long classId;
+    @ApiModelProperty("专业方向id(课表类型为class时使用)")
+    private Long majorSetId;
+
+}

+ 2 - 1
src/main/java/com/xjrsoft/module/schedule/util/DataUtil.java

@@ -524,7 +524,7 @@ public class DataUtil {
             String substring1 = number.substring(number.length() - 1);
             JsonObject jsonObject = infoMap.get(number);
             long id = System.currentTimeMillis();
-            String fullName = substring + "第" +substring1 + "节课";
+            String fullName = "第" +substring1 + "节课";
             String sql = "INSERT INTO class_time(id,time_period,number,full_name,short_name,create_date,summer_start_time"
                     + ",summer_end_time,winter_start_time,winter_end_time) select " + id + String.format("%04d", count) + ","
                     + jsonObject.get("tmePeriod").getAsInt() + ","
@@ -562,4 +562,5 @@ public class DataUtil {
         }
         db.executeBatch(sqls);
     }
+
 }

+ 30 - 0
src/main/java/com/xjrsoft/module/schedule/vo/CourseDetailVo.java

@@ -0,0 +1,30 @@
+package com.xjrsoft.module.schedule.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author dzx
+ * @date 2024/1/29
+ */
+@Data
+public class CourseDetailVo {
+
+    @ApiModelProperty("课程名称")
+    private String courseName;
+
+    @ApiModelProperty("教师名称(课表类型为teacher时使用)")
+    private String teacherName;
+
+    @ApiModelProperty("教室名称")
+    private Integer classroomName;
+
+    @ApiModelProperty("星期几(1-7)")
+    private Integer weeks;
+
+    @ApiModelProperty("时段(1=上午 2=下午 3=晚上)")
+    private String timePeriod;
+
+    @ApiModelProperty("节次")
+    private String timeNumber;
+}

+ 36 - 0
src/main/java/com/xjrsoft/module/schedule/vo/CourseTableVo.java

@@ -0,0 +1,36 @@
+package com.xjrsoft.module.schedule.vo;
+
+import com.xjrsoft.module.courseTable.entity.ClassTime;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author dzx
+ * @date 2024/1/29
+ */
+@Data
+public class CourseTableVo {
+
+    @ApiModelProperty("节次时间")
+    private List<ClassTime> classTimeList;
+
+    @ApiModelProperty("课程")
+    private List<CourseDetailVo> courseList;
+
+    @ApiModelProperty("总课时")
+    private Integer classHour;
+
+    @ApiModelProperty("学期名称")
+    private String semesterName;
+
+    @ApiModelProperty("教师名称(课表类型为teacher时使用)")
+    private String teacherName;
+
+    @ApiModelProperty("班级名称(课表类型为class时使用)")
+    private String className;
+
+    @ApiModelProperty("第几周")
+    private String week;
+}

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

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.courseTable.mapper.CourseTableMapper">
+    <select id="getList" parameterType="com.xjrsoft.module.schedule.dto.CourseTableDto" resultType="com.xjrsoft.module.schedule.vo.CourseDetailVo">
+        SELECT t1.course_name, t2.name AS teacher_name,CONCAT(t4.name,t3.name) AS classroom_name,t1.weeks,t1.time_period,t1.time_number FROM course_table t1
+        LEFT JOIN xjr_user t2 ON t1.teacher_id = t2.id
+        LEFT JOIN base_classroom t3 ON t1.site_id = t3.id
+        LEFT JOIN base_office_build t4 ON t3.office_build_id = t4.id
+        LEFT JOIN base_class t5 ON t1.class_id = t5.id
+        LEFT JOIN base_grade t6 ON t5.grade_id = t6.id
+        where 1 = 1
+        <if test="dto.semesterId != null">
+            and t1.base_semester_id = #{dto.semesterId}
+        </if>
+        <if test="dto.courseType != null and dto.courseType != '' and dto.courseType == 'teacher'">
+            <if test="dto.teacherName != null and dto.teacherName != ''">
+                and t2.name like concat('%', #{dto.teacherName},'%')
+            </if>
+            <if test="dto.jobNumber != null and dto.jobNumber != ''">
+                and t2.code like concat('%', #{dto.jobNumber},'%')
+            </if>
+        </if>
+
+        <if test="dto.courseType != null and dto.courseType != '' and dto.courseType == 'class'">
+            <if test="dto.gradeId != null">
+                and t6.id = #{dto.gradeId}
+            </if>
+            <if test="dto.classId != null">
+                and t5.id = #{dto.classId}
+            </if>
+            <if test="dto.majorSetId != null">
+                and t5.major_set_id = #{dto.majorSetId}
+            </if>
+        </if>
+    </select>
+
+</mapper>

+ 16 - 1
src/main/resources/sqlScript/20240125_sql.sql

@@ -34,7 +34,7 @@ ALTER TABLE `base_student_assessment_inspection`
     ADD COLUMN `dept_id` BIGINT NULL   COMMENT '专业部id' AFTER `student_user_ids`;
 
 ALTER TABLE `base_student_assessment_inspection`
-    ADD COLUMN `assessment_type` VARCHAR(50) NULL   COMMENT '考核对象(class:班级 personal:个人)' AFTER `dept_id`;
+    ADD COLUMN `assessment_type` VARCHAR(50) NULL   COMMENT '考核对象(class:班级 personal:个人)';
 
 
 -- -------------------------------
@@ -113,6 +113,21 @@ DELIMITER ;
 CALL createCom;
 DROP PROCEDURE createCom;
 
+--
+DROP PROCEDURE IF EXISTS createCom;
+DELIMITER $$
+CREATE
+    PROCEDURE createCom()
+BEGIN
+    IF NOT EXISTS(SELECT 1 FROM information_schema.columns  WHERE table_name='base_student_assessment_inspection' AND COLUMN_NAME = 'teacher_id') THEN
+ALTER TABLE `base_student_assessment_inspection`
+    ADD COLUMN `teacher_id` BIGINT NULL   COMMENT '班主任id';
+END IF;
+END$$
+DELIMITER ;
+CALL createCom;
+DROP PROCEDURE createCom;
+
 
 
 -- ------------------------------------------------------------------毕业--------------------------------------------------------------------