feat(REQ-3714): 判断是小组长

This commit is contained in:
zhanghonghao 2025-03-11 19:45:37 +08:00
parent 6571282886
commit 4187120b6b

View File

@ -9,9 +9,7 @@ import cn.axzo.orgmanax.dto.common.util.NumberUtil;
import cn.axzo.orgmanax.dto.cooperateship.dto.OrgCooperateShipDTO;
import cn.axzo.orgmanax.dto.cooperateship.enums.CooperateShipTypeEnum;
import cn.axzo.orgmanax.dto.cooperateship.req.ListOrgCooperateShipReq;
import cn.axzo.orgmanax.dto.node.dto.OrgNodeDTO;
import cn.axzo.orgmanax.dto.node.enums.NodeTypeEnum;
import cn.axzo.orgmanax.dto.node.req.ListNodeReq;
import cn.axzo.orgmanax.dto.nodeuser.dto.NodeUserDTO;
import cn.axzo.orgmanax.dto.nodeuser.enums.CheckInfoTypeEnum;
import cn.axzo.orgmanax.dto.nodeuser.req.BatchDeleteNodeUserCheckReq;
@ -46,7 +44,6 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.function.Function;
import java.util.function.ToIntFunction;
import java.util.stream.Collectors;
@ -231,8 +228,8 @@ public class NodeUserCheckServiceImpl implements NodeUserCheckService {
addFailInfo(failInfoMap, e.getPersonId(), checkFailInfo);
});
// 判断是否合作小组小组长合作小组小组长不允许删除
checkIndependentGroupLeader(nodeUsers, failInfoMap);
// 判断小组长小组长不允许删除
checkGroupLeader(nodeUsers, failInfoMap);
// 判断是否拥有admin角色 判断是否是分包管理员
List<Long> adminRoleIds = getSpecialRole();
@ -306,27 +303,15 @@ public class NodeUserCheckServiceImpl implements NodeUserCheckService {
}));
}
private void checkIndependentGroupLeader(List<NodeUserDTO> nodeUsers, Map<Long, List<BatchDeleteNodeUserCheckResp.CheckFailInfo>> failInfoMap) {
private void checkGroupLeader(List<NodeUserDTO> nodeUsers, Map<Long, List<BatchDeleteNodeUserCheckResp.CheckFailInfo>> failInfoMap) {
if (CollUtil.isEmpty(nodeUsers)) {
return;
}
Set<Long> nodeIdList = nodeUsers.stream().map(NodeUserDTO::getOrganizationalNodeId).collect(Collectors.toSet());
ListNodeReq nodeBatchQueryVO = new ListNodeReq();
nodeBatchQueryVO.setIds(nodeIdList);
List<OrgNodeDTO> nodeVOList = nodeService.list(nodeBatchQueryVO);
if (CollectionUtil.isEmpty(nodeVOList)) {
throw ResultCode.INVALID_PARAMS.toException("操作失败:获取部门节点信息失败");
}
Map<Long, OrgNodeDTO> nodeVOMap = nodeVOList.stream().collect(Collectors.toMap(OrgNodeDTO::getId, Function.identity()));
for (NodeUserDTO u : nodeUsers) {
if (projectTeamGPLeader.equals(u.getJob().getCode())) {
OrgNodeDTO nodeVO = nodeVOMap.getOrDefault(u.getOrganizationalNodeId(), null);
if (Objects.nonNull(nodeVO) && NodeTypeEnum.PROJECT_GROUP.getValue().equals(nodeVO.getNodeType())
&& Objects.nonNull(nodeVO.independentGroup()) && nodeVO.independentGroup()) {
BatchDeleteNodeUserCheckResp.CheckFailInfo checkFailInfo = new BatchDeleteNodeUserCheckResp.CheckFailInfo();
checkFailInfo.setType(CheckInfoTypeEnum.PROJECT_GROUP_LEADER);
addFailInfo(failInfoMap, u.getPersonId(), checkFailInfo);
}
BatchDeleteNodeUserCheckResp.CheckFailInfo checkFailInfo = new BatchDeleteNodeUserCheckResp.CheckFailInfo();
checkFailInfo.setType(CheckInfoTypeEnum.PROJECT_GROUP_LEADER);
addFailInfo(failInfoMap, u.getPersonId(), checkFailInfo);
}
}
}