dzx 1 год назад
Родитель
Сommit
8e48af7578
23 измененных файлов с 380 добавлено и 39 удалено
  1. 27 27
      src/main/java/com/xjrsoft/module/base/controller/BaseClassCourseController.java
  2. 2 0
      src/main/java/com/xjrsoft/module/base/mapper/BaseClassCourseMapper.java
  3. 2 0
      src/main/java/com/xjrsoft/module/base/service/IBaseClassCourseService.java
  4. 5 0
      src/main/java/com/xjrsoft/module/base/service/impl/BaseClassCourseServiceImpl.java
  5. 83 3
      src/main/java/com/xjrsoft/module/courseTable/controller/ClassTimeController.java
  6. 47 0
      src/main/java/com/xjrsoft/module/courseTable/dto/AddClassTimeDto.java
  7. 31 0
      src/main/java/com/xjrsoft/module/courseTable/dto/ClassTimePageDto.java
  8. 23 0
      src/main/java/com/xjrsoft/module/courseTable/dto/UpdateClassTimeDto.java
  9. 8 0
      src/main/java/com/xjrsoft/module/courseTable/entity/ClassTime.java
  10. 49 0
      src/main/java/com/xjrsoft/module/courseTable/vo/ClassTimePageVo.java
  11. 55 0
      src/main/java/com/xjrsoft/module/courseTable/vo/ClassTimeVo.java
  12. 1 0
      src/main/java/com/xjrsoft/module/job/WhitelistTask.java
  13. 3 3
      src/main/java/com/xjrsoft/module/oa/dto/AddNewsDto.java
  14. 4 0
      src/main/java/com/xjrsoft/module/oa/dto/AddProclamationDto.java
  15. 2 2
      src/main/java/com/xjrsoft/module/oa/service/impl/NewsServiceImpl.java
  16. 4 0
      src/main/java/com/xjrsoft/module/oa/vo/ProclamationVo.java
  17. 12 0
      src/main/java/com/xjrsoft/module/schedule/controller/ScheduleController.java
  18. 5 1
      src/main/java/com/xjrsoft/module/student/controller/BaseNewStudentController.java
  19. 3 0
      src/main/java/com/xjrsoft/module/student/dto/StudentReportRecordStatisticsDto.java
  20. 1 1
      src/main/java/com/xjrsoft/module/student/service/impl/StudentManagerServiceImpl.java
  21. 7 1
      src/main/resources/mapper/base/BaseClassCourse.xml
  22. 3 1
      src/main/resources/mapper/student/BaseNewStudentMapper.xml
  23. 3 0
      src/main/resources/mapper/student/StudentReportRecordMapper.xml

+ 27 - 27
src/main/java/com/xjrsoft/module/base/controller/BaseClassCourseController.java

@@ -239,39 +239,38 @@ public class BaseClassCourseController {
                 continue;
             }
             if(vo.getTextbookName() != null){
-                String[] textbookNames = vo.getTextbookName().split(" ");
-                for (String textbookName : textbookNames) {
-                    try {
-                        Long classId = classMap.get(vo.getClassName());
-                        Long courseId = courseSubjectMap.get(vo.getCourseName());
-                        Long textbookId = textbookMap.get(textbookName);
-                        Long baseSemesterId = semesterMap.get(vo.getSemester());
-
-                        if (baseClassCourseService.checkExits(classId, courseId, textbookId)) {
-                            duplicateLogs.add(String.format("[输入的信息重复添加] 班级: %s, 课程: %s, 教材: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
-                            continue;
-                        }
-
-                        if (classId != null && courseId != null && textbookId != null && baseSemesterId != null) {
-                            BaseClassCourse baseClassCourse = new BaseClassCourse();
-                            baseClassCourse.setClassId(classId);
-                            baseClassCourse.setCourseId(courseId);
-                            baseClassCourse.setTextbookId(textbookId);
-                            baseClassCourse.setCreateDate(new Date());
-                            baseClassCourse.setDeleteMark(0);
-                            baseClassCourse.setBaseSemesterId(baseSemesterId);
-                            baseClassCourses.add(baseClassCourse);
-                        }
-                    } catch (NumberFormatException e) {
-                        errorLogs.add(String.format("[无法解析输入的信息] 班级: %s, 班级: %s, 教材: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
-                    } catch (Exception e) {
-                        errorLogs.add(String.format("[意外错误(检查输入的名称是否正确且存在,输入错误可能返回 null)] 班级: %s, 课程: %s, 教材: %s - 错误信息:%s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName(), e.getMessage()));
+                try {
+                    Long classId = classMap.get(vo.getClassName());
+                    Long courseId = courseSubjectMap.get(vo.getCourseName());
+                    Long textbookId = textbookMap.get(vo.getTextbookName());
+                    Long baseSemesterId = semesterMap.get(vo.getSemester());
+
+                    if (baseClassCourseService.checkExits(classId, courseId, textbookId)) {
+                        continue;
                     }
+
+                    if (classId != null && courseId != null && textbookId != null && baseSemesterId != null) {
+                        BaseClassCourse baseClassCourse = new BaseClassCourse();
+                        baseClassCourse.setClassId(classId);
+                        baseClassCourse.setCourseId(courseId);
+                        baseClassCourse.setTextbookId(textbookId);
+                        baseClassCourse.setCreateDate(new Date());
+                        baseClassCourse.setDeleteMark(0);
+                        baseClassCourse.setBaseSemesterId(baseSemesterId);
+                        baseClassCourses.add(baseClassCourse);
+                    }
+                } catch (NumberFormatException e) {
+                    errorLogs.add(String.format("[无法解析输入的信息] 班级: %s, 班级: %s, 教材: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
+                } catch (Exception e) {
+                    errorLogs.add(String.format("[意外错误(检查输入的名称是否正确且存在,输入错误可能返回 null)] 班级: %s, 课程: %s, 教材: %s - 错误信息:%s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName(), e.getMessage()));
                 }
             }else{
                 Long classId = classMap.get(vo.getClassName());
                 Long courseId = courseSubjectMap.get(vo.getCourseName());
                 Long baseSemesterId = semesterMap.get(vo.getSemester());
+                if (baseClassCourseService.checkExitsWithoutTextbook(classId, courseId)) {
+                    continue;
+                }
 
                 BaseClassCourse baseClassCourse = new BaseClassCourse();
                 baseClassCourse.setClassId(classId);
@@ -279,6 +278,7 @@ public class BaseClassCourseController {
                 baseClassCourse.setCreateDate(new Date());
                 baseClassCourse.setDeleteMark(0);
                 baseClassCourse.setBaseSemesterId(baseSemesterId);
+                baseClassCourse.setCreateDate(new Date());
                 baseClassCourses.add(baseClassCourse);
             }
 

+ 2 - 0
src/main/java/com/xjrsoft/module/base/mapper/BaseClassCourseMapper.java

@@ -39,4 +39,6 @@ public interface BaseClassCourseMapper extends MPJBaseMapper<BaseClassCourse> {
     Long getBookIdByName(String name);
     Long getBaseSemesterIdByName(String name);
     boolean checkExits(Long classId,Long courseId,Long textbookId);
+
+    boolean checkExitsWithoutTextbook(Long classId, Long courseId);
 }

+ 2 - 0
src/main/java/com/xjrsoft/module/base/service/IBaseClassCourseService.java

@@ -47,4 +47,6 @@ public interface IBaseClassCourseService extends MPJBaseService<BaseClassCourse>
     Long GetBaseSemesterIdByName(String name);
 
     boolean checkExits(Long classId, Long courseId, Long textbookId);
+
+    boolean checkExitsWithoutTextbook(Long classId, Long courseId);
 }

+ 5 - 0
src/main/java/com/xjrsoft/module/base/service/impl/BaseClassCourseServiceImpl.java

@@ -198,4 +198,9 @@ public class BaseClassCourseServiceImpl extends MPJBaseServiceImpl<BaseClassCour
     public boolean checkExits(Long classId,Long courseId,Long textbookId){
         return baseClassCourseMapper.checkExits(classId, courseId, textbookId);
     }
+
+    @Override
+    public boolean checkExitsWithoutTextbook(Long classId, Long courseId) {
+        return this.baseMapper.checkExitsWithoutTextbook(classId, courseId);
+    }
 }

+ 83 - 3
src/main/java/com/xjrsoft/module/courseTable/controller/ClassTimeController.java

@@ -1,7 +1,35 @@
 package com.xjrsoft.module.courseTable.controller;
 
-import org.springframework.stereotype.Controller;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.module.courseTable.dto.AddClassTimeDto;
+import com.xjrsoft.module.courseTable.dto.ClassTimePageDto;
+import com.xjrsoft.module.courseTable.dto.UpdateClassTimeDto;
+import com.xjrsoft.module.courseTable.entity.ClassTime;
+import com.xjrsoft.module.courseTable.service.IClassTimeService;
+import com.xjrsoft.module.courseTable.vo.ClassTimePageVo;
+import com.xjrsoft.module.courseTable.vo.ClassTimeVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * <p>
@@ -11,8 +39,60 @@ import org.springframework.web.bind.annotation.RequestMapping;
  * @author baomidou
  * @since 2023-09-02 02:19:56
  */
-@Controller
-@RequestMapping("/courseTable/classTime")
+@RequestMapping("/classtime")
+@Api(value = "/classtime", tags = "上课时间")
+@AllArgsConstructor
+@RestController
 public class ClassTimeController {
+    private final IClassTimeService classTimeService;
+    @GetMapping(value = "/page")
+    @ApiOperation(value="上课时间列表(分页)")
+    @SaCheckPermission("basenewstudent:detail")
+    public RT<PageOutput<ClassTimePageVo>> page(@Valid ClassTimePageDto dto){
+        LambdaQueryWrapper<ClassTime> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper
+                .orderByDesc(ClassTime::getId)
+                .select(ClassTime.class,x -> VoToColumnUtil.fieldsToColumns(ClassTime.class).contains(x.getProperty()));
+        IPage<ClassTime> page = classTimeService.page(ConventPage.getPage(dto), queryWrapper);
+        PageOutput<ClassTimePageVo> pageOutput = ConventPage.getPageOutput(page, ClassTimePageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询上课时间")
+    @SaCheckPermission("basemajorcategor:detail")
+    public RT<ClassTimeVo> info(@RequestParam Long id){
+        ClassTime ClassTime = classTimeService.getById(id);
+        if (ClassTime == null) {
+            return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(ClassTime, ClassTimeVo.class));
+    }
+
+    @PostMapping
+    @ApiOperation(value = "新增上课时间")
+    @SaCheckPermission("basemajorcategor:add")
+    public RT<Boolean> add(@Valid @RequestBody AddClassTimeDto dto){
+        ClassTime classtime = BeanUtil.toBean(dto, ClassTime.class);
+        classtime.setCreateDate(LocalDateTime.now());
+        boolean isSuccess = classTimeService.save(classtime);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改上课时间")
+    @SaCheckPermission("basemajorcategor:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateClassTimeDto dto){
+
+        ClassTime classtime = BeanUtil.toBean(dto, ClassTime.class);
+        classtime.setModifyDate(LocalDateTime.now());
+        return RT.ok(classTimeService.updateById(classtime));
+    }
 
+    @DeleteMapping
+    @ApiOperation(value = "删除上课时间")
+    @SaCheckPermission("basemajorcategor:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(classTimeService.removeBatchByIds(ids));
+    }
 }

+ 47 - 0
src/main/java/com/xjrsoft/module/courseTable/dto/AddClassTimeDto.java

@@ -0,0 +1,47 @@
+package com.xjrsoft.module.courseTable.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+* @title: 第二课堂
+* @Author dzx
+* @Date: 2024-07-29
+* @Version 1.0
+*/
+@Data
+public class AddClassTimeDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("时段(1=上午 2=下午 3=晚上)")
+    private Integer timePeriod;
+
+    @ApiModelProperty("节次")
+    private Integer number;
+
+    @ApiModelProperty("全称")
+    private String fullName;
+
+    @ApiModelProperty("简称")
+    private String shortName;
+
+    @ApiModelProperty("夏天开始时间")
+    private String summerStartTime;
+
+    @ApiModelProperty("夏天结束时间")
+    private String summerEndTime;
+
+    @ApiModelProperty("冬天开始时间")
+    private String winterStartTime;
+
+    @ApiModelProperty("冬天结束时间")
+    private String winterEndTime;
+
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 31 - 0
src/main/java/com/xjrsoft/module/courseTable/dto/ClassTimePageDto.java

@@ -0,0 +1,31 @@
+package com.xjrsoft.module.courseTable.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 第二课堂分页查询入参
+* @Author dzx
+* @Date: 2024-07-29
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ClassTimePageDto extends PageInput {
+
+        @ApiModelProperty("学期id")
+        private Long semesterId;
+
+        @ApiModelProperty("课程名称")
+        private String name;
+
+        @ApiModelProperty("状态")
+        private Integer status;
+
+        @ApiModelProperty("用户id")
+        private Long userId;
+
+}

+ 23 - 0
src/main/java/com/xjrsoft/module/courseTable/dto/UpdateClassTimeDto.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.courseTable.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+* @title: 第二课堂
+* @Author dzx
+* @Date: 2024-07-29
+* @Version 1.0
+*/
+@Data
+public class UpdateClassTimeDto extends AddClassTimeDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+}

+ 8 - 0
src/main/java/com/xjrsoft/module/courseTable/entity/ClassTime.java

@@ -60,4 +60,12 @@ public class ClassTime implements Serializable {
 
     @TableField(fill = FieldFill.UPDATE)
     private LocalDateTime modifyDate;
+
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
 }

+ 49 - 0
src/main/java/com/xjrsoft/module/courseTable/vo/ClassTimePageVo.java

@@ -0,0 +1,49 @@
+package com.xjrsoft.module.courseTable.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 第二课堂分页列表出参
+* @Author dzx
+* @Date: 2024-07-29
+* @Version 1.0
+*/
+@Data
+public class ClassTimePageVo {
+
+    @ApiModelProperty("主键编号")
+    private Long id;
+
+    @ApiModelProperty("时段(1=上午 2=下午 3=晚上)")
+    private Integer timePeriod;
+
+    @ApiModelProperty("节次")
+    private Integer number;
+
+    @ApiModelProperty("全称")
+    private String fullName;
+
+    @ApiModelProperty("简称")
+    private String shortName;
+
+    @ApiModelProperty("夏天开始时间")
+    private String summerStartTime;
+
+    @ApiModelProperty("夏天结束时间")
+    private String summerEndTime;
+
+    @ApiModelProperty("冬天开始时间")
+    private String winterStartTime;
+
+    @ApiModelProperty("冬天结束时间")
+    private String winterEndTime;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+}

+ 55 - 0
src/main/java/com/xjrsoft/module/courseTable/vo/ClassTimeVo.java

@@ -0,0 +1,55 @@
+package com.xjrsoft.module.courseTable.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 第二课堂分页列表出参
+* @Author dzx
+* @Date: 2024-07-29
+* @Version 1.0
+*/
+@Data
+public class ClassTimeVo {
+
+    @ApiModelProperty("主键编号")
+    private Long id;
+
+    @ApiModelProperty("时段(1=上午 2=下午 3=晚上)")
+    private Integer timePeriod;
+
+    @ApiModelProperty("节次")
+    private Integer number;
+
+    @ApiModelProperty("全称")
+    private String fullName;
+
+    @ApiModelProperty("简称")
+    private String shortName;
+
+    @ApiModelProperty("夏天开始时间")
+    private String summerStartTime;
+
+    @ApiModelProperty("夏天结束时间")
+    private String summerEndTime;
+
+    @ApiModelProperty("冬天开始时间")
+    private String winterStartTime;
+
+    @ApiModelProperty("冬天结束时间")
+    private String winterEndTime;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createDate;
+
+    @ApiModelProperty("修改时间")
+    private LocalDateTime modifyDate;
+
+}

+ 1 - 0
src/main/java/com/xjrsoft/module/job/WhitelistTask.java

@@ -40,6 +40,7 @@ public class WhitelistTask {
             Map<Long, Long> newMap = list.stream().collect(Collectors.toMap(WhitelistManagement::getUserId, WhitelistManagement::getUserId));
             redisUtil.set(GlobalConstant.WHITE_MANAGEMENT_CACHE_KEY, newMap);
         }
+
     }
 
 }

+ 3 - 3
src/main/java/com/xjrsoft/module/oa/dto/AddNewsDto.java

@@ -62,9 +62,9 @@ public class AddNewsDto {
     /**
      * 简略标题
      */
-//    @ApiModelProperty("简略标题")
-//    @Length(min = 1, max = 50, message = "简略标题最多50个字符!")
-//    private String briefHead;
+    @ApiModelProperty("简略标题")
+    @Length(min = 1, max = 16, message = "简略标题最多50个字符!")
+    private String briefHead;
 
     /**
      * 作者

+ 4 - 0
src/main/java/com/xjrsoft/module/oa/dto/AddProclamationDto.java

@@ -104,4 +104,8 @@ public class AddProclamationDto {
     @TableField(exist = false)
     @EntityMapping(thisField = "id", joinField = "newsId")
     private List<AddNewsRelationDto> relationList;
+
+    @ApiModelProperty("简略标题")
+    @Length(min = 1, max = 16, message = "简略标题最多50个字符!")
+    private String briefHead;
 }

+ 2 - 2
src/main/java/com/xjrsoft/module/oa/service/impl/NewsServiceImpl.java

@@ -985,7 +985,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
                         JSONObject data = new JSONObject();
 
                         JSONObject data1 = new JSONObject();
-                        String hValue = news.getFullHead().replace("“", "").replace("”", "").replace("\"", "").replace("\n", "").replace("\r", "").replace("\t", "");
+                        String hValue = news.getBriefHead().replace("“", "").replace("”", "").replace("\"", "").replace("\n", "").replace("\r", "").replace("\t", "");
                         data1.put("value", hValue);
                         data.put("thing23", data1);
 
@@ -1018,7 +1018,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
                         JSONObject data = new JSONObject();
 
                         JSONObject data1 = new JSONObject();
-                        data1.put("value", news.getFullHead());
+                        data1.put("value", news.getBriefHead());
                         data.put("thing23", data1);
 
                         JSONObject data2 = new JSONObject();

+ 4 - 0
src/main/java/com/xjrsoft/module/oa/vo/ProclamationVo.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.github.yulichang.annotation.EntityMapping;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.hibernate.validator.constraints.Length;
 
 import java.time.LocalDateTime;
 import java.util.List;
@@ -100,4 +101,7 @@ public class ProclamationVo {
     @EntityMapping(thisField = "id", joinField = "newsId")
     private List<NewsRelationConfigVo> newsRelationConfigVoList;
 
+    @ApiModelProperty("简略标题")
+    private String briefHead;
+
 }

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

@@ -5,6 +5,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.support.ExcelTypeEnum;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
@@ -12,6 +13,7 @@ import com.google.gson.JsonParser;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.EnabledMark;
 import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseSemester;
 import com.xjrsoft.module.base.service.IBaseSemesterService;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
@@ -94,6 +96,16 @@ public class ScheduleController {
     @ApiOperation(value="课表接口(PC端)")
     @SaCheckPermission("room:detail")
     public RT<CourseTableVo> courseInfo(CourseTableDto dto){
+        if(dto.getSemesterId() == null){
+            LambdaQueryWrapper<BaseSemester> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper
+                    .orderByDesc(BaseSemester::getStartDate)
+                    .select(BaseSemester.class,x -> VoToColumnUtil.fieldsToColumns(BaseSemester.class).contains(x.getProperty()));
+            List<BaseSemester> semesterList = semesterService.list(queryWrapper);
+            if(!semesterList.isEmpty()){
+                dto.setSemesterId(semesterList.get(0).getId());
+            }
+        }
         CourseTableVo list = courseTableService.getList(dto);
         return RT.ok(list);
     }

+ 5 - 1
src/main/java/com/xjrsoft/module/student/controller/BaseNewStudentController.java

@@ -355,7 +355,7 @@ public class BaseNewStudentController {
 
     @PostMapping("/report-export-query")
     @ApiOperation(value = "导出")
-    public ResponseEntity<byte[]> exportData(@Valid BaseNewStudentPageDto dto) {
+    public ResponseEntity<byte[]> exportData(@Valid @RequestBody BaseNewStudentPageDto dto) {
         if(dto.getBaseSemesterId() == null){
             LambdaQueryWrapper<BaseSemester> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper
@@ -366,6 +366,10 @@ public class BaseNewStudentController {
                 dto.setBaseSemesterId(semesterList.get(0).getId());
             }
         }
+        List<String> roleList = StpUtil.getRoleList();
+        if(roleList.contains("CLASSTE") && roleList.contains("TEACHER") && dto.getTeacherId() == null){
+            dto.setTeacherId(StpUtil.getLoginIdAsLong());
+        }
         List<BaseNewStudentPageVo> reportList = baseNewStudentService.getReportList(dto);
         List<BaseNewStudentExportVo> exportVos = new ArrayList<>();
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");

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

@@ -26,4 +26,7 @@ public class StudentReportRecordStatisticsDto extends PageInput {
 
     @ApiModelProperty("招生类型(xjr_dictionary_detail[enroll_type])")
     private String enrollType;
+
+    @ApiModelProperty("班级id")
+    private Long classId;
 }

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

@@ -1032,7 +1032,7 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
         );
         List<Department> departmentList =baseDeparmentService.list(
                 new QueryWrapper<Department>().lambda().eq(Department::getDeleteMark, DeleteMark.NODELETE.getCode())
-                        .eq(Department::getParentId,"1684107782861680008")
+                        .eq(Department::getIsMajor,1)
         );
         departmentList.forEach((node) -> {
             voList.add(new BaseDepMajorGradeClassStudenTreeVo(){{

+ 7 - 1
src/main/resources/mapper/base/BaseClassCourse.xml

@@ -188,8 +188,14 @@
     <select id="checkExits" resultType="java.lang.Boolean">
         SELECT COUNT(1)
         from base_class_course
-        WHERE class_id = #{classId}
+        WHERE delete_mark = 0 and class_id = #{classId}
           AND course_id = #{courseId}
           AND textbook_id = #{textbookId}
     </select>
+    <select id="checkExitsWithoutTextbook" resultType="java.lang.Boolean">
+        SELECT COUNT(1)
+        from base_class_course
+        WHERE delete_mark = 0 and class_id = #{classId}
+          AND course_id = #{courseId}
+    </select>
 </mapper>

+ 3 - 1
src/main/resources/mapper/student/BaseNewStudentMapper.xml

@@ -205,7 +205,9 @@
         <if test="dto.secondAmbition != null and dto.secondAmbition != ''">
             and t1.second_ambition = #{dto.secondAmbition}
         </if>
-
+        <if test="dto.classId != null">
+            AND t11.id = #{dto.classId}
+        </if>
         <if test="dto.startDate != null and dto.endDate != null">
             AND t13.report_time between #{dto.startDate} and #{dto.endDate}
         </if>

+ 3 - 0
src/main/resources/mapper/student/StudentReportRecordMapper.xml

@@ -49,6 +49,9 @@
         <if test="dto.keyword != null and dto.keyword != ''">
             and t1.name like concat('%', #{dto.keyword},'%')
         </if>
+        <if test="dto.classId != null">
+            and t3.id = #{dto.classId}
+        </if>
         ORDER BY t1.create_date DESC, t2.create_date DESC,t3.create_date DESC,t1.id
     </select>
     <select id="getStatisticsDataList" parameterType="com.xjrsoft.module.student.dto.StudentReportRecordStatisticsDto"