Kaynağa Gözat

feat: 区分监察员角色

shc 7 ay önce
ebeveyn
işleme
1355c7dc70

+ 9 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmSupervisionManager.java

@@ -1200,9 +1200,9 @@ public class WmSupervisionManager {
         List<Integer> pkgIds = packages.stream().map(WmScorePackage::getId).mapToInt(Integer::valueOf).boxed().distinct().sorted().collect(Collectors.toList());
 
         // 积分包内已经监督的任务
-        List<Integer> visibleRoleIds = getVisibleRoleIds(roles);
+
         List<WmTaskSupervision> list1 = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery()
-                .in(WmTaskSupervision::getRoleId, visibleRoleIds)
+                // .in(WmTaskSupervision::getRoleId, visibleRoleIds)
                 // .eq(WmTaskSupervision::getModifiable, false)
                 .in(WmTaskSupervision::getPackageId, pkgIds).orderByDesc(WmTaskSupervision::getCreateTime));
 
@@ -1249,6 +1249,7 @@ public class WmSupervisionManager {
         // 负责人|分管领导|事业部总经理
         else {
             isService = false;
+            List<Integer> visibleRoleIds = getVisibleRoleIds(roles);
 
             if (review) {
                 // 获取当前积分包已经监督过的任务ID
@@ -1260,7 +1261,8 @@ public class WmSupervisionManager {
                 if (CollUtil.isEmpty(tsId)) {
                     return page;
                 }
-                Set<Integer> supTaskIds = list.stream().filter(ts -> tsId.contains(ts.getSupervisionId())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+                // Set<Integer> supTaskIds = list.stream().filter(ts -> tsId.contains(ts.getSupervisionId())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
+                Set<Integer> supTaskIds = list.stream().filter(ts -> tsId.contains(ts.getSupervisionId()) && visibleRoleIds.contains(ts.getRoleId())).mapToInt(WmTaskSupervision::getTaskId).boxed().collect(Collectors.toSet());
                 taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
             } else {
                 Map<UpmsState.TaskSupervisionState, Set<Integer>> collect1 = list.stream()
@@ -1298,11 +1300,13 @@ public class WmSupervisionManager {
                     throw new BizException("无监督权限");
                 }
 
-                if (CollUtil.isEmpty(supTaskIds)) {
+                List<Integer> collect = supTaskIds.stream().filter(visibleRoleIds::contains).collect(Collectors.toList());
+
+                if (CollUtil.isEmpty(collect)) {
                     return page;
                 }
 
-                taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, supTaskIds));
+                taskPage = taskService.page(new Page<>(query.getCurrent(), query.getSize()), Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, collect));
             }
 
         }