feat(REQ-3488): 提交小组相关接口
This commit is contained in:
parent
d38ffbedea
commit
dc28c6b141
@ -10,10 +10,7 @@ import lombok.experimental.SuperBuilder;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhanghongbo
|
* @author zhanghongbo
|
||||||
@ -34,6 +31,8 @@ public class WorkerProfessionTagQueryPageReq extends PageReqV2 {
|
|||||||
private Set<Long> professionIds;
|
private Set<Long> professionIds;
|
||||||
private Boolean needSkillTags;
|
private Boolean needSkillTags;
|
||||||
private Set<Long> orgNodeIds;
|
private Set<Long> orgNodeIds;
|
||||||
|
private Collection<Long> projectWorkerIds;
|
||||||
|
private Long workspaceId;
|
||||||
|
|
||||||
public void check() {
|
public void check() {
|
||||||
if (ObjectUtil.isAllEmpty(orgNodeId4ResolvedTeamOrgNodeId, personIds, orgNodeIds)) {
|
if (ObjectUtil.isAllEmpty(orgNodeId4ResolvedTeamOrgNodeId, personIds, orgNodeIds)) {
|
||||||
|
|||||||
@ -53,6 +53,12 @@ public class ProjectWorkerProfessionResp implements Serializable {
|
|||||||
* 数据有效性标记
|
* 数据有效性标记
|
||||||
*/
|
*/
|
||||||
private Integer valid;
|
private Integer valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目工人id
|
||||||
|
*/
|
||||||
|
private Long projectWorkerId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 技能标签列表
|
* 技能标签列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -8,6 +8,8 @@ import cn.axzo.orgmanax.infra.dao.workerprofession.entity.WorkerProfessionTag;
|
|||||||
import lombok.*;
|
import lombok.*;
|
||||||
import lombok.experimental.SuperBuilder;
|
import lombok.experimental.SuperBuilder;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -38,7 +40,7 @@ public interface WorkerProfessionTagRepository {
|
|||||||
* 项目内工人ids
|
* 项目内工人ids
|
||||||
*/
|
*/
|
||||||
@CriteriaField(field = "projectWorkerId", operator = Operator.IN)
|
@CriteriaField(field = "projectWorkerId", operator = Operator.IN)
|
||||||
private List<Long> projectWorkerIds;
|
private Collection<Long> projectWorkerIds;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PLAT_TEAM:平台班组,PROJECT_TEAM:项目内班组
|
* PLAT_TEAM:平台班组,PROJECT_TEAM:项目内班组
|
||||||
|
|||||||
@ -16,18 +16,23 @@ 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.NoleaderProjectGroupWorkerRes;
|
||||||
import cn.axzo.orgmanax.dto.project.group.resp.ProjectGroupListResp;
|
import cn.axzo.orgmanax.dto.project.group.resp.ProjectGroupListResp;
|
||||||
import cn.axzo.orgmanax.dto.project.group.resp.ProjectWorkerSkillTagRes;
|
import cn.axzo.orgmanax.dto.project.group.resp.ProjectWorkerSkillTagRes;
|
||||||
|
import cn.axzo.orgmanax.dto.workerprofession.req.WorkerProfessionTagQueryPageReq;
|
||||||
|
import cn.axzo.orgmanax.dto.workerprofession.resp.ProjectWorkerProfessionResp;
|
||||||
|
import cn.axzo.orgmanax.infra.client.datacollection.dto.DataCollectionSkillTypeEnum;
|
||||||
import cn.axzo.orgmanax.infra.dao.workerprofession.repository.WorkerProfessionSkillTagRepository;
|
import cn.axzo.orgmanax.infra.dao.workerprofession.repository.WorkerProfessionSkillTagRepository;
|
||||||
import cn.axzo.orgmanax.server.node.service.NodeService;
|
import cn.axzo.orgmanax.server.node.service.NodeService;
|
||||||
import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService;
|
import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService;
|
||||||
import cn.axzo.orgmanax.server.project.group.service.OrgProjectGroupService;
|
import cn.axzo.orgmanax.server.project.group.service.OrgProjectGroupService;
|
||||||
import cn.axzo.orgmanax.server.workerprofession.service.OrgProjectWorkerProfessionService;
|
import cn.axzo.orgmanax.server.workerprofession.service.OrgProjectWorkerProfessionService;
|
||||||
import cn.axzo.orgmanax.server.workerprofession.service.OrgProjectWorkerProfessionSkillService;
|
import cn.axzo.orgmanax.server.workerprofession.service.OrgProjectWorkerProfessionSkillService;
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.ibatis.annotations.Results;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -77,6 +82,7 @@ public class OrgProjectGroupServiceImpl implements OrgProjectGroupService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isReturnWorker) {
|
if (isReturnWorker) {
|
||||||
|
//获取工人信息列表
|
||||||
for (ProjectGroupListResp.ProjectGroupInfo projectGroupInfo : projectGroupInfos) {
|
for (ProjectGroupListResp.ProjectGroupInfo projectGroupInfo : projectGroupInfos) {
|
||||||
List<NodeUserDTO> nodeUserDTOS = nodeUserService.list(ListNodeUserReq.builder()
|
List<NodeUserDTO> nodeUserDTOS = nodeUserService.list(ListNodeUserReq.builder()
|
||||||
.projectGroupWorkerStatus(ProjectGroupWorkerStatusEnum.VALID.getValue())
|
.projectGroupWorkerStatus(ProjectGroupWorkerStatusEnum.VALID.getValue())
|
||||||
@ -90,48 +96,56 @@ public class OrgProjectGroupServiceImpl implements OrgProjectGroupService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO
|
List<Long> projectWorkerIdList = nodeUserDTOS.stream().map(nodeUserDTO -> NodeUserProfile.resolveProjectWorkerId(nodeUserDTO)).collect(Collectors.toList());
|
||||||
// List<Long> projectWorkerIdList = nodeUserDTOS.stream().map(nodeUserDTO -> NodeUserProfile.resolveProjectWorkerId(nodeUserDTO)).collect(Collectors.toList());
|
//获取工种
|
||||||
// //获取工种
|
List<ProjectWorkerProfessionResp> professionResps = orgProjectWorkerProfessionService.list(WorkerProfessionTagQueryPageReq.builder()
|
||||||
// orgProjectWorkerProfessionService.listValid()
|
.projectWorkerIds(projectWorkerIdList)
|
||||||
//
|
.workspaceId(projectGroupInfo.getWorkspaceId())
|
||||||
// //获取技能标签
|
.build());
|
||||||
// List<WorkerProfessionSkillTagRepository.WorkerProfessionSkillTagResp> skillTagResps = orgProjectWorkerProfessionSkillService.list(WorkerProfessionSkillTagRepository.PageReq.builder()
|
Map<Long, List<ProjectWorkerProfessionResp>> professionTagMap = professionResps.stream().collect(Collectors.groupingBy(ProjectWorkerProfessionResp::getProjectWorkerId));
|
||||||
// .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);
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
//获取技能标签
|
||||||
|
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());
|
||||||
|
Long projectWorkerId = NodeUserProfile.resolveProjectWorkerId(nodeUserDTO);
|
||||||
|
workerRes.setProjectWorkerId(projectWorkerId);
|
||||||
|
List<ProjectWorkerProfessionResp> projectWorkerProfessionResps = Optional.ofNullable(professionTagMap.get(projectWorkerId)).orElse(new ArrayList<>());
|
||||||
|
workerRes.setProfessionList(BeanUtil.copyToList(projectWorkerProfessionResps, NoleaderProjectGroupWorkerRes.ProjectGroupWorkerProfession.class));
|
||||||
|
// 技工 or 普工, 经讨论,取第一个即可
|
||||||
|
workerRes.setProfessionCategory(DataCollectionSkillTypeEnum.getType(projectWorkerProfessionResps.get(0).getType()).getDesc());
|
||||||
|
List<WorkerProfessionSkillTagRepository.WorkerProfessionSkillTagResp> skillTags = workerSkillTagMap.get(projectWorkerId);
|
||||||
|
log.info("工人{}技能标签:{}", personProfile.getRealName(), JSON.toJSONString(skillTags));
|
||||||
|
if (CollectionUtil.isNotEmpty(skillTags)) {
|
||||||
|
List<ProjectWorkerSkillTagRes> skillTagResList = skillTags.stream().map(skillTag -> {
|
||||||
|
ProjectWorkerSkillTagRes skillTagRes = new ProjectWorkerSkillTagRes();
|
||||||
|
skillTagRes.setId(0L); //历史代码skillTagId全是0L
|
||||||
|
skillTagRes.setName(skillTag.getSkillTagName());
|
||||||
|
return skillTagRes;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
workerRes.setSkillTagList(skillTagResList);
|
||||||
|
}
|
||||||
|
groupWorkerlist.add(workerRes);
|
||||||
|
}
|
||||||
|
projectGroupInfo.setProjectGroupWorkerList(groupWorkerlist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log.info("getNoLeaderGroupList result : {}", JSON.toJSONString(res));
|
||||||
return null;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ProjectGroupListResp.ProjectGroupInfo> convert(List<OrgNodeDTO> orgNodeDTOS, Long workspaceId) {
|
private List<ProjectGroupListResp.ProjectGroupInfo> convert(List<OrgNodeDTO> orgNodeDTOS, Long workspaceId) {
|
||||||
|
|||||||
@ -44,6 +44,13 @@ public interface OrgProjectWorkerProfessionService {
|
|||||||
*/
|
*/
|
||||||
PageResp<ProjectWorkerProfessionResp> page(WorkerProfessionTagQueryPageReq req);
|
PageResp<ProjectWorkerProfessionResp> page(WorkerProfessionTagQueryPageReq req);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询工种信息
|
||||||
|
* @param req
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<ProjectWorkerProfessionResp> list(WorkerProfessionTagQueryPageReq req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取历史工种
|
* 获取历史工种
|
||||||
* @param req
|
* @param req
|
||||||
|
|||||||
@ -318,6 +318,8 @@ public class OrgProjectWorkerProfessionServiceImpl implements OrgProjectWorkerPr
|
|||||||
.scene(req.getScene().name())
|
.scene(req.getScene().name())
|
||||||
.professionIds(req.getProfessionIds())
|
.professionIds(req.getProfessionIds())
|
||||||
.personIds(req.getPersonIds())
|
.personIds(req.getPersonIds())
|
||||||
|
.projectWorkerIds(req.getProjectWorkerIds())
|
||||||
|
.workspaceId(req.getWorkspaceId())
|
||||||
.build();
|
.build();
|
||||||
PageResp<WorkerProfessionTagRepository.WorkerProfessionTagResp> page = workerProfessionTagRepository.page(pageReq);
|
PageResp<WorkerProfessionTagRepository.WorkerProfessionTagResp> page = workerProfessionTagRepository.page(pageReq);
|
||||||
if (page == null || ObjectUtil.isEmpty(page)) {
|
if (page == null || ObjectUtil.isEmpty(page)) {
|
||||||
@ -336,6 +338,11 @@ public class OrgProjectWorkerProfessionServiceImpl implements OrgProjectWorkerPr
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ProjectWorkerProfessionResp> list(WorkerProfessionTagQueryPageReq req) {
|
||||||
|
return page(req).getData();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<WorkerProfessionHistoryRepository.WorkerProfessionHistoryResp> listHistory(WorkerProfessionHistoryRepository.PageReq req) {
|
public List<WorkerProfessionHistoryRepository.WorkerProfessionHistoryResp> listHistory(WorkerProfessionHistoryRepository.PageReq req) {
|
||||||
return workerProfessionHistoryRepository.list(req);
|
return workerProfessionHistoryRepository.list(req);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user