diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java index 77c0e4c95..a63cbbc76 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectStatusBoardServiceImpl.java @@ -4,23 +4,25 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.constant.enums.CutEnum; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.LoginUser; import com.jero.modules.project.entity.ConditionAssessmentEO; import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectTaskInventoryEO; -import com.jero.modules.project.enums.CertificationProgressEnum; -import com.jero.modules.project.enums.CurrentProjectStatusEnum; -import com.jero.modules.project.enums.InventoryAffirmStatusEnum; -import com.jero.modules.project.enums.ReviewResultEnum; -import com.jero.modules.project.enums.TaskAffirmStatusEnum; +import com.jero.modules.project.enums.*; +import com.jero.modules.project.mapper.ProjectUserPermissionMapper; import com.jero.modules.project.service.IConditionAssessmentEOService; import com.jero.modules.project.service.IProjectStatusBoardService; import com.jero.modules.project.vo.TimeNodeVO; import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.mapper.SysRoleMapper; +import com.jero.modules.system.service.IProjectUserBrandService; +import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import lombok.SneakyThrows; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -49,6 +51,14 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService private ProjectTaskInventoryEOServiceImpl projectTaskInventoryEOService; @Autowired private SysDictItemServiceImpl sysDictItemServiceImpl; + @Autowired + private SysRoleMapper sysRoleMapper; + @Autowired + private ProjectUserPermissionMapper projectUserPermissionMapper; + @Autowired + private IProjectUserBrandService projectUserBrandService; + @Autowired + private ISysUserService sysUserService; /** @@ -153,6 +163,26 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService */ @Override public List> scheduleInfoList(ProjectLibraryBase projectLibraryBase, HttpServletRequest req) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + Integer isViewer = sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()); + Set projectIds = new HashSet<>(); + //根据项目用户权限表筛选有权访问的项目 + Set permissionProjectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId()); + if (ObjectUtils.isNotEmpty(permissionProjectIds)) { + projectIds.addAll(permissionProjectIds); + } + if (isViewer > 0) { + //如果是Viewer,根据配置的品牌筛选可访问的项目 + List brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId()); + if (ObjectUtils.isNotEmpty(brandTypes)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("brand",brandTypes); + if (ObjectUtils.isNotEmpty(projectLibraryBaseService.list(queryWrapper))) { + projectIds.addAll(projectLibraryBaseService.list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet())); + } + } + } + if(StringUtils.isNotBlank(projectLibraryBase.getProjectName())){ projectLibraryBase.setProjectName(projectLibraryBase.getProjectName().replace("*","")); } @@ -163,6 +193,9 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService // //项目库信息 // List projectLibraryBaseList = projectLibraryBaseService.list(queryWrapper); List projectLibraryBaseList = projectLibraryBaseService.getList(projectLibraryBase); + if (!sysUserService.isAdministrator()) { + projectLibraryBaseList = projectLibraryBaseList.stream().filter(project -> projectIds.contains(project.getId())).collect(Collectors.toList()); + } List> result = new ArrayList<>(); if(projectLibraryBaseList.size() != 0){