diff --git a/src/main/java/com/biutag/supervision/controller/report/ReportProjectController.java b/src/main/java/com/biutag/supervision/controller/report/ReportProjectController.java index 98ea2bb..242c687 100644 --- a/src/main/java/com/biutag/supervision/controller/report/ReportProjectController.java +++ b/src/main/java/com/biutag/supervision/controller/report/ReportProjectController.java @@ -63,6 +63,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.Consumer; +import java.util.stream.Collectors; import static com.biutag.supervision.constants.AppConstants.ROOTID; @@ -252,16 +253,19 @@ public class ReportProjectController { if (!superAuth) { wrapper.and(p -> p.in("p.audit_unit_id", userAuthOrgIds).or().in("p.project_unit_id", userAuthOrgIds)); } + List dszdOrgIds = departService.getAllNodeIds(AppConstants.DSZD); // 页面鉴权 Map>> authStrategy = Map.of( // “审计单位”为督审支队的项目 "dszd", w -> { - List dszdOrgIds = departService.getAllNodeIds(AppConstants.DSZD); w.and(p -> p.in("p.audit_unit_id", dszdOrgIds)); }, - // 内“审计单位”为各分县市局内审的项目 + // 内“审计单位”为各分县市局内审的项目,还要去除督审支队 "self", w -> { - w.and(p -> p.in("p.audit_unit_id", userAuthOrgIds)); + List filteredUserAuthOrgIds = userAuthOrgIds.stream() + .filter(id -> !dszdOrgIds.contains(id)) + .collect(Collectors.toList()); + w.and(p -> p.in("p.audit_unit_id", filteredUserAuthOrgIds)); // w.and(p -> p.in("p.audit_unit_id", userAuthOrgIds).or().in("p.project_unit_id", userAuthOrgIds)); } );