feat: 外标引用标准列表权限
This commit is contained in:
+71
-10
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.laws.common.service.impl;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@@ -32,6 +33,7 @@ import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
|
||||
import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspectContent;
|
||||
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardAuthUserMapper;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthDeptService;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardInspectContentService;
|
||||
@@ -52,11 +54,13 @@ import com.jero.modules.personal.service.ILawsStandardCollectionService;
|
||||
import com.jero.modules.split.common.FileUnZip;
|
||||
import com.jero.modules.split.entity.SarFileSplitInfoEO;
|
||||
import com.jero.modules.split.service.ISarFileSplitInfoService;
|
||||
import com.jero.modules.sys.service.ILawsGradeService;
|
||||
import com.jero.modules.system.entity.SysDepart;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysDepartService;
|
||||
import com.jero.modules.system.service.ISysDictItemService;
|
||||
import com.jero.modules.system.service.ISysUserDepartService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.system.util.SysWaterMarkUtil;
|
||||
import com.jero.modules.system.util.UserUtils;
|
||||
@@ -201,6 +205,24 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
DECRYPT_SECRET_KEY = decryptSecretKey;
|
||||
}
|
||||
|
||||
@Resource
|
||||
private ISysUserService sysUserRoleService;
|
||||
|
||||
@Resource
|
||||
private ISysUserDepartService sysUserDepartService;
|
||||
|
||||
@Resource
|
||||
private ILawsGradeService gradeService;
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardAuthUserMapper authUserMapper;
|
||||
|
||||
@Value("#{'${adminRoleCode}'.split(',')}")
|
||||
private List<String> adminRoleCodeList;
|
||||
|
||||
@Value("#{'${enterpriseDetailRoleCode}'.split(',')}")
|
||||
private List<String> enterpriseDetailRoleCodeList;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/8/23 16:57
|
||||
@@ -913,7 +935,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
lawsNodeRelationService.addRelation(standardSystem, standardNumber, id);
|
||||
|
||||
// 企标授权部门处理
|
||||
if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(module)) {
|
||||
if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(module) ||
|
||||
TableNameEnum.FOREIGN_REGULATIONS.getValue().equals(module)) {
|
||||
Object authDept = parameterMap.get(FieldCommon.AUTH_DEPT);
|
||||
if (authDept != null) {
|
||||
esAuthUserService.resetAuthDept(id, parameterMap.get(FieldCommon.AUTH_DEPT).toString());
|
||||
@@ -1302,7 +1325,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
List<EnterpriseStandardAuthDept> authDeptList = enterpriseAuthDeptService.list(authDeptWrapper);
|
||||
|
||||
// 将authDeptList的所有auth_dept取出来转换成逗号拼接的字符串
|
||||
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
|
||||
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue()) ||
|
||||
module.equals(TableNameEnum.FOREIGN_REGULATIONS.getValue())) {
|
||||
String authDept = authDeptList.stream().map(EnterpriseStandardAuthDept::getAuthDept)
|
||||
.collect(Collectors.joining(","));
|
||||
initMap.put(FieldCommon.AUTH_DEPT, authDept);
|
||||
@@ -2092,7 +2116,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
// 拼接多表关联查询条件
|
||||
Set<String> idSet = new HashSet<>();
|
||||
boolean idSearch = false;
|
||||
// 企标独有权限
|
||||
// 授权部门
|
||||
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
|
||||
// 授权部门
|
||||
String authDept = (String) parameterMap.get(FieldCommon.AUTH_DEPT);
|
||||
@@ -2106,15 +2130,52 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
||||
parameterMap.remove(FieldCommon.AUTH_DEPT);
|
||||
}
|
||||
}
|
||||
if (module.equals(TableNameEnum.FOREIGN_REGULATIONS.getValue())) {
|
||||
// 外标判断当前登陆人是不是汽车研究总院及子部门的员工,如果是则可以查看引进标准,不做任何操作
|
||||
// 如果不是则需要将引进标准的id从所有id中排除掉
|
||||
// 外标引用标准
|
||||
// 如果当前登陆人是那几种管理员角色,则不需要授权部门筛选
|
||||
String userId = UserUtils.getUserId();
|
||||
SysUser user = sysUserService.getById(userId);
|
||||
// 管理员有所有外标的权限
|
||||
List<String> roleList = sysUserRoleService.getRole(user.getUsername());
|
||||
adminRoleCodeList.addAll(enterpriseDetailRoleCodeList);
|
||||
if (module.equals(TableNameEnum.FOREIGN_REGULATIONS.getValue())
|
||||
&& roleList != null
|
||||
&& roleList.stream().noneMatch(adminRoleCodeList::contains)) {
|
||||
// 获取汽车研发总院及其所有子部门
|
||||
List<SysDepartTreeModel> departList = departService.queryTreeByKeyWord("汽车研究总院");
|
||||
List<String> departIdList = departList.stream().map(SysDepartTreeModel::getId).collect(Collectors.toList());
|
||||
String userId = UserUtils.getUserId();
|
||||
// sysUserService.getUserByDepIds()
|
||||
|
||||
List<String> departIdList = departService.getAllId(departList);
|
||||
List<SysUser> userByDepIds = sysUserService.getUserByDepIds(departIdList, user.getUsername());
|
||||
List<LawsOverseasStandard> list = lawsOverseasStandardService.list();
|
||||
List<String> allFbIdList = list.stream().map(LawsOverseasStandard::getId).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<LawsTreeNode> treeNodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
treeNodeLambdaQueryWrapper.eq(LawsTreeNode::getNodeName, "引进标准");
|
||||
treeNodeLambdaQueryWrapper.eq(LawsTreeNode::getModuleCode, TableNameEnum.FOREIGN_REGULATIONS.getValue());
|
||||
LawsTreeNode node = lawsTreeNodeService.getOne(treeNodeLambdaQueryWrapper);
|
||||
// 获取引进标准的id
|
||||
LambdaQueryWrapper<LawsNodeRelation> nodeRelationLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
nodeRelationLambdaQueryWrapper.eq(LawsNodeRelation::getNodeId, node.getId());
|
||||
List<LawsNodeRelation> fbList = lawsNodeRelationService.list(nodeRelationLambdaQueryWrapper);
|
||||
List<String> fbIdList = fbList.stream().map(LawsNodeRelation::getUniqueRelationFlag).collect(Collectors.toList());
|
||||
idSearch = true;
|
||||
// 外标判断当前登陆人是不是汽车研究总院及子部门的员工,如果是则根据授权部门进行权限限制
|
||||
// 如果不是则需要将引进标准的id从所有id中排除掉
|
||||
if (!CollectionUtils.isEmpty(userByDepIds)) {
|
||||
LambdaQueryWrapper<EnterpriseStandardAuthDept> esAdWrapper = new LambdaQueryWrapper<>();
|
||||
// 查询当前用户的部门
|
||||
List<SysDepart> userDepartList = departService.queryUserDeparts(user.getId());
|
||||
// 找出授权部门表有的数据
|
||||
List<String> userDepartIdList = userDepartList.stream().map(SysDepart::getId).collect(Collectors.toList());
|
||||
esAdWrapper.in(!userDepartIdList.isEmpty(), EnterpriseStandardAuthDept::getAuthDept, userDepartIdList);
|
||||
esAdWrapper.in(!fbIdList.isEmpty(), EnterpriseStandardAuthDept::getStandardId, fbIdList);
|
||||
esAdWrapper.isNull(EnterpriseStandardAuthDept::getAuthExpireDate);
|
||||
List<EnterpriseStandardAuthDept> authDeptFb = enterpriseAuthDeptService.list(esAdWrapper);
|
||||
List<String> authDeptIdList = authDeptFb.stream().map(EnterpriseStandardAuthDept::getStandardId).collect(Collectors.toList());
|
||||
if (fbIdList.size() == authDeptIdList.size()) {
|
||||
idSearch = false;
|
||||
}
|
||||
fbIdList.removeAll(authDeptIdList);
|
||||
}
|
||||
allFbIdList.removeAll(fbIdList);
|
||||
idSet.addAll(allFbIdList);
|
||||
}
|
||||
// 体系
|
||||
String standardSystem = (String) parameterMap.get(FieldCommon.STANDARD_SYSTEM);
|
||||
|
||||
Reference in New Issue
Block a user