From 80e387d61c3539ee613a6b5d2ed3175b4ee572ca Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Mon, 30 Mar 2026 16:14:03 +0800 Subject: [PATCH] =?UTF-8?q?fix--=E5=AE=A1=E8=AE=A1=E6=83=85=E5=86=B5?= =?UTF-8?q?=E8=A1=A8=EF=BC=9A=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=8C=83=E5=9B=B4=E5=86=85=E2=80=9C=E5=AE=A1=E8=AE=A1?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=E2=80=9D=E4=B8=BA=E7=9D=A3=E5=AE=A1=E6=94=AF?= =?UTF-8?q?=E9=98=9F=EF=BC=88=E5=AE=A1=E8=AE=A1=E5=A4=A7=E9=98=9F=EF=BC=89?= =?UTF-8?q?=E7=9A=84=E5=BD=92=E6=A1=A3=E9=A1=B9=E7=9B=AE=E3=80=82=EF=BC=88?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BF=AE=E6=94=B9=E5=88=97=E8=A1=A8=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=EF=BC=8C=E5=89=94=E9=99=A4=E5=88=A0=E9=99=A4=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E7=9A=84=E9=A1=B9=E7=9B=AE=EF=BC=89=EF=BC=89=20?= =?UTF-8?q?=E5=AE=A1=E7=BB=93=E6=83=85=E5=86=B5=E8=A1=A8=EF=BC=9A=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=B1=95=E7=A4=BA=E6=9D=83=E9=99=90=E8=8C=83=E5=9B=B4?= =?UTF-8?q?=E5=86=85=E5=B7=B2=E5=BD=92=E6=A1=A3=E7=9A=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=88=E5=89=94=E9=99=A4=E5=88=A0=E9=99=A4=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=EF=BC=8C=E7=9B=AE=E5=89=8D=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=95=B0=E5=AF=B9=E4=B8=8D=E4=B8=8A=EF=BC=89=20=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=AE=A1=E8=AE=A1=E6=83=85=E5=86=B5=E5=A4=87=E6=A1=88?= =?UTF-8?q?=E8=A1=A8=EF=BC=9A=E5=88=97=E8=A1=A8=E5=B1=95=E7=A4=BA=E9=99=90?= =?UTF-8?q?=E6=9D=83=E9=99=90=E8=8C=83=E5=9B=B4=E5=86=85=E2=80=9C=E5=AE=A1?= =?UTF-8?q?=E8=AE=A1=E5=8D=95=E4=BD=8D=E2=80=9D=E4=B8=BA=E5=90=84=E5=88=86?= =?UTF-8?q?=E5=8E=BF=E5=B8=82=E5=B1=80=E5=86=85=E5=AE=A1=E7=9A=84=E5=BD=92?= =?UTF-8?q?=E6=A1=A3=E9=A1=B9=E7=9B=AE=E3=80=82=EF=BC=88=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=B0=86=E8=AF=A5=E5=88=97=E8=A1=A8=E6=9C=80=E4=B8=8B=E6=96=B9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=8F=8F=E8=BF=B0=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E5=89=94=E9=99=A4=E5=88=A0=E9=99=A4=E7=8A=B6=E6=80=81=E7=9A=84?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervision/constants/AppConstants.java | 3 ++ .../report/ReportProjectController.java | 54 +++++++++---------- .../param/statement/StatementQueryParam.java | 4 +- 3 files changed, 31 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/biutag/supervision/constants/AppConstants.java b/src/main/java/com/biutag/supervision/constants/AppConstants.java index b146119..df82b17 100644 --- a/src/main/java/com/biutag/supervision/constants/AppConstants.java +++ b/src/main/java/com/biutag/supervision/constants/AppConstants.java @@ -35,6 +35,9 @@ public class AppConstants { // 督审支队的单位id public static final String DSZD = "2785"; + // 长沙公安局的id + public static final String ROOTID = "12630"; + public static final List CWLN = List.of("3651", "3799", "4170", "3994"); 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 9d9617c..9d75818 100644 --- a/src/main/java/com/biutag/supervision/controller/report/ReportProjectController.java +++ b/src/main/java/com/biutag/supervision/controller/report/ReportProjectController.java @@ -60,7 +60,11 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.function.Consumer; + +import static com.biutag.supervision.constants.AppConstants.ROOTID; /** * @author weipeng @@ -238,38 +242,32 @@ public class ReportProjectController { wrapper.groupBy("p.id"); wrapper.eq("p.delete_flag", DeleteStatusEnum.NO.getCode()); - // 鉴权逻辑 + // 账号鉴权 UserAuth user = UserContextHolder.getCurrentUser(); boolean superAuth = AppConstants.USER_TYPE_SUPER.equals(user.getUserType()); boolean firstAuth = superAuth || user.getRoleCodes().contains(RoleCodeEnum.FIRST_ADMIN.getCode()); - // 获取用户的权限部门及其所有子部门 - List userAuthOrgIds = !user.getAuthDepartIds().isEmpty() - ? departService.getAllNodeIds(user.getAuthDepartIds()) - : departService.getAllNodeIds(user.getDepartId()); - - // 根据code参数应用不同的鉴权规则 + List userAuthOrgIds = firstAuth + ? departService.getAllNodeIds(ROOTID) + : (user.getAuthDepartIds().isEmpty() ? departService.getAllNodeIds(user.getDepartId()) : departService.getAllNodeIds(user.getAuthDepartIds())); + if (!superAuth) { + wrapper.and(p -> p.in("p.audit_unit_id", userAuthOrgIds).or().in("p.project_unit_id", userAuthOrgIds)); + } + // 页面鉴权 + 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)); +// w.and(p -> p.in("p.audit_unit_id", userAuthOrgIds).or().in("p.project_unit_id", userAuthOrgIds)); + } + ); String code = queryParam.getCode(); - if (firstAuth) { - // 超级管理员和市级管理员 - if ("dszd".equals(code)) { - // 只显示督审支队及以下单位的数据 - List dszdOrgIds = departService.getAllNodeIds(AppConstants.DSZD); - wrapper.and(w -> w.in("p.audit_unit_id", dszdOrgIds).or().in("p.project_unit_id", dszdOrgIds)); - } - // 其他情况(firstAuth + 无code或self)显示全部数据 - } else { - // 非市级管理员,根据code应用不同规则 - if ("dszd".equals(code)) { - // 只显示审计单位或项目单位为督审支队及以下单位的数据 - List dszdOrgIds = departService.getAllNodeIds(AppConstants.DSZD); - wrapper.and(w -> w.in("p.audit_unit_id", dszdOrgIds).or().in("p.project_unit_id", dszdOrgIds)); - } else if ("self".equals(code)) { - // 只显示审计单位或项目单位为自己的权限机构的数据 - wrapper.and(w -> w.eq("p.audit_unit_id", user.getDepartId()).or().eq("p.project_unit_id", user.getDepartId())); - } else { - // 默认显示权限范围内的所有数据 - wrapper.and(w -> w.in("p.audit_unit_id", userAuthOrgIds).or().in("p.project_unit_id", userAuthOrgIds)); - } + if (code != null && authStrategy.containsKey(code)) { + authStrategy.get(code).accept(wrapper); } Page conditionPage = reportProjectService.getConditionPage(new Page<>(queryParam.getCurrent(), queryParam.getSize()), wrapper); diff --git a/src/main/java/com/biutag/supervision/pojo/param/statement/StatementQueryParam.java b/src/main/java/com/biutag/supervision/pojo/param/statement/StatementQueryParam.java index fd990d6..38ae875 100644 --- a/src/main/java/com/biutag/supervision/pojo/param/statement/StatementQueryParam.java +++ b/src/main/java/com/biutag/supervision/pojo/param/statement/StatementQueryParam.java @@ -2,13 +2,12 @@ package com.biutag.supervision.pojo.param.statement; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; -import com.biutag.supervision.pojo.entity.report.ReportProject; import com.biutag.supervision.pojo.param.BasePage; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; -import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @@ -56,6 +55,7 @@ public class StatementQueryParam extends BasePage { private List archivingTime; //区分审结、审计备案 + @Schema(description = "区分 dszd:审计情况表 self:项目审计情况备案表 null:审结情况表") private String code;