项目状态看板根据权限筛选
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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.jero.common.constant.enums.CutEnum;
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
import com.jero.common.system.query.QueryGenerator;
|
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.ConditionAssessmentEO;
|
||||||
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
|
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
|
||||||
import com.jero.modules.project.entity.ProjectLibraryBase;
|
import com.jero.modules.project.entity.ProjectLibraryBase;
|
||||||
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
|
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
|
||||||
import com.jero.modules.project.enums.CertificationProgressEnum;
|
import com.jero.modules.project.enums.*;
|
||||||
import com.jero.modules.project.enums.CurrentProjectStatusEnum;
|
import com.jero.modules.project.mapper.ProjectUserPermissionMapper;
|
||||||
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.service.IConditionAssessmentEOService;
|
import com.jero.modules.project.service.IConditionAssessmentEOService;
|
||||||
import com.jero.modules.project.service.IProjectStatusBoardService;
|
import com.jero.modules.project.service.IProjectStatusBoardService;
|
||||||
import com.jero.modules.project.vo.TimeNodeVO;
|
import com.jero.modules.project.vo.TimeNodeVO;
|
||||||
import com.jero.modules.system.entity.SysDictItem;
|
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 com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -49,6 +51,14 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
|||||||
private ProjectTaskInventoryEOServiceImpl projectTaskInventoryEOService;
|
private ProjectTaskInventoryEOServiceImpl projectTaskInventoryEOService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysDictItemServiceImpl sysDictItemServiceImpl;
|
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
|
@Override
|
||||||
public List<Map<String,Object>> scheduleInfoList(ProjectLibraryBase projectLibraryBase, HttpServletRequest req) {
|
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())){
|
if(StringUtils.isNotBlank(projectLibraryBase.getProjectName())){
|
||||||
projectLibraryBase.setProjectName(projectLibraryBase.getProjectName().replace("*",""));
|
projectLibraryBase.setProjectName(projectLibraryBase.getProjectName().replace("*",""));
|
||||||
}
|
}
|
||||||
@@ -163,6 +193,9 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
|||||||
// //项目库信息
|
// //项目库信息
|
||||||
// List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseService.list(queryWrapper);
|
// List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseService.list(queryWrapper);
|
||||||
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseService.getList(projectLibraryBase);
|
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<>();
|
List<Map<String,Object>> result = new ArrayList<>();
|
||||||
if(projectLibraryBaseList.size() != 0){
|
if(projectLibraryBaseList.size() != 0){
|
||||||
|
|||||||
Reference in New Issue
Block a user