viewer根据责任领域筛选任务清单

This commit is contained in:
CD
2022-11-18 17:13:34 +08:00
parent 1e51819b28
commit b702a32c9e
3 changed files with 82 additions and 46 deletions
@@ -29,6 +29,7 @@ import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.entity.SysUserRole;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.IProjectUserDutyTerritoryService;
import com.jero.modules.system.service.ISysUserRoleService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
@@ -105,6 +106,8 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
private ISysUserService sysUserService;
@Autowired
private IFeishuService feishuService;
@Autowired
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
/**
* 保存
@@ -218,6 +221,18 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
}
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper);
//不是管理员,但是viewer
boolean administrator = sysUserService.isAdministrator();
boolean viewer = sysUserService.isViewer(currentUser.getId());
if (!administrator && viewer) {
//筛选符合条件的
List<String> dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId());
if (ObjectUtils.isNotEmpty(dutyTerritoryList)) {
projectLawsInventoryEOList = projectLawsInventoryEOList.stream().filter(e -> dutyTerritoryList.contains(e.getDutyTerritory())).collect(Collectors.toList());
} else {
return result;
}
}
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
List<String> projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList());
@@ -672,7 +687,8 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
{
//判断用户是否是管理员角色
boolean isAdministrator = false;
//判断用户是否是Viewer
boolean isViewer = sysUserService.isViewer(currentUser.getId());
//2022-08-24 判断当前登录用户是否是系统管理员 或 R&H Manager角色,如果是的话,看到的数据与studio一致。
List<SysUserRole> userRoleList = this.sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, currentUser.getId())); // 查询用户所有角色
if(CollectionUtils.isNotEmpty(userRoleList)){
@@ -709,7 +725,7 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
//是否是这条数据的认证工程师
boolean isHomologationEngineer = StringUtils.equals(projectTaskInventoryEO.getHomologationEngineerId(),currentUser.getId());
//是否是studio
boolean isStudio = StringUtils.equals(ProjectRoleEnum.STUDIO_ENGINEER.getValue(),String.valueOf(isProjectRole)) || isAdministrator;
boolean isStudio = StringUtils.equals(ProjectRoleEnum.STUDIO_ENGINEER.getValue(),String.valueOf(isProjectRole)) || isAdministrator ;
if(isStudio){
roleCode = ProjectRoleEnum.STUDIO_ENGINEER.getValue();
}
@@ -777,27 +793,27 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
* 2022-07-07修改禅道 55588问题。 只有studio可以查看所有已经启动了的流程
* studio:查询所有(已启动流程的数据) , 包含自己待办、已办
*/
if(isStudio || (showVerify || showDesign || showPrehomo)){
if (isStudio || (showVerify || showDesign || showPrehomo) || isViewer) {
actiProcInstId = projectTaskInventoryDetailEO.getActiProcInstId();
if(isStudio || showDesign){
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue())){
if (isStudio || showDesign || isViewer) {
if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())) {
designPid = actiProcInstId;
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetailEO.getUserId())){
if (StringUtils.equals(currentUser.getId(), projectTaskInventoryDetailEO.getUserId())) {
designTaskId = projectTaskInventoryDetailEO.getTaskId();
designTaskStatus = projectTaskInventoryDetailEO.getStatus();
designTaskDefinitionKey = projectTaskInventoryDetailEO.getTaskDefinitionKey();
designTaskDetailId = projectTaskInventoryDetailEO.getId();
}else {
if(StringUtils.isEmpty(designTaskId)){
} else {
if (StringUtils.isEmpty(designTaskId)) {
designTaskId = projectTaskInventoryDetailEO.getTaskId();
}
if(StringUtils.isEmpty(designTaskStatus)){
if (StringUtils.isEmpty(designTaskStatus)) {
designTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
}
if(StringUtils.isEmpty(designTaskDefinitionKey)){
if (StringUtils.isEmpty(designTaskDefinitionKey)) {
designTaskDefinitionKey = "";
}
if(StringUtils.isEmpty(designTaskDetailId)){
if (StringUtils.isEmpty(designTaskDetailId)) {
designTaskDetailId = projectTaskInventoryDetailEO.getId();
}
}
@@ -809,25 +825,25 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
projectTaskInventoryEO.setDesignTaskDetailId(designTaskDetailId);
}
}
if(isStudio || showPrehomo){
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){
if (isStudio || showPrehomo || isViewer) {
if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.PREHOMOQRLC.getValue())) {
prehomoPid = actiProcInstId;
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetailEO.getUserId())){
if (StringUtils.equals(currentUser.getId(), projectTaskInventoryDetailEO.getUserId())) {
prehomoTaskId = projectTaskInventoryDetailEO.getTaskId();
prehomoTaskStatus = projectTaskInventoryDetailEO.getStatus();
prehomoTaskDefinitionKey = projectTaskInventoryDetailEO.getTaskDefinitionKey();
prehomoTaskDetailId = projectTaskInventoryDetailEO.getId();
}else {
if(StringUtils.isEmpty(prehomoTaskId)){
} else {
if (StringUtils.isEmpty(prehomoTaskId)) {
prehomoTaskId = projectTaskInventoryDetailEO.getTaskId();
}
if(StringUtils.isEmpty(prehomoTaskStatus)){
if (StringUtils.isEmpty(prehomoTaskStatus)) {
prehomoTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
}
if(StringUtils.isEmpty(prehomoTaskDefinitionKey)){
if (StringUtils.isEmpty(prehomoTaskDefinitionKey)) {
prehomoTaskDefinitionKey = "";
}
if(StringUtils.isEmpty(prehomoTaskDetailId)){
if (StringUtils.isEmpty(prehomoTaskDetailId)) {
prehomoTaskDetailId = projectTaskInventoryDetailEO.getId();
}
}
@@ -839,25 +855,25 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
projectTaskInventoryEO.setPrehomoTaskDetailId(prehomoTaskDetailId);
}
}
if(isStudio || showVerify){
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){
if (isStudio || showVerify || isViewer) {
if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.YZFHXSCLC.getValue())) {
verifyPid = actiProcInstId;
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetailEO.getUserId())){
if (StringUtils.equals(currentUser.getId(), projectTaskInventoryDetailEO.getUserId())) {
verifyTaskId = projectTaskInventoryDetailEO.getTaskId();
verifyTaskStatus = projectTaskInventoryDetailEO.getStatus();
verifyTaskDefinitionKey = projectTaskInventoryDetailEO.getTaskDefinitionKey();
verifyTaskDetailId = projectTaskInventoryDetailEO.getId();
}else {
if(StringUtils.isEmpty(verifyTaskId)){
} else {
if (StringUtils.isEmpty(verifyTaskId)) {
verifyTaskId = projectTaskInventoryDetailEO.getTaskId();
}
if(StringUtils.isEmpty(verifyTaskStatus)){
if (StringUtils.isEmpty(verifyTaskStatus)) {
verifyTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
}
if(StringUtils.isEmpty(verifyTaskDefinitionKey)){
if (StringUtils.isEmpty(verifyTaskDefinitionKey)) {
verifyTaskDefinitionKey = "";
}
if(StringUtils.isEmpty(verifyTaskDetailId)){
if (StringUtils.isEmpty(verifyTaskDetailId)) {
verifyTaskDetailId = projectTaskInventoryDetailEO.getId();
}
}
@@ -869,34 +885,34 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
projectTaskInventoryEO.setVerifyTaskDetailId(verifyTaskDetailId);
}
}
if(isStudio){
if (isStudio) {
projectTaskInventoryEO.setCertificationProgress(projectTaskInventoryEO.getCertificationProgress());
projectTaskInventoryEO.setCertificationProgressRemark(projectTaskInventoryEO.getCertificationProgressRemark());
}
}else {
if((isRegulationOwner || isHomologationEngineer)){
} else {
if ((isRegulationOwner || isHomologationEngineer)) {
projectTaskInventoryEO.setCertificationProgress(projectTaskInventoryEO.getCertificationProgress());
projectTaskInventoryEO.setCertificationProgressRemark(projectTaskInventoryEO.getCertificationProgressRemark());
}else {
} else {
projectTaskInventoryEO.setCertificationProgress("");
projectTaskInventoryEO.setCertificationProgressRemark("");
}
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetailEO.getUserId())){
if (StringUtils.equals(currentUser.getId(), projectTaskInventoryDetailEO.getUserId())) {
actiProcInstId = projectTaskInventoryDetailEO.getActiProcInstId();
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue())){
if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())) {
projectTaskInventoryEO.setDesignPId(actiProcInstId);
projectTaskInventoryEO.setDesignTaskId(projectTaskInventoryDetailEO.getTaskId());
projectTaskInventoryEO.setDesignTaskStatus(projectTaskInventoryDetailEO.getStatus());
projectTaskInventoryEO.setDesignTaskDefinitionKey(projectTaskInventoryDetailEO.getTaskDefinitionKey());
projectTaskInventoryEO.setDesignTaskDetailId(projectTaskInventoryDetailEO.getId());
}else if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){
} else if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.PREHOMOQRLC.getValue())) {
projectTaskInventoryEO.setPrehomoPId(actiProcInstId);
projectTaskInventoryEO.setPrehomoTaskId(projectTaskInventoryDetailEO.getTaskId());
projectTaskInventoryEO.setPrehomoTaskStatus(projectTaskInventoryDetailEO.getStatus());
projectTaskInventoryEO.setPrehomoTaskDefinitionKey(projectTaskInventoryDetailEO.getTaskDefinitionKey());
projectTaskInventoryEO.setPrehomoTaskDetailId(projectTaskInventoryDetailEO.getId());
}else if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){
} else if (StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(), FlowTypeEnum.YZFHXSCLC.getValue())) {
projectTaskInventoryEO.setVerifyPId(actiProcInstId);
projectTaskInventoryEO.setVerifyTaskId(projectTaskInventoryDetailEO.getTaskId());
projectTaskInventoryEO.setVerifyTaskStatus(projectTaskInventoryDetailEO.getStatus());
@@ -910,7 +926,7 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
}
/*if(StringUtils.isNotEmpty(actiProcInstId) && (isRegulationOwner || isHomologationEngineer || isStudio)){*/
if(((isRegulationOwner || isHomologationEngineer || isStudio) || (showVerify || showDesign || showPrehomo))){
if (((isRegulationOwner || isHomologationEngineer || isStudio) || (showVerify || showDesign || showPrehomo)) || isViewer) {
projectTaskInventoryEO.setShowFlag(TaskStatusEnum.SHOW_FLAG.getValue());
}