diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index bbf4b509..423040b2 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -2146,15 +2146,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService { List userByDepIds = sysUserService.getUserByDepIds(departIdList, user.getUsername()); List list = lawsOverseasStandardService.list(); List allFbIdList = list.stream().map(LawsOverseasStandard::getId).collect(Collectors.toList()); - LambdaQueryWrapper treeNodeLambdaQueryWrapper = new LambdaQueryWrapper<>(); - treeNodeLambdaQueryWrapper.eq(LawsTreeNode::getNodeName, "引进标准"); - treeNodeLambdaQueryWrapper.eq(LawsTreeNode::getModuleCode, TableNameEnum.FOREIGN_REGULATIONS.getValue()); - LawsTreeNode node = lawsTreeNodeService.getOne(treeNodeLambdaQueryWrapper); - // 获取引进标准的id - LambdaQueryWrapper nodeRelationLambdaQueryWrapper = new LambdaQueryWrapper<>(); - nodeRelationLambdaQueryWrapper.eq(LawsNodeRelation::getNodeId, node.getId()); - List fbList = lawsNodeRelationService.list(nodeRelationLambdaQueryWrapper); - List fbIdList = fbList.stream().map(LawsNodeRelation::getUniqueRelationFlag).collect(Collectors.toList()); + List fbIdList = lawsOverseasStandardService.getAllAuthControlFbId(); idSearch = true; // 外标判断当前登陆人是不是汽车研究总院及子部门的员工,如果是则根据授权部门进行权限限制 // 如果不是则需要将引进标准的id从所有id中排除掉 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthUserService.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthUserService.java index d9f552a7..fd2792d0 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthUserService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthUserService.java @@ -102,4 +102,12 @@ public interface EnterpriseStandardAuthUserService extends IService roleList = sysUserRoleService.getRole(currentUser.getUsername()); + if (roleList != null && roleList.stream().anyMatch(adminRoleCodeList::contains)) { + return true; + } + // 能够查看所有企标详情的权限 + if (roleList != null && roleList.stream().anyMatch(enterpriseDetailRoleCodeList::contains)) { + return true; + } + // 判断是不是引用标准,不是引用标准不做权限校验 + List allAuthControlFbId = fbService.getAllAuthControlFbId(); + if (!allAuthControlFbId.contains(standardId)) { + return true; + } + // 获取当前用户的所在部门Id + // 查询当前用户的部门 + List userDepartList = departService.queryUserDeparts(userId); + List departIdList = userDepartList.stream().map(SysDepart::getId).collect(Collectors.toList()); + // 是引用标准就得判断权限 + LambdaQueryWrapper adWrapper = new LambdaQueryWrapper<>(); + adWrapper.in(EnterpriseStandardAuthDept::getAuthDept, departIdList); + adWrapper.eq(EnterpriseStandardAuthDept::getStandardId, standardId); + adWrapper.isNull(EnterpriseStandardAuthDept::getAuthExpireDate); + List list = authDeptService.list(adWrapper); + return !list.isEmpty(); + } + @Override public void delFlagSet(List> records) { String userId = UserUtils.getUserId(); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java index 0ad5ae47..900eb503 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsOverseasController.java @@ -7,16 +7,19 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.jero.common.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.exception.JeroBootException; import com.jero.common.util.MessageUtils; import com.jero.modules.activiti.process.fb.service.IProcessFbEntryChangeService; import com.jero.modules.laws.common.constant.FieldCommon; import com.jero.modules.laws.common.service.ILawsCommonService; import com.jero.modules.laws.customcompare.service.ILawsCustomCompareInfoService; +import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService; import com.jero.modules.laws.standard.entity.LawsUpdateRecord; import com.jero.modules.laws.standard.service.ILawsNodeRelationService; import com.jero.modules.laws.standard.service.ILawsUpdateRecordService; import com.jero.modules.personal.service.ILawsStandardCollectionService; import com.jero.modules.personal.service.ILawsStandardSharingService; +import com.jero.modules.sys.utils.UserUtils; import com.jero.modules.tag.entity.LawsTag; import com.jero.modules.tag.enums.TableNameEnum; import io.swagger.annotations.Api; @@ -57,6 +60,8 @@ public class LawsOverseasController { private IProcessFbEntryChangeService processFbEntryChangeService; @Resource private ILawsCustomCompareInfoService customCompareService; + @Resource + private EnterpriseStandardAuthUserService authUserService; private static final String MODULE_VALUE = TableNameEnum.FOREIGN_REGULATIONS.getValue(); @@ -141,6 +146,9 @@ public class LawsOverseasController { public Result> getByIdAndModule(@RequestParam(name="id", required = false) @ApiParam("主键") String id, @RequestParam(name="type") @ApiParam("类型(1详情,2新增编辑)") String type, @RequestParam(name="standardNumber", required = false) @ApiParam("标准编号") String standardNumber) { + if (!authUserService.fbDetailPermission(id, UserUtils.getUserId())) { + throw new JeroBootException("暂无该外标查看权限"); + } lawsCommonService.addLookHistory(id, type, MODULE_VALUE, standardNumber); return Result.OK(lawsCommonService.getByIdAndModule(id, MODULE_VALUE, type, standardNumber)); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsOverseasStandardService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsOverseasStandardService.java index 8294d0f6..e4d66ffd 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsOverseasStandardService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsOverseasStandardService.java @@ -78,4 +78,9 @@ public interface ILawsOverseasStandardService extends IService getAllAuthControlFbId(); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsOverseasStandardServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsOverseasStandardServiceImpl.java index 0862543a..349e6fa1 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsOverseasStandardServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsOverseasStandardServiceImpl.java @@ -3,10 +3,15 @@ package com.jero.modules.laws.standard.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.constant.CommonConstant; +import com.jero.modules.laws.standard.entity.LawsNodeRelation; import com.jero.modules.laws.standard.entity.LawsOverseasStandard; +import com.jero.modules.laws.standard.entity.LawsTreeNode; import com.jero.modules.laws.standard.mapper.LawsOverseasStandardMapper; +import com.jero.modules.laws.standard.service.ILawsNodeRelationService; import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; +import com.jero.modules.laws.standard.service.ILawsTreeNodeService; import com.jero.modules.personal.service.ILawsStandardCollectionService; +import com.jero.modules.tag.enums.TableNameEnum; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -14,8 +19,12 @@ import org.springframework.transaction.annotation.Transactional; import com.jero.common.exception.JeroBootException; import java.util.List; import java.util.Date; +import java.util.stream.Collectors; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.system.query.QueryGenerator; + +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -34,6 +43,12 @@ public class LawsOverseasStandardServiceImpl extends ServiceImpl getAllAuthControlFbId() { + List list = this.list(); + List allFbIdList = list.stream().map(LawsOverseasStandard::getId).collect(Collectors.toList()); + LambdaQueryWrapper treeNodeLambdaQueryWrapper = new LambdaQueryWrapper<>(); + treeNodeLambdaQueryWrapper.eq(LawsTreeNode::getNodeName, "引进标准"); + treeNodeLambdaQueryWrapper.eq(LawsTreeNode::getModuleCode, TableNameEnum.FOREIGN_REGULATIONS.getValue()); + LawsTreeNode node = lawsTreeNodeService.getOne(treeNodeLambdaQueryWrapper); + // 获取引进标准的id + LambdaQueryWrapper nodeRelationLambdaQueryWrapper = new LambdaQueryWrapper<>(); + nodeRelationLambdaQueryWrapper.eq(LawsNodeRelation::getNodeId, node.getId()); + List fbList = lawsNodeRelationService.list(nodeRelationLambdaQueryWrapper); + List fbIdList = fbList.stream().map(LawsNodeRelation::getUniqueRelationFlag).collect(Collectors.toList()); + return fbIdList; + } }