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

This commit is contained in:
zhanghonghao 2025-01-15 14:44:33 +08:00
commit 951c72fd8b
18 changed files with 443 additions and 78 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

@ -0,0 +1,40 @@
package cn.axzo.orgmanax.dto.orguser.enums;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
/**
* @description
* 人员异动场景
* @author luofu
* @version 1.0
* @date 2024/10/24
*/
@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public enum OrgUserChangedScenarioEnum {
JOINED("JOINED", "加入"),
WITHDRAW("WITHDRAW", "离开<单位:离职,项目:退场>"),
LEAVED("LEAVED", "离场"),
CHANGED("CHANGED", "部门岗位变更");
private final String code;
private final String desc;
public static Optional<OrgUserChangedScenarioEnum> codeOf(String code) {
return Arrays.stream(values())
.filter(e -> Objects.equals(code, e.code))
.findFirst();
}
public static OrgUserChangedScenarioEnum codeOfThrowException(String code) {
return codeOf(code)
.orElseThrow(() -> new RuntimeException(String.format("invalid code.[%s]", code)));
}
}

View File

@ -0,0 +1,122 @@
package cn.axzo.orgmanax.dto.orguser.event;
import cn.axzo.orgmanax.dto.orguser.enums.OrgUserChangedScenarioEnum;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @description 用户组织架构信息变更事件 (部门-岗位-角色等)
* @author luofu
* @version 1.0
* @date 2024/10/30
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrgUserChangedEvent implements Serializable {
private static final long serialVersionUID = 6513111764022461738L;
/**
* 自然人id
*/
private Long personId;
/**
* 单位id
*/
private Long ouId;
/**
* 租户id
*/
private Long workspaceId;
/**
* 用户状态
* 1) 在职 5
* 2) 离职 6
* 3) 入场中 0
* 4) 在场 1
* 5) 离场 3
* 6) 已删除 4
*/
private Integer statusCode;
/**
* 异动时间戳
*/
private Long transferTimestamp;
/**
* 人员异动场景
* @see OrgUserChangedScenarioEnum
*/
private String scenarioCode;
/**
* 备注二维码加入 - APP端手机号添加 - CMS端
*/
private String remark;
/**
* 补充信息信息
*/
private SupplementaryInfo supplementaryInfo;
/**
* 操作人的自然人id
*/
private Long operatorId;
@Override
public String toString() {
return JSON.toJSONString(this);
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class SupplementaryInfo implements Serializable{
private static final long serialVersionUID = -8577751204851100329L;
/**
* 部门id列表
*/
private List<Long> orgNodeIds;
/**
* 部门主管标识所在的部门id
*/
private Long majorOrgNodeId;
/**
* 岗位id列表
*/
private List<Long> jobIds;
/**
* 角色id列表
*/
private List<Long> roleIds;
/**
* 直属主管id
*/
private Long directManagerPersonId;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}
}

View File

@ -0,0 +1,69 @@
package cn.axzo.orgmanax.dto.orguser.event;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author luofu
* @version 1.0
* @date 2024/11/5
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrgUserStatusChangedEvent implements Serializable {
private static final long serialVersionUID = 1534318491778930088L;
/**
* 自然人id
*/
private Long personId;
/**
* 单位id
*/
private Long ouId;
/**
* 租户id
*/
private Long workspaceId;
/**
* 顶级部门id
*/
private Long topNodeId;
/**
* 用户状态
* 1) 在职 5
* 2) 离职 6
* 3) 入场中 0
* 4) 在场 1
* 5) 离场 3
* 6) 已删除 4
*/
private Integer statusCode;
/**
* 异动时间戳
*/
private Long transferTimestamp;
/**
* 操作人的id
*/
private Long operatorId;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,27 @@
package cn.axzo.orgmanax.dto.project.team.utils;
import cn.hutool.core.util.ObjectUtil;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
@Slf4j
public class WorkTeamFormat {
public static String concatTeamName(String platTeamLeaderName, String categoryStr) {
if(ObjectUtil.isEmpty(platTeamLeaderName)){
return "";
}
String teamLearName = String.format("班组长:%s", platTeamLeaderName);
if(ObjectUtil.isNotEmpty(categoryStr)){
return String.format("%s经营范围%s", teamLearName, categoryStr);
}
return teamLearName;
}
public static String concatTeamName(String platTeamLeaderName, List<String> categoryList) {
return concatTeamName(platTeamLeaderName, String.join("", categoryList));
}
}

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.api.project.worker.enums;
package cn.axzo.orgmanax.dto.project.worker.enums;
import lombok.Getter;

View File

@ -152,6 +152,9 @@ public class SaasCooperateShip implements Serializable {
* @param parent
*/
public void calcPath(SaasCooperateShip parent) {
if (this.getParentId() == null) {
this.parentId = 0L;
}
if (Objects.equals(this.getParentId(), 0L)) {
this.path = id + ",";
}
@ -159,6 +162,20 @@ public class SaasCooperateShip implements Serializable {
this.path = parent.path + id + ",";
}
/**
* 计算节点路径, 需要先将父级path设置好
*/
public void calcPath() {
if (this.getParentId() == null) {
this.parentId = 0L;
}
if (Objects.equals(this.getParentId(), 0L)) {
this.path = id + ",";
}
this.path = this.path + id + ",";
}
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Getter
public enum ParterShipEnum {

View File

@ -19,6 +19,15 @@ public interface CooperateShipQueryRepository {
return oneOpt(req).orElse(null);
}
/**
* 根据id查询
* @param id
* @return
*/
default SaasCooperateShip getById(Long id) {
return oneOpt(OneReq.builder().id(id).build()).orElse(null);
}
default Optional<SaasCooperateShip> oneOpt(OneReq req) {
req.check();
ListReq listReq = BeanUtil.toBean(req, ListReq.class);

View File

@ -28,7 +28,7 @@ public interface CooperateShipUpsertRepository {
* @param node
* @return
*/
SaasCooperateShip update(UpdateReq node);
boolean update(UpdateReq node);
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor

View File

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWra
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.support.TransactionTemplate;
@Service
@RequiredArgsConstructor
@ -16,21 +17,34 @@ import org.springframework.stereotype.Service;
public class CooperateShipUpsertRepositoryImpl implements CooperateShipUpsertRepository {
private final SaasCooperateShipDao cooperateShipDao;
private final TransactionTemplate transactionTemplate;
@Override
public SaasCooperateShip create(SaasCooperateShip cooperateShip) {
cooperateShipDao.save(cooperateShip);
return cooperateShipDao.getById(cooperateShip.getId());
transactionTemplate.executeWithoutResult(r -> {
// 保存协同关系
cooperateShipDao.save(cooperateShip);
// 计算path的值, 需要先保存才能获取到id
cooperateShip.calcPath();
// 更新path
update(CooperateShipUpsertRepository.UpdateReq.builder()
.id(cooperateShip.getId())
.path(cooperateShip.getPath())
.build());
});
return cooperateShip;
}
@Override
public SaasCooperateShip update(UpdateReq req) {
public boolean update(UpdateReq req) {
Axssert.checkNonNull(req.getId(), "更新协同部门协同id不能为空");
LambdaUpdateChainWrapper<SaasCooperateShip> wrapper = cooperateShipDao.lambdaUpdate().eq(SaasCooperateShip::getId, req.getId());
if (CollUtil.isNotEmpty(req.getSetNullFields())) {
req.getSetNullFields().forEach(e -> wrapper.set(e, null));
}
wrapper.update(req);
return cooperateShipDao.getById(req.getId());
return wrapper.update(req);
}
}

View File

@ -42,6 +42,15 @@ public interface NodeQueryRepository {
return page(page).getData().stream().findFirst();
}
/**
* 根据id获取
* @param id
* @return
*/
default OrganizationalNode getById(Long id) {
return oneOpt(OneReq.builder().id(id).build()).orElse(null);
}
@NoArgsConstructor
@AllArgsConstructor
@Data

View File

@ -38,6 +38,15 @@ public interface UnitQueryRepository {
return page(page).getData().stream().findFirst();
}
/**
* 根据id获取
* @param id
* @return
*/
default UnitResp getById(Long id) {
return oneOpt(OneReq.builder().id(id).build()).orElse(null);
}
@NoArgsConstructor
@AllArgsConstructor
@Data

View File

@ -33,6 +33,7 @@ import java.util.stream.Collectors;
import com.google.common.collect.ImmutableSet;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.support.TransactionTemplate;
@RequiredArgsConstructor
@Service
@ -43,7 +44,7 @@ public class CooperateShipFoundationServiceImpl implements CooperateShipFoundati
private final CooperateShipQueryRepository cooperateShipQueryRepository;
private final CooperateShipUpsertRepository cooperateShipUpsertRepository;
private final EventProducer eventProducer;
private final WorkspaceGateway workspaceGateway;
private final TransactionTemplate transactionTemplate;
/**
* 顶级协同关系类型
@ -142,16 +143,15 @@ public class CooperateShipFoundationServiceImpl implements CooperateShipFoundati
@Override
public SaasCooperateShip create(CooperateShipCreator creator) {
// 如果parentId不为空, 查询父级协同节点
// 如果parentId不为空, 初始化父级协同节点
SaasCooperateShip parentCooperateShip = null;
if (Objects.nonNull(creator.getParentId()) && creator.getParentId() > 0) {
parentCooperateShip = cooperateShipQueryRepository
.oneOpt(CooperateShipQueryRepository.OneReq.builder().id(creator.getParentId()).build())
.orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("父级协同部门不存在{}", creator.getOrganizationalNodeId()));
parentCooperateShip = cooperateShipQueryRepository.getById(creator.getParentId());
Axssert.check(parentCooperateShip != null, BizResultCode.ENTITY_NOT_FOUND, "父级协同部门不存在{}", creator.getOrganizationalNodeId());
Axssert.check(Objects.equals(parentCooperateShip.getWorkspaceId(), creator.getWorkspaceId()), BizResultCode.INVALID_PARAM, "父级协同部门和要加入部门不是同一个工作台");
}
// 创建协同关系
// 构建新的协同关系
SaasCooperateShip cooperateShip = SaasCooperateShip.builder()
.parentId(creator.getParentId())
.workspaceId(creator.getWorkspaceId())
@ -165,17 +165,12 @@ public class CooperateShipFoundationServiceImpl implements CooperateShipFoundati
.organizationalNodeId(creator.getOrganizationalNodeId())
.partnerShip(creator.getPartnerShip())
.createBy(creator.getOperatorId())
.path(Optional.ofNullable(parentCooperateShip).map(SaasCooperateShip::getPath).orElse(""))
.build();
// 保存协同关系
SaasCooperateShip savedCooperateShip = cooperateShipUpsertRepository.create(cooperateShip);
// 更新协同关系路径
savedCooperateShip.calcPath(parentCooperateShip);
SaasCooperateShip saved = cooperateShipUpsertRepository.update(CooperateShipUpsertRepository.UpdateReq.builder()
.id(savedCooperateShip.getId())
.path(savedCooperateShip.getPath())
.build());
// 发送领域事件
eventProducer.send(Event.builder()
.eventCode(CooperateShipEventType.COOPERATE_SHIP_UPSERTED.getEventCode())
@ -183,14 +178,14 @@ public class CooperateShipFoundationServiceImpl implements CooperateShipFoundati
.operatorType(getClass().getSimpleName())
.targetType("cooperate_ship_id")
.targetId(cooperateShip.getId() + "")
.shardingKey(saved.getOrganizationalNodeId() + "")
.shardingKey(savedCooperateShip.getOrganizationalNodeId() + "")
.data(CoopeateShipUpsertedPayload.builder()
.newValue(BeanUtil.copyProperties(saved, OrgCooperateShipDTO.class))
.newValue(BeanUtil.copyProperties(savedCooperateShip, OrgCooperateShipDTO.class))
.oldValue(null)
.build())
.build());
// 返回结果
return cooperateShipQueryRepository.one(CooperateShipQueryRepository.OneReq.builder().id(saved.getId()).build());
return cooperateShipQueryRepository.one(CooperateShipQueryRepository.OneReq.builder().id(savedCooperateShip.getId()).build());
}
}

View File

@ -41,23 +41,10 @@ import java.util.*;
@RequiredArgsConstructor
public class CooperateShipServiceImpl implements CooperateShipService {
private static final Set<Integer> ALLOWED_TOP_COOPERATE_TYPES = ImmutableSet.of(
CooperateShipTypeEnum.PROJ_PRIMARY_CONTRACTING_UNIT.getCode(),
CooperateShipTypeEnum.PROJ_CONSTRUCTION_UNIT.getCode(),
CooperateShipTypeEnum.PROJ_SUPERVISION_UNIT.getCode(),
CooperateShipTypeEnum.OMS.getCode(),
CooperateShipTypeEnum.ENT_COMMON.getCode(),
CooperateShipTypeEnum.SURVEY_UNIT.getCode(),
CooperateShipTypeEnum.DESIGN_UNIT.getCode(),
CooperateShipTypeEnum.OTHER.getCode()
);
private final CooperateShipQueryRepository cooperateShipQueryRepository;
private final CooperateShipUpsertRepository cooperateShipUpsertRepository;
private final NodeQueryRepository nodeQueryRepository;
private final UnitQueryRepository unitQueryRepository;
private final WorkspaceGateway workspaceGateway;
private final EventProducer eventProducer;
private final CooperateShipFoundationService cooperateShipFoundationService;
@Transactional
@ -65,8 +52,8 @@ public class CooperateShipServiceImpl implements CooperateShipService {
public SaasCooperateShip create(CreateOrgCooperateShipReq req) {
// 获取组织节点
OrganizationalNode node = nodeQueryRepository.oneOpt(NodeQueryRepository.OneReq.builder().id(req.getOrganizationalNodeId()).build())
.orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("部门不存在{}", req.getOrganizationalNodeId()));
OrganizationalNode node = nodeQueryRepository.getById(req.getOrganizationalNodeId());
Axssert.check(node != null, BizResultCode.ENTITY_NOT_FOUND, "部门不存在", req.getOrganizationalNodeId());
Axssert.check(node.isTopNode(), BizResultCode.INVALID_PARAM, "只有顶级节点才能添加协同关系");
// 获取工作台信息
@ -74,9 +61,8 @@ public class CooperateShipServiceImpl implements CooperateShipService {
Axssert.checkNonNull(workspace, "工作台不存在{}", req.getWorkspaceId());
// 获取组织单位
UnitQueryRepository.UnitResp unit = unitQueryRepository.oneOpt(UnitQueryRepository.OneReq.builder()
.id(node.getId())
.build()).orElseThrow(() -> BizResultCode.ENTITY_NOT_FOUND.toException("单位不存在{}", node.getOrganizationalUnitId()));
UnitQueryRepository.UnitResp unit = unitQueryRepository.getById(node.getOrganizationalUnitId());
Axssert.check(unit != null, BizResultCode.ENTITY_NOT_FOUND, "单位不存在", node.getOrganizationalUnitId());
// 创建协同关系
return cooperateShipFoundationService.create(CooperateShipCreator.builder()

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;