Merge remote-tracking branch 'origin/feature/REQ-3488' into feature/REQ-3488

This commit is contained in:
liuyang 2025-01-14 16:06:31 +08:00
commit fe1d733c66
3 changed files with 45 additions and 33 deletions

View File

@ -49,6 +49,11 @@ public class OrgUnitRegisterDTO implements Serializable {
*/
private String approvalMsg;
/**
* 审批人
*/
private Long approver;
/**
* 联系人&提交人姓名
*/

View File

@ -7,6 +7,7 @@ import cn.axzo.orgmanax.dto.project.team.enums.ValidationEnum;
import cn.axzo.orgmanax.dto.project.team.req.PageOrgTeamCategoryReq;
import cn.axzo.orgmanax.dto.project.team.req.TreeOrgTeamCategoryReq;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.google.common.collect.Sets;
import java.util.Objects;
import java.util.Set;
@ -15,6 +16,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.StringUtils;
/**
* @author syl
@ -70,10 +72,14 @@ public class ListTeamCategoryReq extends PageReqV2 {
*/
private Set<Long> projectTeamIds;
/**
* 平台班组id
*/
private Set<Long> platTeamIds;
public boolean isInvalid() {
return CollUtil.isEmpty(orgNodeIds)
&& Objects.isNull(workspaceId)
&& Objects.isNull(scene)
&& StringUtils.isBlank(parentCode)
&& CollUtil.isEmpty(categoryTypes)
&& CollUtil.isEmpty(categoryCodes);
}
public static ListTeamCategoryReq convertListReq(PageOrgTeamCategoryReq req){
ListTeamCategoryReq param = BeanUtil.copyProperties(req, ListTeamCategoryReq.class);

View File

@ -22,7 +22,6 @@ import cn.hutool.json.JSONUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@ -63,6 +62,10 @@ public class ProjectTeamCategoryServiceImpl implements ProjectTeamCategoryServic
@Override
public List<TeamCategoryAggregateDTO> treeList(ListTeamCategoryReq param) {
Map<Long, Long> nodeTeamMap = resolveNodeIds(param);
if (param.isInvalid()) {
log.info("treeList TeamCategory param is empty");
return Lists.newArrayList();
}
List<TeamCategoryDTO> categoryList = teamCategoryFoundationService.pageAll(param);
if (CollUtil.isEmpty(categoryList)) {
return Lists.newArrayList();
@ -113,40 +116,38 @@ public class ProjectTeamCategoryServiceImpl implements ProjectTeamCategoryServic
private Map<Long, Long> resolveNodeIds(ListTeamCategoryReq param) {
boolean hasProjectTeam = CollUtil.isNotEmpty(param.getProjectTeamIds());
boolean hasPlatTeam = CollUtil.isNotEmpty(param.getPlatTeamIds());
if (!hasProjectTeam && !hasPlatTeam) {
// 由于profile没有属性只能通过orggateway查询 teamOuRelation 实现 后续等待废弃 teamOuRelation 再优化
//boolean hasPlatTeam = CollUtil.isNotEmpty(param.getPlatTeamIds());
if (!hasProjectTeam) {
return Maps.newHashMap();
}
Set<Long> projectTeamNodeIds = new HashSet<>();
Set<Long> platTeamNodeIds = new HashSet<>();
List<OrgProjectTeamDTO> projectTeams = new ArrayList<>();
if (hasProjectTeam) {
// todo 通过项目班组id获取组织节点id
projectTeams = queryTeams(param.getProjectTeamIds(), NodeTypeEnum.PROJECT_TEAM);
projectTeamNodeIds = projectTeams.stream()
.map(OrgProjectTeamDTO::getOrganizationalNodeId)
.collect(Collectors.toSet());
}
if (hasPlatTeam) {
// todo 通过平台班组id获取组织节点id
List<OrgProjectTeamDTO> platTeams = queryTeams(param.getPlatTeamIds(), NodeTypeEnum.TEAM);
projectTeams.addAll(platTeams);
platTeamNodeIds = platTeams.stream()
.map(OrgProjectTeamDTO::getOrganizationalNodeId)
.collect(Collectors.toSet());
}
//Set<Long> platTeamNodeIds = new HashSet<>();
// todo 通过项目班组id获取组织节点id
List<OrgProjectTeamDTO> projectTeams = queryTeams(param.getProjectTeamIds(), NodeTypeEnum.PROJECT_TEAM);
projectTeamNodeIds = projectTeams.stream()
.map(OrgProjectTeamDTO::getOrganizationalNodeId)
.collect(Collectors.toSet());
// if (hasPlatTeam) {
// // 通过平台班组id获取组织节点id 后续实现
// List<OrgProjectTeamDTO> platTeams = queryTeams(param.getPlatTeamIds(), NodeTypeEnum.TEAM);
// projectTeams.addAll(platTeams);
// platTeamNodeIds = platTeams.stream()
// .map(OrgProjectTeamDTO::getOrganizationalNodeId)
// .collect(Collectors.toSet());
// }
Set<Long> teamNodeIds;
Set<Long> teamNodeIds = intersectionNodeId(projectTeamNodeIds, param.getOrgNodeIds());
// 拼接
if (!hasProjectTeam) {
teamNodeIds = intersectionNodeId(platTeamNodeIds, param.getOrgNodeIds());
} else if (!hasPlatTeam) {
teamNodeIds = intersectionNodeId(projectTeamNodeIds, param.getOrgNodeIds());
} else {
teamNodeIds = intersectionNodeId(Sets.intersection(projectTeamNodeIds, platTeamNodeIds)
, param.getOrgNodeIds());
}
// if (!hasProjectTeam) {
// teamNodeIds = intersectionNodeId(platTeamNodeIds, param.getOrgNodeIds());
// } else if (!hasPlatTeam) {
// teamNodeIds = intersectionNodeId(projectTeamNodeIds, param.getOrgNodeIds());
// } else {
// teamNodeIds = intersectionNodeId(Sets.intersection(projectTeamNodeIds, platTeamNodeIds)
// , param.getOrgNodeIds());
// }
log.info("resolveNodeIds teamNodeIds = [{}]", JSONUtil.toJsonStr(teamNodeIds));
param.setOrgNodeIds(teamNodeIds);