Pārlūkot izejas kodu

Merge branch 'pre'

dzx 1 gadu atpakaļ
vecāks
revīzija
64b24d626e

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

@@ -239,30 +239,34 @@ public class BaseClassCourseController {
                 continue;
             }
             if(vo.getTextbookName() != null){
-                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;
+                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()));
                     }
-
-                    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());

+ 2 - 0
src/main/java/com/xjrsoft/module/oa/entity/NewsRelation.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.oa.entity;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -27,6 +28,7 @@ public class NewsRelation implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @TableId
     @ApiModelProperty("主键")
     private String id;
 

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

@@ -55,19 +55,14 @@ import com.xjrsoft.module.oa.vo.ProclamationPageVo;
 import com.xjrsoft.module.oa.vo.ProclamationVo;
 import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
 import com.xjrsoft.module.organization.entity.Department;
-import com.xjrsoft.module.organization.entity.Role;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.entity.UserDeptRelation;
-import com.xjrsoft.module.organization.entity.UserRoleRelation;
 import com.xjrsoft.module.organization.mapper.DepartmentMapper;
 import com.xjrsoft.module.organization.mapper.UserDeptRelationMapper;
 import com.xjrsoft.module.organization.mapper.UserMapper;
 import com.xjrsoft.module.organization.service.IWeChatService;
-import com.xjrsoft.module.student.dto.BaseStudentInfoPageDto;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
-import com.xjrsoft.module.student.service.IStudentManagerService;
-import com.xjrsoft.module.student.vo.BaseStudentInfoPageVo;
 import com.xjrsoft.module.system.entity.File;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.teacher.mapper.XjrUserMapper;
@@ -123,7 +118,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
 
     @Override
     public List<NewsGradeClassTreeVo> getGradeClassTree() {
-        List<NewsGradeClassTreeVo> treeVoList = new ArrayList<NewsGradeClassTreeVo>();
+        List<NewsGradeClassTreeVo> treeVoList = new ArrayList<>();
 
         //虚拟父级
         treeVoList.add(new NewsGradeClassTreeVo() {{
@@ -190,100 +185,11 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
         }
 
         //如果状态是2,表示立即发布的公告,需要将阅读人添加进阅读关系表
+        addRelation(news, addProclamationDto, 2);
         if(addProclamationDto.getStatus() == 2){
-            addRelation(news, addProclamationDto, 2);
             return news.getId();
         }
 
-        if(addProclamationDto.getSendRange() == 1){
-            MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-            queryUser
-                    .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
-                    .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
-                    .eq(Role::getId, 2);
-            List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
-            for (XjrUser user: userList) {
-                NewsRelation newsRelation = new NewsRelation();
-                newsRelation.setUserId(user.getId());
-                newsRelation.setReadMark(0);
-                newsRelation.setNewsId(news.getId());
-                newsRelation.setCreateDate(LocalDateTime.now());
-                newsRelationMapper.insert(newsRelation);
-            }
-            List<BaseStudentInfoPageVo> studyingList = baseStudentSchoolRollMapper.getStudyingList(new BaseStudentInfoPageDto());
-            for (BaseStudentInfoPageVo user: studyingList) {
-                NewsRelation newsRelation = new NewsRelation();
-                newsRelation.setUserId(user.getId());
-                newsRelation.setNewsId(news.getId());
-                newsRelation.setReadMark(0);
-                newsRelation.setCreateDate(LocalDateTime.now());
-                newsRelationMapper.insert(newsRelation);
-            }
-        } else if(addProclamationDto.getSendRange() == 2){
-            MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-            queryUser
-                    .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
-                    .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
-                    .eq(Role::getId, 2);
-            List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
-            for (XjrUser user: userList) {
-                NewsRelation newsRelation = new NewsRelation();
-                newsRelation.setUserId(user.getId());
-                newsRelation.setNewsId(news.getId());
-                newsRelation.setReadMark(0);
-                newsRelation.setCreateDate(LocalDateTime.now());
-                newsRelationMapper.insert(newsRelation);
-            }
-
-        } else if (addProclamationDto.getSendRange() == 3) {
-            for (AddNewsRelationDto relationDto : addProclamationDto.getRelationList()) {
-
-                NewsRelationConfig newsRelationConfig = BeanUtil.toBean(relationDto, NewsRelationConfig.class);
-                newsRelationConfig.setNewsId(news.getId());
-                newsRelationConfigMapper.insert(newsRelationConfig);
-
-                NewsRelation newsRelation = BeanUtil.toBean(relationDto, NewsRelation.class);
-                newsRelation.setNewsId(news.getId());
-                newsRelation.setReadMark(0);
-                if (relationDto.getRelationType() == 1) {
-                    // 获取部门下的人员添加
-                    Long deptId = relationDto.getRelationId();
-                    MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-                    queryUser
-                            .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, XjrUser::getId)
-                            .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId)
-                            .eq(Department::getId, deptId);
-                    List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class, queryUser);
-                    for (XjrUser user : userList) {
-                        newsRelation.setUserId(user.getId());
-                        newsRelationMapper.insert(newsRelation);
-                    }
-                }
-                if (relationDto.getRelationType() == 2) {
-                    newsRelation.setUserId(relationDto.getRelationId());
-                    newsRelationMapper.insert(newsRelation);
-                }
-                if (relationDto.getRelationType() == 3) {
-                    // 获取班级下的人员添加
-                    Long deptId = relationDto.getRelationId();
-                    MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-                    queryUser
-                            .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, XjrUser::getId)
-                            .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId)
-                            .eq(Department::getId, deptId);
-                    List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class, queryUser);
-                    List<Long> userIdList = new ArrayList<>();
-                    for (XjrUser user : userList) {
-                        userIdList.add(user.getId());
-                    }
-                    for (Long userId : userIdList) {
-                        newsRelation.setUserId(userId);
-                        newsRelationMapper.insert(newsRelation);
-                    }
-                }
-            }
-        }
-
         //没有任何问题返回
         return -1L;
     }
@@ -447,10 +353,12 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
         }
 
         if (updateProclamationDto.getSendRange() == 3 && updateProclamationDto.getRelationList() != null) {
-            newsRelationMapper.delete(Wrappers.lambdaQuery(NewsRelation.class).eq(NewsRelation::getNewsId, news.getId()));
+
             newsRelationConfigMapper.delete(Wrappers.lambdaQuery(NewsRelationConfig.class).eq(NewsRelationConfig::getNewsId, news.getId()));
             updateRelationConfig(news, updateProclamationDto);
         }
+        newsRelationMapper.delete(Wrappers.lambdaQuery(NewsRelation.class).eq(NewsRelation::getNewsId, news.getId()));
+        addRelation(news, BeanUtil.toBean(updateProclamationDto, AddProclamationDto.class), 2);
         return true;
     }
 
@@ -601,87 +509,11 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
                 newsRelationMapper.insertPersonl(xjrNews.getId(), userIdList);
             }
 
-        }
-
-        //遍历所有关系配置
-           /* for (NewsRelationConfig newsRelationConfig : newsRelationConfigList) {
-                //阅读关系是部门
-                if (newsRelationConfig.getRelationType() == 1) {
-                    // 获取部门下的人员添加
-                    Long deptId = newsRelationConfig.getRelationId();
-                    MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-                    queryUser
-                            .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, XjrUser::getId)
-                            .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId)
-                            .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
-                            .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
-                            .eq(Department::getId, deptId)
-                            .eq(Role::getId, 2);
-                    List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class, queryUser);
-                    for (XjrUser user : userList) {
-                        if (!userMap.containsKey(user.getId())) {
-                            userMap.put(user.getId(), user);
-                            newsRelationMapper.insert(new NewsRelation() {{
-                                setNewsId(xjrNews.getId());
-                                setUserId(user.getId());
-                                setReadMark(0);
-                                setCreateDate(LocalDateTime.now());
-                            }});
-                        }
-                    }
-                }
-                //阅读关系是人员
-                if (newsRelationConfig.getRelationType() == 2) {
-                    if (!userMap.containsKey(newsRelationConfig.getRelationId())) {
-                        userMap.put(newsRelationConfig.getRelationId(), new XjrUser() {{
-                            setId(newsRelationConfig.getRelationId());
-                        }});
-                        newsRelationMapper.insert(new NewsRelation() {{
-                            setNewsId(xjrNews.getId());
-                            setUserId(newsRelationConfig.getRelationId());
-                            setReadMark(0);
-                            setCreateDate(LocalDateTime.now());
-                        }});
-                    }
-                }
-                //阅读关系是班级
-                if (newsRelationConfig.getRelationType() == 3) {
-                    // 获取班级下的人员添加
-                    Long classId = newsRelationConfig.getRelationId();
-                    MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-                    queryUser
-                            .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, XjrUser::getId)
-                            .eq(BaseStudentSchoolRoll::getClassId, classId);
-                    List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class, queryUser);
-                    for (XjrUser user : userList) {
-                        if (!userMap.containsKey(user.getId())) {
-                            userMap.put(user.getId(), user);
-                            newsRelationMapper.insert(new NewsRelation() {{
-                                setNewsId(xjrNews.getId());
-                                setUserId(user.getId());
-                                setReadMark(0);
-                                setCreateDate(LocalDateTime.now());
-                            }});
-                        }
-                    }
-                }
-            }*/
-        if (xjrNews.getSendRange() == 2) {
-//                MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-//                queryUser
-//                        .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
-//                        .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
-//                        .eq(Role::getId, 2);
-//                List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class, queryUser);
-//                for (XjrUser user : userList) {
-//                    newsRelationMapper.insert(new NewsRelation() {{
-//                        setNewsId(xjrNews.getId());
-//                        setUserId(user.getId());
-//                        setReadMark(0);
-//                        setCreateDate(LocalDateTime.now());
-//                    }});
-//                }
+        }else if (xjrNews.getSendRange() == 2) {
             newsRelationMapper.insertAllTeaStaff(xjrNews.getId());
+        }else if (xjrNews.getSendRange() == 1) {
+            newsRelationMapper.insertClassUser(xjrNews.getId(), null);
+            newsRelationMapper.insertDeptUser(xjrNews.getId(), null);
         }
         return true;
     }
@@ -705,95 +537,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
 
         //公告需要添加阅读关系,发送范围 1=全校教职工 2=全校师生 3=指定人员
         //1=全校教职工,添加全校教职工到关系表
-        if(addNewsDto.getSendRange() == 1){
-            MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-            queryUser
-                    .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
-                    .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
-                    .eq(Role::getId, 2);
-            List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
-            for (XjrUser user: userList) {
-                NewsRelation newsRelation = new NewsRelation();
-                newsRelation.setUserId(user.getId());
-                newsRelation.setReadMark(0);
-                newsRelation.setNewsId(news.getId());
-                newsRelation.setCreateDate(LocalDateTime.now());
-                newsRelationMapper.insert(newsRelation);
-            }
-            List<BaseStudentInfoPageVo> studyingList = baseStudentSchoolRollMapper.getStudyingList(new BaseStudentInfoPageDto());
-            for (BaseStudentInfoPageVo user: studyingList) {
-                NewsRelation newsRelation = new NewsRelation();
-                newsRelation.setUserId(user.getId());
-                newsRelation.setNewsId(news.getId());
-                newsRelation.setReadMark(0);
-                newsRelation.setCreateDate(LocalDateTime.now());
-                newsRelationMapper.insert(newsRelation);
-            }
-        } else if(addNewsDto.getSendRange() == 2){
-            MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-            queryUser
-                    .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
-                    .leftJoin(Role.class, Role::getId, UserRoleRelation::getRoleId)
-                    .eq(Role::getId, 2);
-            List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class,queryUser);
-            for (XjrUser user: userList) {
-                NewsRelation newsRelation = new NewsRelation();
-                newsRelation.setUserId(user.getId());
-                newsRelation.setNewsId(news.getId());
-                newsRelation.setReadMark(0);
-                newsRelation.setCreateDate(LocalDateTime.now());
-                newsRelationMapper.insert(newsRelation);
-            }
-
-        } else if (addNewsDto.getSendRange() == 3) {
-            for (AddNewsRelationDto relationDto : addNewsDto.getRelationList()) {
-
-                NewsRelationConfig newsRelationConfig = BeanUtil.toBean(relationDto, NewsRelationConfig.class);
-                newsRelationConfig.setNewsId(news.getId());
-                newsRelationConfigMapper.insert(newsRelationConfig);
-
-                NewsRelation newsRelation = BeanUtil.toBean(relationDto, NewsRelation.class);
-                newsRelation.setNewsId(news.getId());
-                newsRelation.setReadMark(0);
-                if (relationDto.getRelationType() == 1) {
-                    // 获取部门下的人员添加
-                    Long deptId = relationDto.getRelationId();
-                    MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-                    queryUser
-                            .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, XjrUser::getId)
-                            .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId)
-                            .eq(Department::getId, deptId);
-                    List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class, queryUser);
-                    for (XjrUser user : userList) {
-                        newsRelation.setUserId(user.getId());
-                        newsRelationMapper.insert(newsRelation);
-                    }
-                }
-                if (relationDto.getRelationType() == 2) {
-                    newsRelation.setUserId(relationDto.getRelationId());
-                    newsRelationMapper.insert(newsRelation);
-                }
-                if (relationDto.getRelationType() == 3) {
-                    // 获取班级下的人员添加
-                    Long deptId = relationDto.getRelationId();
-                    MPJLambdaWrapper<XjrUser> queryUser = new MPJLambdaWrapper<>();
-                    queryUser
-                            .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, XjrUser::getId)
-                            .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId)
-                            .eq(Department::getId, deptId);
-                    List<XjrUser> userList = xjrUserMapper.selectJoinList(XjrUser.class, queryUser);
-                    List<Long> userIdList = new ArrayList<>();
-                    for (XjrUser user : userList) {
-                        userIdList.add(user.getId());
-                    }
-                    for (Long userId : userIdList) {
-                        newsRelation.setUserId(userId);
-                        newsRelationMapper.insert(newsRelation);
-                    }
-                }
-            }
-        }
-
+        addRelation(news, BeanUtil.toBean(addNewsDto, AddProclamationDto.class), 1);
         //添加新闻和公告的时候,如果状态是2,表示新闻和公告实时发布了,张贴开始时间就应该是发布时间需要发送消息
         if (ObjectUtil.isNotNull(addNewsDto.getStatus()) && addNewsDto.getStatus() == 2) {
             SendMessage(news.getId());
@@ -834,23 +578,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
         if (updateNewsDto.getRelationList() != null) {
             newsRelationMapper.delete(Wrappers.lambdaQuery(NewsRelation.class).eq(NewsRelation::getNewsId, news.getId()));
             newsRelationConfigMapper.delete(Wrappers.lambdaQuery(NewsRelationConfig.class).eq(NewsRelationConfig::getNewsId, news.getId()));
-
-            for (AddNewsRelationDto relationDto : updateNewsDto.getRelationList()) {
-
-                NewsRelationConfig newsRelationConfig = BeanUtil.toBean(relationDto, NewsRelationConfig.class);
-                newsRelationConfig.setNewsId(news.getId());
-                newsRelationConfigMapper.insert(newsRelationConfig);
-
-                NewsRelation newsRelation = BeanUtil.toBean(relationDto, NewsRelation.class);
-                newsRelation.setNewsId(news.getId());
-                newsRelation.setReadMark(0);
-                if (relationDto.getRelationType() == 1) {
-                    // 获取部门下的人员添加
-                } else {
-                    newsRelation.setUserId(relationDto.getRelationId());
-                    newsRelationMapper.insert(newsRelation);
-                }
-            }
+            addRelation(news, BeanUtil.toBean(updateNewsDto, AddProclamationDto.class), 1);
         }
 
         return true;

+ 1 - 1
src/main/resources/application.yml

@@ -5,7 +5,7 @@ server:
 spring:
   # 环 io境 dev|pre|prod
   profiles:
-    active: dev
+    active: pre
   # jackson时间格式化
   jackson:
     time-zone: GMT+8

+ 1 - 0
src/main/resources/mapper/oa/NewsRelationMapper.xml

@@ -79,4 +79,5 @@
             </foreach>
         </if>)
     </insert>
+
 </mapper>

+ 5 - 2
src/main/resources/mapper/student/BaseNewStudentMapper.xml

@@ -79,7 +79,7 @@
         t1.score,t1.graduate_class,t1.source,t5.name as source_cn,t1.stduy_status,t3.name AS stduy_status_cn,t1.mobile,t7.name as first_ambition,
         t8.name as second_ambition,t1.is_adjust,t1.status,ifnull(t11.name,t1.delete_reason) AS class_name,t12.name AS teacher_name ,t13.report_time,
         t9.id as user_id,(select count(*) from student_report_record where user_id = t9.id
-                                                                       and base_semester_id = #{dto.baseSemesterId} and delete_mark = 0) as is_report FROM base_new_student t1
+        and base_semester_id = #{dto.baseSemesterId} and delete_mark = 0) as is_report FROM base_new_student t1
         LEFT JOIN xjr_dictionary_detail t2 ON t1.gender = t2.code AND t2.item_id = 2023000000000000004
         LEFT JOIN xjr_dictionary_detail t3 ON t1.stduy_status = t3.code AND t3.item_id = 2023000000000000030
         LEFT JOIN xjr_dictionary_detail t5 ON t1.source = t5.code AND t5.item_id = 2023000000000000028
@@ -227,11 +227,14 @@
             AND t11.id = #{dto.classId}
         </if>
         <if test="dto.isReport != null">
-            AND (select count(*) from student_report_record where user_id = t1.id and base_semester_id = #{dto.baseSemesterId} and delete_mark = 0) = #{dto.isReport}
+            AND (select count(*) from student_report_record where user_id = t9.id and base_semester_id = #{dto.baseSemesterId} and delete_mark = 0) = #{dto.isReport}
         </if>
         <if test="dto.stduyStatus != null and dto.stduyStatus != ''">
             AND t10.stduy_status = #{dto.stduyStatus}
         </if>
+        <if test="dto.source != null and dto.source != ''">
+            AND t1.source = #{dto.source}
+        </if>
         <if test="dto.enrollmentPlanId != null">
             AND t1.enrollment_plan_id = #{dto.enrollmentPlanId}
         </if>

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

@@ -67,5 +67,7 @@
         left join xjr_dictionary_detail t8 on t6.class_type = t8.code and t8.item_id = 2023000000000000039
         WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
         AND t3.grade_id = #{dto.gradeId} AND t3.enroll_type = #{dto.enrollType}
+        AND (t1.delete_reason IS NULL OR t1.delete_reason = '')
+        AND t2.delete_mark = 0
     </select>
 </mapper>