From deb5f9ce894df85f4816adebfe6707753443e6b4 Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Mon, 13 Oct 2025 18:44:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E5=91=98=E3=80=81=E6=9D=90?= =?UTF-8?q?=E6=96=99=E5=91=98=E3=80=81=E5=BA=93=E7=AE=A1=E5=91=98=E5=BC=BA?= =?UTF-8?q?=E5=88=B6=E7=BB=B4=E6=8A=A4=E7=AD=BE=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/biz/constant/GlobalConstants.java | 5 ++ .../controller/ArchivesController.java | 12 +++++ .../archives/service/ArchivesService.java | 6 +++ .../service/impl/ArchivesServiceImpl.java | 48 +++++++++++++++++-- 4 files changed, 67 insertions(+), 4 deletions(-) diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/GlobalConstants.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/GlobalConstants.java index f137ce26..4b5b67e2 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/GlobalConstants.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/GlobalConstants.java @@ -575,4 +575,9 @@ public class GlobalConstants { */ public static final List allowedRoles = Arrays.asList("ywgly", "16", "gy"); + /** + * 角色:材料员、库管员、维修员 + */ + public static final List roleList = Arrays.asList("cly", "库管员", "wxy"); + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/controller/ArchivesController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/controller/ArchivesController.java index e6fc43d9..0cc86baf 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/controller/ArchivesController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/controller/ArchivesController.java @@ -100,6 +100,18 @@ public class ArchivesController extends BaseController { return archivesService.edit(archiveInfo); } + /** + * 根据用户查询电子签名 + * @param info + * @return + */ + @ApiOperation(value = "根据用户查询电子签名") + @GetMapping("/getSignatureByUser") + public AjaxResult getSignatureByUser(ElcSignatureInfo info) + { + return archivesService.getSignatureByUser(info); + } + /** * 电子签名 查询用户表信息 * @param info diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/service/ArchivesService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/service/ArchivesService.java index 6b4944e2..6be55f2f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/service/ArchivesService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/service/ArchivesService.java @@ -119,4 +119,10 @@ public interface ArchivesService { * @return */ AjaxResult getSign(ElcSignatureInfo info); + + /** + * 根据用户查询电子签名 + * @param info + */ + AjaxResult getSignatureByUser(ElcSignatureInfo info); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/service/impl/ArchivesServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/service/impl/ArchivesServiceImpl.java index db27d56f..0e9f2769 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/service/impl/ArchivesServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/archives/service/impl/ArchivesServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.bonus.common.biz.config.DateTimeHelper; import com.bonus.common.biz.config.FileCompressor; +import com.bonus.common.biz.constant.GlobalConstants; import com.bonus.common.biz.domain.FileInfo; import com.bonus.common.biz.domain.HttpMsg; import com.bonus.common.biz.domain.TreeBuild; @@ -39,10 +40,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -618,6 +616,48 @@ public class ArchivesServiceImpl implements ArchivesService { return AjaxResult.success(elcSignatureInfo); } + /** + * 查询用户是否属于以下角色:材料员、库管员、维修员 + * 1、不属于则直接返回"1" + * 2、属于,有签名返回"1",无签名返回"0" + */ + @Override + public AjaxResult getSignatureByUser(ElcSignatureInfo info) { + try { + Set userRoles = SecurityUtils.getLoginUser().getRoles(); + if (!hasSpecialRole(userRoles)) { + return AjaxResult.success("1"); + } else { + info.setUserId(SecurityUtils.getLoginUser().getUserid()); + ElcSignatureInfo elcSignatureInfo = archivesMapper.getSign(info); + if (elcSignatureInfo != null) { + if (StringUtils.isNotBlank(elcSignatureInfo.getSignUrl())) { + return AjaxResult.success("1"); + } else { + return AjaxResult.success("0"); + } + } + return AjaxResult.error("签名获取失败"); + } + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error("签名获取失败"); + } + } + + /** + * 检查用户是否具有特殊角色 + * @param userRoles + * @return + */ + private boolean hasSpecialRole(Set userRoles) { + if (userRoles == null) { + return false; + } + List allowedRoles = GlobalConstants.roleList; + return allowedRoles.stream().anyMatch(userRoles::contains); + } + /** * 从档案详情中提取文件信息 * @param detailsList