소스 검색

bug修复

dzx 1 년 전
부모
커밋
21c3e950e8

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

@@ -447,10 +447,99 @@ 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()));
+        if(updateProclamationDto.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(updateProclamationDto.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 (updateProclamationDto.getSendRange() == 3) {
+            for (AddNewsRelationDto relationDto : updateProclamationDto.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 true;
     }
 
@@ -834,23 +923,110 @@ 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()));
+            if(updateNewsDto.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(updateNewsDto.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);
+                }
 
-            for (AddNewsRelationDto relationDto : updateNewsDto.getRelationList()) {
+            } else if (updateNewsDto.getSendRange() == 3) {
+                for (AddNewsRelationDto relationDto : updateNewsDto.getRelationList()) {
 
-                NewsRelationConfig newsRelationConfig = BeanUtil.toBean(relationDto, NewsRelationConfig.class);
-                newsRelationConfig.setNewsId(news.getId());
-                newsRelationConfigMapper.insert(newsRelationConfig);
+                    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);
+                    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);
+                        }
+                    }
                 }
             }
+//            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);
+//                }
+//            }
         }
 
         return true;

+ 1 - 1
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

+ 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>