feat: 外标引用标准列表权限
This commit is contained in:
+7
@@ -156,4 +156,11 @@ public interface ISysDepartService extends IService<SysDepart>{
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<SysDepart> queryDeptByPid(String pid);
|
List<SysDepart> queryDeptByPid(String pid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有节点的Id
|
||||||
|
* @param departList
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<String> getAllId(List<SysDepartTreeModel> departList);
|
||||||
}
|
}
|
||||||
|
|||||||
+33
@@ -558,6 +558,39 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
|
|||||||
return this.baseMapper.queryDeptByPid(pid);
|
return this.baseMapper.queryDeptByPid(pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取树形结构中所有节点的ID
|
||||||
|
* @param departList 树形结构的根节点列表
|
||||||
|
* @return 包含所有节点ID的列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<String> getAllId(List<SysDepartTreeModel> departList) {
|
||||||
|
List<String> ids = new ArrayList<>();
|
||||||
|
for (SysDepartTreeModel depart : departList) {
|
||||||
|
collectIds(depart, ids);
|
||||||
|
}
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归收集节点ID
|
||||||
|
* @param node 当前节点
|
||||||
|
* @param ids 收集到的ID列表
|
||||||
|
*/
|
||||||
|
private static void collectIds(SysDepartTreeModel node, List<String> ids) {
|
||||||
|
if (node == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ids.add(node.getId()); // 添加当前节点的ID
|
||||||
|
List<SysDepartTreeModel> children = node.getChildren();
|
||||||
|
if (children != null) {
|
||||||
|
for (SysDepartTreeModel child : children) {
|
||||||
|
collectIds(child, ids); // 递归处理子节点
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据关键字筛选部门信息
|
* 根据关键字筛选部门信息
|
||||||
* @param keyWord
|
* @param keyWord
|
||||||
|
|||||||
+71
-10
@@ -1,6 +1,7 @@
|
|||||||
package com.jero.modules.laws.common.service.impl;
|
package com.jero.modules.laws.common.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
|
import cn.hutool.core.lang.tree.TreeUtil;
|
||||||
import cn.hutool.core.text.CharSequenceUtil;
|
import cn.hutool.core.text.CharSequenceUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
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.documenttool.mapper.DocumentSplitMapper;
|
||||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
|
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
|
||||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardInspectContent;
|
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.EnterpriseStandardAuthDeptService;
|
||||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
|
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
|
||||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardInspectContentService;
|
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.common.FileUnZip;
|
||||||
import com.jero.modules.split.entity.SarFileSplitInfoEO;
|
import com.jero.modules.split.entity.SarFileSplitInfoEO;
|
||||||
import com.jero.modules.split.service.ISarFileSplitInfoService;
|
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.SysDepart;
|
||||||
import com.jero.modules.system.entity.SysDictItem;
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
import com.jero.modules.system.entity.SysUser;
|
import com.jero.modules.system.entity.SysUser;
|
||||||
import com.jero.modules.system.service.ISysDepartService;
|
import com.jero.modules.system.service.ISysDepartService;
|
||||||
import com.jero.modules.system.service.ISysDictItemService;
|
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.service.ISysUserService;
|
||||||
import com.jero.modules.system.util.SysWaterMarkUtil;
|
import com.jero.modules.system.util.SysWaterMarkUtil;
|
||||||
import com.jero.modules.system.util.UserUtils;
|
import com.jero.modules.system.util.UserUtils;
|
||||||
@@ -201,6 +205,24 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
DECRYPT_SECRET_KEY = decryptSecretKey;
|
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
|
* @Author: liao
|
||||||
* @Date: 2023/8/23 16:57
|
* @Date: 2023/8/23 16:57
|
||||||
@@ -913,7 +935,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
lawsNodeRelationService.addRelation(standardSystem, standardNumber, id);
|
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);
|
Object authDept = parameterMap.get(FieldCommon.AUTH_DEPT);
|
||||||
if (authDept != null) {
|
if (authDept != null) {
|
||||||
esAuthUserService.resetAuthDept(id, parameterMap.get(FieldCommon.AUTH_DEPT).toString());
|
esAuthUserService.resetAuthDept(id, parameterMap.get(FieldCommon.AUTH_DEPT).toString());
|
||||||
@@ -1302,7 +1325,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
List<EnterpriseStandardAuthDept> authDeptList = enterpriseAuthDeptService.list(authDeptWrapper);
|
List<EnterpriseStandardAuthDept> authDeptList = enterpriseAuthDeptService.list(authDeptWrapper);
|
||||||
|
|
||||||
// 将authDeptList的所有auth_dept取出来转换成逗号拼接的字符串
|
// 将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)
|
String authDept = authDeptList.stream().map(EnterpriseStandardAuthDept::getAuthDept)
|
||||||
.collect(Collectors.joining(","));
|
.collect(Collectors.joining(","));
|
||||||
initMap.put(FieldCommon.AUTH_DEPT, authDept);
|
initMap.put(FieldCommon.AUTH_DEPT, authDept);
|
||||||
@@ -2092,7 +2116,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
// 拼接多表关联查询条件
|
// 拼接多表关联查询条件
|
||||||
Set<String> idSet = new HashSet<>();
|
Set<String> idSet = new HashSet<>();
|
||||||
boolean idSearch = false;
|
boolean idSearch = false;
|
||||||
// 企标独有权限
|
// 授权部门
|
||||||
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
|
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
|
||||||
// 授权部门
|
// 授权部门
|
||||||
String authDept = (String) parameterMap.get(FieldCommon.AUTH_DEPT);
|
String authDept = (String) parameterMap.get(FieldCommon.AUTH_DEPT);
|
||||||
@@ -2106,15 +2130,52 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
parameterMap.remove(FieldCommon.AUTH_DEPT);
|
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<SysDepartTreeModel> departList = departService.queryTreeByKeyWord("汽车研究总院");
|
||||||
List<String> departIdList = departList.stream().map(SysDepartTreeModel::getId).collect(Collectors.toList());
|
List<String> departIdList = departService.getAllId(departList);
|
||||||
String userId = UserUtils.getUserId();
|
List<SysUser> userByDepIds = sysUserService.getUserByDepIds(departIdList, user.getUsername());
|
||||||
// sysUserService.getUserByDepIds()
|
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);
|
String standardSystem = (String) parameterMap.get(FieldCommon.STANDARD_SYSTEM);
|
||||||
|
|||||||
Reference in New Issue
Block a user