Procházet zdrojové kódy

pms 生产异常消息提醒 查询上级项目部 过滤掉数据权限

zhangcl před 6 hodinami
rodič
revize
7b269d7b9e

+ 31 - 25
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotfivedailyreport/IotFiveDailyReportServiceImpl.java

@@ -118,12 +118,40 @@ public class IotFiveDailyReportServiceImpl implements IotFiveDailyReportService
             // 异常情况
             String malfunction = StrUtil.blankToDefault(updateObj.getMalfunction(), "无");
             DeptDO dept = deptService.getDept(deptId);
-            // 查询当前队伍的上级项目部
-            DeptDO projectDept = deptService.getDept(dept.getParentId());
+
+            List<String> projectDeptNames = new ArrayList<>();
+            // 查询瑞鹰 163l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
+            Set<Long> userIds = new HashSet<>();
+            Set<Long> deptIds = new HashSet<>();
+            DataPermissionUtils.executeIgnore(() -> {
+                // 封装以上消息内容 发送到公司 角色 (生产异常通知)
+                // 查询瑞恒 157l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
+                deptIds.add(388l);
+                List<AdminUserDO> companyUsers = adminUserService.getUserListByDeptIds(deptIds);
+                if (CollUtil.isNotEmpty(companyUsers)) {
+                    companyUsers.forEach(user -> {
+                        userIds.add(user.getId());
+                    });
+                }
+                deptIds.clear();
+                deptIds.add(156l);
+                List<AdminUserDO> groupUsers = adminUserService.getUserListByDeptIds(deptIds);
+                if (CollUtil.isNotEmpty(groupUsers)) {
+                    groupUsers.forEach(user -> {
+                        userIds.add(user.getId());
+                    });
+                }
+                // 查询当前队伍的上级项目部 过滤掉数据权限
+                DeptDO projectDept = deptService.getDept(dept.getParentId());
+                if (ObjUtil.isNotEmpty(projectDept)) {
+                    projectDeptNames.add(projectDept.getName());
+                }
+            });
+
             // 队伍名称
             String deptName = ObjUtil.isNotEmpty(dept) ? dept.getName() : StrUtil.EMPTY;
             // 项目部名称
-            String projectDeptName = ObjUtil.isNotEmpty(projectDept) ? projectDept.getName() : StrUtil.EMPTY;
+            String projectDeptName = CollUtil.isNotEmpty(projectDeptNames) ? projectDeptNames.get(0) : StrUtil.EMPTY;
 
             String wellName = "无";
             if (ObjUtil.isNotEmpty(taskId)) {
@@ -153,28 +181,6 @@ public class IotFiveDailyReportServiceImpl implements IotFiveDailyReportService
                     malfunction, brief, nextPlan, accidentDay
             );
 
-            Set<Long> userIds = new HashSet<>();
-            Set<Long> deptIds = new HashSet<>();
-            DataPermissionUtils.executeIgnore(() -> {
-                // 封装以上消息内容 发送到公司 角色 (生产异常通知)
-                // 查询瑞恒 157l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
-                deptIds.add(388l);
-                List<AdminUserDO> companyUsers = adminUserService.getUserListByDeptIds(deptIds);
-                if (CollUtil.isNotEmpty(companyUsers)) {
-                    companyUsers.forEach(user -> {
-                        userIds.add(user.getId());
-                    });
-                }
-                deptIds.clear();
-                deptIds.add(156l);
-                List<AdminUserDO> groupUsers = adminUserService.getUserListByDeptIds(deptIds);
-                if (CollUtil.isNotEmpty(groupUsers)) {
-                    groupUsers.forEach(user -> {
-                        userIds.add(user.getId());
-                    });
-                }
-            });
-
             RoleDO role = roleService.getRoleByCode("生产异常通知");
             if (ObjUtil.isNotEmpty(role)) {
                 Set<Long> roleIds = new HashSet<>();

+ 31 - 25
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotrddailyreport/IotRdDailyReportServiceImpl.java

@@ -277,12 +277,40 @@ public class IotRdDailyReportServiceImpl implements IotRdDailyReportService {
                 // 异常情况
                 String malfunction = StrUtil.blankToDefault(dailyReport.getMalfunction(), "无");
                 DeptDO dept = deptService.getDept(deptId);
-                // 查询当前队伍的上级项目部
-                DeptDO projectDept = deptService.getDept(dept.getParentId());
+
+                List<String> projectDeptNames = new ArrayList<>();
+                // 查询瑞鹰 163l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
+                Set<Long> userIds = new HashSet<>();
+                Set<Long> deptIds = new HashSet<>();
+                DataPermissionUtils.executeIgnore(() -> {
+                    // 封装以上消息内容 发送到公司 角色 (生产异常通知)
+                    // 查询瑞恒 157l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
+                    deptIds.add(163l);
+                    List<AdminUserDO> companyUsers = adminUserService.getUserListByDeptIds(deptIds);
+                    if (CollUtil.isNotEmpty(companyUsers)) {
+                        companyUsers.forEach(user -> {
+                            userIds.add(user.getId());
+                        });
+                    }
+                    deptIds.clear();
+                    deptIds.add(156l);
+                    List<AdminUserDO> groupUsers = adminUserService.getUserListByDeptIds(deptIds);
+                    if (CollUtil.isNotEmpty(groupUsers)) {
+                        groupUsers.forEach(user -> {
+                            userIds.add(user.getId());
+                        });
+                    }
+                    // 查询当前队伍的上级项目部 过滤掉数据权限
+                    DeptDO projectDept = deptService.getDept(dept.getParentId());
+                    if (ObjUtil.isNotEmpty(projectDept)) {
+                        projectDeptNames.add(projectDept.getName());
+                    }
+                });
+
                 // 队伍名称
                 String deptName = ObjUtil.isNotEmpty(dept) ? dept.getName() : StrUtil.EMPTY;
                 // 项目部名称
-                String projectDeptName = ObjUtil.isNotEmpty(projectDept) ? projectDept.getName() : StrUtil.EMPTY;
+                String projectDeptName = CollUtil.isNotEmpty(projectDeptNames) ? projectDeptNames.get(0) : StrUtil.EMPTY;
                 String wellName = "无";
                 if (ObjUtil.isNotEmpty(taskId)) {
                     IotProjectTaskDO task = iotProjectTaskMapper.selectById(taskId);
@@ -311,28 +339,6 @@ public class IotRdDailyReportServiceImpl implements IotRdDailyReportService {
                         malfunction, brief, nextPlan, accidentDay
                 );
 
-                Set<Long> userIds = new HashSet<>();
-                Set<Long> deptIds = new HashSet<>();
-                DataPermissionUtils.executeIgnore(() -> {
-                    // 封装以上消息内容 发送到公司 角色 (生产异常通知)
-                    // 查询瑞恒 157l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
-                    deptIds.add(163l);
-                    List<AdminUserDO> companyUsers = adminUserService.getUserListByDeptIds(deptIds);
-                    if (CollUtil.isNotEmpty(companyUsers)) {
-                        companyUsers.forEach(user -> {
-                            userIds.add(user.getId());
-                        });
-                    }
-                    deptIds.clear();
-                    deptIds.add(156l);
-                    List<AdminUserDO> groupUsers = adminUserService.getUserListByDeptIds(deptIds);
-                    if (CollUtil.isNotEmpty(groupUsers)) {
-                        groupUsers.forEach(user -> {
-                            userIds.add(user.getId());
-                        });
-                    }
-                });
-
                 RoleDO role = roleService.getRoleByCode("生产异常通知");
                 if (ObjUtil.isNotEmpty(role)) {
                     Set<Long> roleIds = new HashSet<>();

+ 31 - 33
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotrhdailyreport/IotRhDailyReportServiceImpl.java

@@ -885,21 +885,41 @@ public class IotRhDailyReportServiceImpl implements IotRhDailyReportService {
             String accidentDay = day + "T";
             // 异常情况
             String malfunction = StrUtil.blankToDefault(dailyReport.getMalfunction(), "无");
-            Long projectId = dailyReport.getProjectId();
             DeptDO dept = deptService.getDept(deptId);
-            // 查询当前队伍的上级项目部
-            DeptDO projectDept = deptService.getDept(dept.getParentId());
+
+            List<String> projectDeptNames = new ArrayList<>();
+            // 查询瑞鹰 163l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
+            Set<Long> userIds = new HashSet<>();
+            Set<Long> deptIds = new HashSet<>();
+            DataPermissionUtils.executeIgnore(() -> {
+                // 封装以上消息内容 发送到公司 角色 (生产异常通知)
+                // 查询瑞恒 157l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
+                deptIds.add(157l);
+                List<AdminUserDO> companyUsers = adminUserService.getUserListByDeptIds(deptIds);
+                if (CollUtil.isNotEmpty(companyUsers)) {
+                    companyUsers.forEach(user -> {
+                        userIds.add(user.getId());
+                    });
+                }
+                deptIds.clear();
+                deptIds.add(156l);
+                List<AdminUserDO> groupUsers = adminUserService.getUserListByDeptIds(deptIds);
+                if (CollUtil.isNotEmpty(groupUsers)) {
+                    groupUsers.forEach(user -> {
+                        userIds.add(user.getId());
+                    });
+                }
+                // 查询当前队伍的上级项目部 过滤掉数据权限
+                DeptDO projectDept = deptService.getDept(dept.getParentId());
+                if (ObjUtil.isNotEmpty(projectDept)) {
+                    projectDeptNames.add(projectDept.getName());
+                }
+            });
+
             // 队伍名称
             String deptName = ObjUtil.isNotEmpty(dept) ? dept.getName() : StrUtil.EMPTY;
             // 项目部名称
-            String projectDeptName = ObjUtil.isNotEmpty(projectDept) ? projectDept.getName() : StrUtil.EMPTY;
-            String contract = "无";
-            if (ObjUtil.isNotEmpty(projectId)) {
-                IotProjectInfoDO project = iotProjectInfoMapper.selectById(projectId);
-                if (ObjUtil.isNotEmpty(project)) {
-                    contract = project.getContractName();
-                }
-            }
+            String projectDeptName = CollUtil.isNotEmpty(projectDeptNames) ? projectDeptNames.get(0) : StrUtil.EMPTY;
             String wellName = "无";
             if (ObjUtil.isNotEmpty(taskId)) {
                 IotProjectTaskDO task = iotProjectTaskMapper.selectById(taskId);
@@ -927,28 +947,6 @@ public class IotRhDailyReportServiceImpl implements IotRhDailyReportService {
                     malfunction, brief, nextPlan, accidentDay
             );
 
-            Set<Long> userIds = new HashSet<>();
-            Set<Long> deptIds = new HashSet<>();
-            DataPermissionUtils.executeIgnore(() -> {
-                // 封装以上消息内容 发送到公司 角色 (生产异常通知)
-                // 查询瑞恒 157l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
-                deptIds.add(157l);
-                List<AdminUserDO> companyUsers = adminUserService.getUserListByDeptIds(deptIds);
-                if (CollUtil.isNotEmpty(companyUsers)) {
-                    companyUsers.forEach(user -> {
-                        userIds.add(user.getId());
-                    });
-                }
-                deptIds.clear();
-                deptIds.add(156l);
-                List<AdminUserDO> groupUsers = adminUserService.getUserListByDeptIds(deptIds);
-                if (CollUtil.isNotEmpty(groupUsers)) {
-                    groupUsers.forEach(user -> {
-                        userIds.add(user.getId());
-                    });
-                }
-            });
-
             RoleDO role = roleService.getRoleByCode("生产异常通知");
             if (ObjUtil.isNotEmpty(role)) {
                 Set<Long> roleIds = new HashSet<>();

+ 30 - 25
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotrydailyreport/IotRyDailyReportServiceImpl.java

@@ -993,12 +993,39 @@ public class IotRyDailyReportServiceImpl implements IotRyDailyReportService {
             // 异常情况
             String malfunction = StrUtil.blankToDefault(dailyReport.getMalfunction(), "无");
             DeptDO dept = deptService.getDept(deptId);
-            // 查询当前队伍的上级项目部
-            DeptDO projectDept = deptService.getDept(dept.getParentId());
+            List<String> projectDeptNames = new ArrayList<>();
+
+            // 封装以上消息内容 发送到公司 角色 (生产异常通知)
+            // 查询瑞鹰 158l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
+            Set<Long> userIds = new HashSet<>();
+            Set<Long> deptIds = new HashSet<>();
+            DataPermissionUtils.executeIgnore(() -> {
+                deptIds.add(158l);
+                List<AdminUserDO> companyUsers = adminUserService.getUserListByDeptIds(deptIds);
+                if (CollUtil.isNotEmpty(companyUsers)) {
+                    companyUsers.forEach(user -> {
+                        userIds.add(user.getId());
+                    });
+                }
+                deptIds.clear();
+                deptIds.add(156l);
+                List<AdminUserDO> groupUsers = adminUserService.getUserListByDeptIds(deptIds);
+                if (CollUtil.isNotEmpty(groupUsers)) {
+                    groupUsers.forEach(user -> {
+                        userIds.add(user.getId());
+                    });
+                }
+                // 查询当前队伍的上级项目部 过滤掉数据权限
+                DeptDO projectDept = deptService.getDept(dept.getParentId());
+                if (ObjUtil.isNotEmpty(projectDept)) {
+                    projectDeptNames.add(projectDept.getName());
+                }
+            });
+
             // 队伍名称
             String deptName = ObjUtil.isNotEmpty(dept) ? dept.getName() : StrUtil.EMPTY;
             // 项目部名称
-            String projectDeptName = ObjUtil.isNotEmpty(projectDept) ? projectDept.getName() : StrUtil.EMPTY;
+            String projectDeptName = CollUtil.isNotEmpty(projectDeptNames) ? projectDeptNames.get(0) : StrUtil.EMPTY;
             String wellName = "无";
             if (ObjUtil.isNotEmpty(taskId)) {
                 IotProjectTaskDO task = iotProjectTaskMapper.selectById(taskId);
@@ -1026,28 +1053,6 @@ public class IotRyDailyReportServiceImpl implements IotRyDailyReportService {
                     malfunction, brief, nextPlan, accidentDay
             );
 
-            // 封装以上消息内容 发送到公司 角色 (生产异常通知)
-            // 查询瑞鹰 158l 下具有以上角色的人员 查询集团(科瑞石油技术) 拥有以上角色的人员
-            Set<Long> userIds = new HashSet<>();
-            Set<Long> deptIds = new HashSet<>();
-            DataPermissionUtils.executeIgnore(() -> {
-                deptIds.add(158l);
-                List<AdminUserDO> companyUsers = adminUserService.getUserListByDeptIds(deptIds);
-                if (CollUtil.isNotEmpty(companyUsers)) {
-                    companyUsers.forEach(user -> {
-                        userIds.add(user.getId());
-                    });
-                }
-                deptIds.clear();
-                deptIds.add(156l);
-                List<AdminUserDO> groupUsers = adminUserService.getUserListByDeptIds(deptIds);
-                if (CollUtil.isNotEmpty(groupUsers)) {
-                    groupUsers.forEach(user -> {
-                        userIds.add(user.getId());
-                    });
-                }
-            });
-
             RoleDO role = roleService.getRoleByCode("生产异常通知");
             if (ObjUtil.isNotEmpty(role)) {
                 Set<Long> roleIds = new HashSet<>();