feat(REQ-3488): 添加其他服务依赖maokai的枚举类等

This commit is contained in:
zhanghongbo 2025-01-15 14:17:01 +08:00
parent cfc6a3c862
commit d38ffbedea
5 changed files with 104 additions and 36 deletions

View File

@ -199,6 +199,10 @@ public class NodeProfile {
PROJECT_TEAM_ID("项目班组id", Long.class, Arrays.asList("projectTeamId", "belongProjectTeamId")),
PLAT_TEAM_ID("平台班组id", Long.class, Arrays.asList("platTeamId", "belongPlatTeamId")),
PROJECT_GROUP_ID("项目小组id", Long.class, Arrays.asList("projectGroupId")),
PROJECT_GROUP_OWNER_PROJECT_WORKER_ID("项目小组owner项目工人id", Long.class, Arrays.asList("ownerProjectWorkerId")),
PROJECT_GROUP_TYPE("项目小组类型", Integer.class, Arrays.asList("type")),
PROJECT_GROUP_CREATE_AT("项目小组创建时间", Integer.class, Arrays.asList("createAt")),
PROJECT_GROUP_UPDATE_AT("项目小组修改时间", Integer.class, Arrays.asList("updateAt")),
;
@ -206,7 +210,7 @@ public class NodeProfile {
/**
* 解析类型
*/
private Class aClass;
private Class resolveClass;
/**
* 解析字段名
*/
@ -219,7 +223,7 @@ public class NodeProfile {
.map(profile -> {
List<String> resolveFieldNames = resolveType.getResolveFieldName();
for (String field : resolveFieldNames) {
Object object = profile.getObject(field, resolveType.aClass);
Object object = profile.getObject(field, resolveType.resolveClass);
if (object != null) {
return object;
}

View File

@ -56,10 +56,7 @@ public class OrgProjectGroupController implements OrgProjectGroupApi {
@Override
public ApiResult<ProjectGroupListResp> getNoLeaderGroupList(Long workspaceId, Long platTeamId, Boolean isReturnWorker) {
orgProjectGroupService.getNoLeaderGroupList(workspaceId, platTeamId, isReturnWorker);
return null;
return ApiResult.success(orgProjectGroupService.getNoLeaderGroupList(workspaceId, platTeamId, isReturnWorker));
}
@Override

View File

@ -1,23 +1,36 @@
package cn.axzo.orgmanax.server.project.group.service.impl;
import cn.axzo.orgmanax.api.project.group.enums.ProjectGroupTypeEnum;
import cn.axzo.orgmanax.dto.project.worker.enums.ProjectWorkerStatusEnum;
import cn.axzo.orgmanax.dto.common.IdentityType;
import cn.axzo.orgmanax.dto.common.PersonProfileBriefDTO;
import cn.axzo.orgmanax.dto.node.dto.NodeProfile;
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.dto.NodeUserProfile;
import cn.axzo.orgmanax.dto.nodeuser.enums.ProjectGroupWorkerStatusEnum;
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
import cn.axzo.orgmanax.dto.project.group.enums.ProjectGroupStatusEnum;
import cn.axzo.orgmanax.dto.project.group.resp.NoleaderProjectGroupWorkerRes;
import cn.axzo.orgmanax.dto.project.group.resp.ProjectGroupListResp;
import cn.axzo.orgmanax.dto.project.group.resp.ProjectWorkerSkillTagRes;
import cn.axzo.orgmanax.infra.dao.workerprofession.repository.WorkerProfessionSkillTagRepository;
import cn.axzo.orgmanax.server.node.service.NodeService;
import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService;
import cn.axzo.orgmanax.server.project.group.service.OrgProjectGroupService;
import cn.axzo.orgmanax.server.workerprofession.service.OrgProjectWorkerProfessionService;
import cn.axzo.orgmanax.server.workerprofession.service.OrgProjectWorkerProfessionSkillService;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Sets;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -30,15 +43,15 @@ import java.util.stream.Collectors;
public class OrgProjectGroupServiceImpl implements OrgProjectGroupService {
private NodeService nodeService;
private NodeUserService nodeUserService;
private OrgProjectWorkerProfessionSkillService orgProjectWorkerProfessionSkillService;
private OrgProjectWorkerProfessionService orgProjectWorkerProfessionService;
@Override
public ProjectGroupListResp getNoLeaderGroupList(Long workspaceId, Long platTeamId, Boolean isReturnWorker) {
log.info("getNoLeaderGroupList : workspaceId={}, platTeamId={}, isReturnWorker={}", workspaceId, platTeamId, isReturnWorker);
//1.默认不返回工人列表
if (isReturnWorker == null) {
isReturnWorker = false;
}
List<OrgNodeDTO> orgNodeDTOS = nodeService.list(ListNodeReq.builder()
.workspaceIds(Sets.newHashSet(workspaceId))
.platTeamIds(Sets.newHashSet(platTeamId))
@ -49,37 +62,91 @@ public class OrgProjectGroupServiceImpl implements OrgProjectGroupService {
.ownerProjectWorkerIds(Arrays.asList(0L))
.build());
ProjectGroupListResp res = new ProjectGroupListResp();
if (ObjectUtil.isEmpty(orgNodeDTOS)) {
Collections.emptyList();
res.setProjectGroupList(new ArrayList<>());
return res;
}
convert(orgNodeDTOS, workspaceId);
List<ProjectGroupListResp.ProjectGroupInfo> projectGroupInfos = convert(orgNodeDTOS, workspaceId);
res.setProjectGroupList(projectGroupInfos);
//1.默认不返回工人列表
if (isReturnWorker == null) {
isReturnWorker = false;
}
if (isReturnWorker) {
for (ProjectGroupListResp.ProjectGroupInfo projectGroupInfo : projectGroupInfos) {
List<NodeUserDTO> nodeUserDTOS = nodeUserService.list(ListNodeUserReq.builder()
.projectGroupWorkerStatus(ProjectGroupWorkerStatusEnum.VALID.getValue())
.projectWorkerStatuses(Arrays.asList(ProjectWorkerStatusEnum.ACTIVE.value))
.projectGroupId(projectGroupInfo.getId())
.identityType(IdentityType.WORKER.getCode())
.filterIncludeNodeTypes(Arrays.asList(NodeTypeEnum.PROJECT_GROUP.getValue()))
.needs(ListNodeUserReq.Needs.builder().personProfile(true).build())
.build());
if (ObjectUtil.isEmpty(nodeUserDTOS)) {
continue;
}
//TODO
// List<Long> projectWorkerIdList = nodeUserDTOS.stream().map(nodeUserDTO -> NodeUserProfile.resolveProjectWorkerId(nodeUserDTO)).collect(Collectors.toList());
// //获取工种
// orgProjectWorkerProfessionService.listValid()
//
// //获取技能标签
// List<WorkerProfessionSkillTagRepository.WorkerProfessionSkillTagResp> skillTagResps = orgProjectWorkerProfessionSkillService.list(WorkerProfessionSkillTagRepository.PageReq.builder()
// .workspaceId(projectGroupInfo.getWorkspaceId())
// .projectWorkerIds(projectWorkerIdList)
// .build());
// Map<Long, List<WorkerProfessionSkillTagRepository.WorkerProfessionSkillTagResp>> workerSkillTagMap =
// skillTagResps.stream().collect(Collectors.groupingBy(WorkerProfessionSkillTagRepository.WorkerProfessionSkillTagResp::getProjectWorkerId));
// List<NoleaderProjectGroupWorkerRes> groupWorkerlist = new ArrayList<>();
// for (NodeUserDTO nodeUserDTO : nodeUserDTOS) {
// NoleaderProjectGroupWorkerRes workerRes = new NoleaderProjectGroupWorkerRes();
//
// PersonProfileBriefDTO personProfile = nodeUserDTO.getPersonProfile();
// workerRes.setFaceUrl(personProfile.getAvatarUrl());
// workerRes.setPhone(personProfile.getPhone());
// workerRes.setName(personProfile.getRealName());
// workerRes.setIdentityId(nodeUserDTO.getIdentityId());
// workerRes.setProjectWorkerId(NodeUserProfile.resolveProjectWorkerId(nodeUserDTO));
// workerRes.setProfessionList(BeanConvertUtils.copyList(oneWideByParam.getProfessionList(),
// NoleaderProjectGroupWorkerRes.ProjectGroupWorkerProfession.class));
// workerRes.setProfessionCategory(oneWideByParam.getWorkerProfessionCategory());
// List<LabourProjectWorkerSkillTag> skillTagList = workerSkillTagMap
// .getOrDefault(worker.getProjectWorkerId(), null);
// log.info("工人{}技能标签:{}", oneWideByParam.getWorkerName(), JSON.toJSONString(skillTagList));
// if (CollectionUtil.isNotEmpty(skillTagList)) {
// workerRes.setSkillTagList(BeanConvertUtils.copyList(skillTagList,
// ProjectWorkerSkillTagRes.class, (s, t) -> {
// t.setId(s.getSkillTagId());
// t.setName(s.getSkillTagName());
// }));
// }
// groupWorkerlist.add(workerRes);
// }
}
}
return null;
}
private List<ProjectGroupListResp.ProjectGroupInfo> convert(List<OrgNodeDTO> orgNodeDTOS, Long workspaceId) {
//todo
// return orgNodeDTOS.stream().map(orgNodeDTO -> {
// ProjectGroupListResp.ProjectGroupInfo projectGroupInfo = new ProjectGroupListResp.ProjectGroupInfo();
// projectGroupInfo.setId(NodeProfile.resolveProjectGroupId(orgNodeDTO));
// projectGroupInfo.setName(orgNodeDTO.getNodeName());
// projectGroupInfo.setWorkspaceId(workspaceId);
// projectGroupInfo.setBelongProjectTeamId(NodeProfile.resolveProjectTeamId(orgNodeDTO));
// projectGroupInfo.setBelongPlatTeamId(NodeProfile.resolvePlatTeamId(orgNodeDTO));
// projectGroupInfo.setOwnerProjectWorkerId(orgNodeDTO.get);
// projectGroupInfo.setOwnerWorkerName();
// projectGroupInfo.setOwnerWorkerPhone();
// projectGroupInfo.setOwnerWorkerFaceUrl();
// projectGroupInfo.setGroupType();
// projectGroupInfo.setCreateAt();
// projectGroupInfo.setUpdateAt();
// projectGroupInfo.setProjectGroupWorkerList();
// }).collect(Collectors.toList());
return null;
return orgNodeDTOS.stream().map(orgNodeDTO -> {
ProjectGroupListResp.ProjectGroupInfo projectGroupInfo = new ProjectGroupListResp.ProjectGroupInfo();
projectGroupInfo.setId(NodeProfile.resolveProjectGroupId(orgNodeDTO));
projectGroupInfo.setName(orgNodeDTO.getNodeName());
projectGroupInfo.setWorkspaceId(workspaceId);
projectGroupInfo.setBelongProjectTeamId(NodeProfile.resolveProjectTeamId(orgNodeDTO));
projectGroupInfo.setBelongPlatTeamId(NodeProfile.resolvePlatTeamId(orgNodeDTO));
projectGroupInfo.setOwnerProjectWorkerId(NodeProfile.resolve(orgNodeDTO, NodeProfile.NodeProfileResolveTypeEnum.PROJECT_GROUP_OWNER_PROJECT_WORKER_ID));
projectGroupInfo.setGroupType(NodeProfile.resolve(orgNodeDTO, NodeProfile.NodeProfileResolveTypeEnum.PROJECT_GROUP_TYPE));
projectGroupInfo.setCreateAt(NodeProfile.resolve(orgNodeDTO, NodeProfile.NodeProfileResolveTypeEnum.PROJECT_GROUP_CREATE_AT));
projectGroupInfo.setUpdateAt(NodeProfile.resolve(orgNodeDTO, NodeProfile.NodeProfileResolveTypeEnum.PROJECT_GROUP_UPDATE_AT));
return projectGroupInfo;
}).collect(Collectors.toList());
}
}

View File

@ -2,7 +2,7 @@ package cn.axzo.orgmanax.server.project.worker.service.impl;
import cn.axzo.orgmanax.api.invite.enums.WorkerInviteStatusEnum;
import cn.axzo.orgmanax.api.project.group.enums.ProjectGroupTypeEnum;
import cn.axzo.orgmanax.api.project.worker.enums.ProjectWorkerStatusEnum;
import cn.axzo.orgmanax.dto.project.worker.enums.ProjectWorkerStatusEnum;
import cn.axzo.orgmanax.dto.common.IdentityType;
import cn.axzo.orgmanax.dto.node.dto.NodeProfile;
import cn.axzo.orgmanax.dto.node.dto.OrgNodeDTO;

View File

@ -1,7 +1,7 @@
package cn.axzo.orgmanax.server.workerprofession.service.impl;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.api.project.worker.enums.ProjectWorkerStatusEnum;
import cn.axzo.orgmanax.dto.project.worker.enums.ProjectWorkerStatusEnum;
import cn.axzo.orgmanax.dto.common.IdentityType;
import cn.axzo.orgmanax.dto.common.util.NumberUtil;
import cn.axzo.orgmanax.dto.common.util.TreeUtil;