feat(用户身份状态管理): 成员移出组织/项目,原指派给这个成员的工作项/其他该怎么显示

1. 项目管理中获取用户信息时判断用户是否已离职,若已离职进行标记
2. 项目可选成员列表中需排除已离职用户
This commit is contained in:
OTTO 2024-09-29 15:42:53 +08:00
parent e173dbbd8c
commit f3a28c8aae
2 changed files with 22 additions and 1 deletions

View File

@ -3,6 +3,7 @@ package com.microservices.pms.common.service.impl;
import com.alibaba.fastjson2.JSONArray;
import com.microservices.common.core.constant.SecurityConstants;
import com.microservices.common.core.constant.UserConstants;
import com.microservices.common.core.enums.UserIdentityStatus;
import com.microservices.common.core.exception.ServiceException;
import com.microservices.common.core.utils.StringUtils;
import com.microservices.common.httpClient.util.GitLinkRequestHelper;
@ -146,6 +147,12 @@ public class PmsCommonServiceImpl implements IPmsCommonService
if(sysUser==null){
return null;
}
SysUserDeptRole userIdentity = FeignUtils.getReturnData(
remoteUserService.getAllStatusUserIdentityByDeptIdAndUserId(SecurityUtils.getDeptId(), sysUser.getUserId(), SecurityConstants.INNER)
);
if (userIdentity != null && UserIdentityStatus.QUIT.getState().equals(userIdentity.getState())) {
sysUser.setNickName(sysUser.getNickName() + "(已离职)");
}
return sysUser.toSimpleSysUser(gitLinkRequestHelper.gitLinkUrl);
}

View File

@ -1,5 +1,7 @@
package com.microservices.pms.project.service.impl;
import com.microservices.common.core.constant.SecurityConstants;
import com.microservices.common.core.enums.UserIdentityStatus;
import com.microservices.common.core.exception.ServiceException;
import com.microservices.common.core.utils.PageUtils;
import com.microservices.common.core.web.page.GenericsTableDataInfo;
@ -12,7 +14,10 @@ import com.microservices.pms.project.domain.vo.PmsProjectMembersSearchVo;
import com.microservices.pms.project.mapper.PmsProjectMembersMapper;
import com.microservices.pms.project.service.IPmsProjectMembersService;
import com.microservices.pms.project.service.IPmsProjectService;
import com.microservices.system.api.RemoteUserService;
import com.microservices.system.api.domain.SimpleSysUser;
import com.microservices.system.api.domain.SysUserDeptRole;
import com.microservices.system.api.utils.FeignUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
@ -21,6 +26,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 项目-成员Service业务层处理
@ -40,6 +46,8 @@ public class PmsProjectMembersServiceImpl implements IPmsProjectMembersService
@Autowired
@Lazy
private IPmsProjectService pmsProjectService;
@Autowired
private RemoteUserService remoteUserService;
/**
* 查询项目-成员
@ -67,8 +75,14 @@ public class PmsProjectMembersServiceImpl implements IPmsProjectMembersService
@Override
public GenericsTableDataInfo<PmsProjectMembersDetailVo> selectPmsProjectMembersList(PmsProjectMembers pmsProjectMembers)
{
pmsProjectService.selectAndCheckPmsProjectById(pmsProjectMembers.getPmsProjectId());
PmsProject pmsProject = pmsProjectService.selectAndCheckPmsProjectById(pmsProjectMembers.getPmsProjectId());
List<PmsProjectMembers> list = pmsProjectMembersMapper.selectPmsProjectMembersList(pmsProjectMembers);
list = list.stream().filter(x -> {
SysUserDeptRole userIdentity = FeignUtils.getReturnData(
remoteUserService.getAllStatusUserIdentityByDeptIdAndUserId(pmsProject.getDeptId(), x.getUserId(), SecurityConstants.INNER)
);
return userIdentity != null && !UserIdentityStatus.QUIT.getState().equals(userIdentity.getState());
}).collect(Collectors.toList());
return PageUtils.toPage(list, x -> {
PmsProjectMembersDetailVo pmsProjectMembersDetailVo = new PmsProjectMembersDetailVo();
BeanUtils.copyProperties(x, pmsProjectMembersDetailVo);