项目状态看板根据权限筛选
This commit is contained in:
+38
-5
@@ -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<Map<String,Object>> scheduleInfoList(ProjectLibraryBase projectLibraryBase, HttpServletRequest req) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
Integer isViewer = sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId());
|
||||
Set<String> projectIds = new HashSet<>();
|
||||
//根据项目用户权限表筛选有权访问的项目
|
||||
Set<String> permissionProjectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId());
|
||||
if (ObjectUtils.isNotEmpty(permissionProjectIds)) {
|
||||
projectIds.addAll(permissionProjectIds);
|
||||
}
|
||||
if (isViewer > 0) {
|
||||
//如果是Viewer,根据配置的品牌筛选可访问的项目
|
||||
List<String> brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
|
||||
if (ObjectUtils.isNotEmpty(brandTypes)) {
|
||||
QueryWrapper<ProjectLibraryBase> 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<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseService.list(queryWrapper);
|
||||
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseService.getList(projectLibraryBase);
|
||||
if (!sysUserService.isAdministrator()) {
|
||||
projectLibraryBaseList = projectLibraryBaseList.stream().filter(project -> projectIds.contains(project.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
List<Map<String,Object>> result = new ArrayList<>();
|
||||
if(projectLibraryBaseList.size() != 0){
|
||||
|
||||
Reference in New Issue
Block a user