feat(REQ-3714): 不过滤当前操作人

This commit is contained in:
zhanghonghao 2025-03-12 21:28:18 +08:00
parent 04bf864e93
commit cae7d05157

View File

@ -199,17 +199,17 @@ public class NodeUserCheckServiceImpl implements NodeUserCheckService {
// 协同节点关联的顶级部门节点列表
List<Long> nodeIds = cooperateShipRespList.stream().map(OrgCooperateShipDTO::getOrganizationalNodeId).distinct().collect(Collectors.toList());
List<Long> nodePersonIds = Lists.newArrayList(req.getPersonIds());
nodePersonIds.add(personId);
ListNodeUserReq query = ListNodeUserReq.builder()
.topNodeIds(nodeIds)
.personIds(nodePersonIds)
.needs(ListNodeUserReq.Needs.builder().job(true).build())
.findByAncestorNodeId(true)
.build();
// 查询当前登录及待删除人员在当前项目中的参与记录仅限当前登录单位
// 查询待删除人员在当前项目中的参与记录仅限当前登录单位
List<NodeUserDTO> nodeUsers = nodeUserService.list(query);
// 校验当前入参
checkPermission(nodeUsers);
// 校验当前操作人
checkPermission(nodeUsers, personId, nodePersonIds);
if (CollUtil.isEmpty(nodeUsers)) {
req.getPersonIds().forEach(e -> {
@ -217,10 +217,12 @@ public class NodeUserCheckServiceImpl implements NodeUserCheckService {
checkFailInfo.setType(CheckInfoTypeEnum.NOT_IN_JURISDICTION);
addFailInfo(failInfoMap, e, checkFailInfo);
});
}
if (CollUtil.isEmpty(nodeUsers)) {
transformFailMap(failInfoMap, resultList);
return resultList;
}
nodeUsers.stream().filter(e -> e.getIdentityType().equals(IdentityType.WORKER_LEADER.getCode())).findAny().ifPresent(e -> {
BatchDeleteNodeUserCheckResp.CheckFailInfo checkFailInfo = new BatchDeleteNodeUserCheckResp.CheckFailInfo();
checkFailInfo.setType(CheckInfoTypeEnum.TEAM_LEADER);
@ -323,9 +325,11 @@ public class NodeUserCheckServiceImpl implements NodeUserCheckService {
}
}
private void checkPermission(List<NodeUserDTO> nodeUsers) {
private void checkPermission(List<NodeUserDTO> nodeUsers, Long personId, List<Long> nodePersonIds) {
if (CollUtil.isEmpty(nodeUsers)) {
throw ResultCode.INVALID_PARAMS.toException("你已被移除当前项目,请刷新后重试当前操作!");
if (nodePersonIds.size() == 1 && Objects.equals(personId, nodePersonIds.get(0))) {
throw ResultCode.INVALID_PARAMS.toException("你已被移除当前项目,请刷新后重试当前操作!");
}
}
}