维修员、材料员、库管员强制维护签名

This commit is contained in:
hayu 2025-10-13 18:44:17 +08:00
parent 150b01d3cc
commit deb5f9ce89
4 changed files with 67 additions and 4 deletions

View File

@ -575,4 +575,9 @@ public class GlobalConstants {
*/
public static final List<String> allowedRoles = Arrays.asList("ywgly", "16", "gy");
/**
* 角色材料员库管员维修员
*/
public static final List<String> roleList = Arrays.asList("cly", "库管员", "wxy");
}

View File

@ -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

View File

@ -119,4 +119,10 @@ public interface ArchivesService {
* @return
*/
AjaxResult getSign(ElcSignatureInfo info);
/**
* 根据用户查询电子签名
* @param info
*/
AjaxResult getSignatureByUser(ElcSignatureInfo info);
}

View File

@ -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<String> 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<String> userRoles) {
if (userRoles == null) {
return false;
}
List<String> allowedRoles = GlobalConstants.roleList;
return allowedRoles.stream().anyMatch(userRoles::contains);
}
/**
* 从档案详情中提取文件信息
* @param detailsList