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

This commit is contained in:
zhanghonghao 2025-01-08 16:59:30 +08:00
commit 6dcdcba555
41 changed files with 268 additions and 70 deletions

View File

@ -8,6 +8,6 @@ import org.springframework.context.annotation.Configuration;
* @date 2022/4/25 10:48
*/
@Configuration
@EnableFeignClients(basePackages = "cn.axzo.orgmanax.api.**.feign")
@EnableFeignClients(basePackages = "cn.axzo.orgmanax.api.project.worker.feign")
public class OrgmanaxApiConfig {
}

View File

@ -43,6 +43,6 @@ public interface OrgUserApi {
* @return 通用人员列表
*/
@PostMapping(value = "/api/org-user/generic/page")
ApiResult<PageResp<PageOrgUserElementResp>> page(@RequestBody @Valid PageOrgUserReq req);
ApiResult<PageResp<PageOrgUserElementResp>> genericPage(@RequestBody @Valid PageOrgUserReq req);
}

View File

@ -1,9 +1,9 @@
package cn.axzo.orgmanax.api.projectgroup.feign;
package cn.axzo.orgmanax.api.project.group.feign;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.dto.projectgroup.req.*;
import cn.axzo.orgmanax.dto.projectgroup.resp.*;
import cn.axzo.orgmanax.dto.project.group.req.*;
import cn.axzo.orgmanax.dto.project.group.resp.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -78,29 +78,6 @@ public interface OrgProjectGroupApi {
// @PostMapping("/api/project-group/group/list")
// ApiResult<List<ProjectTeamGroupListResp>> groupList(@RequestBody ProjectTeamGroupListReq req);
/**
* 未分组工人
*
* @param req req
* @author: wxf
* @date: 2022/11/30 11:40
* @return:
* REQ-1483
**/
@PostMapping("api/ungrouped/worker")
ApiResult<List<ProjectDirectGroupUngroupedWorkerResp>> ungroupedWorker(@RequestBody @Valid ProjectDirectGroupUngroupedWorkerReq req);
/**
* 直属小组工人
*
* @param req req
* @author: wxf
* @date: 2022/11/30 14:04
* @return:
**/
@PostMapping("api/direct-group/worker")
ApiResult<List<ProjectDirectGroupWorkerListResp>> workerList(@RequestBody @Valid ProjectDirectGroupWorkerListReq req);
/**
* 小组长权限
*

View File

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

View File

@ -0,0 +1,45 @@
package cn.axzo.orgmanax.api.project.worker.feign;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.dto.project.group.req.ProjectDirectGroupUngroupedWorkerReq;
import cn.axzo.orgmanax.dto.project.group.req.ProjectDirectGroupWorkerListReq;
import cn.axzo.orgmanax.dto.project.group.resp.ProjectDirectGroupUngroupedWorkerResp;
import cn.axzo.orgmanax.dto.project.group.resp.ProjectDirectGroupWorkerListResp;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import java.util.List;
/**
* @author zhanghongbo
* @date 2025/1/8
*/
@FeignClient(
value = "orgmanax",
url = "${axzo.service.orgmanax:http://orgmanax:8080}")
public interface OrgProjectWorkerApi {
/**
* 未分组工人
*
* @param req req
* @author: wxf
* @date: 2022/11/30 11:40
* @return:
* REQ-1483
**/
@PostMapping("api/project-worker/ungrouped/worker")
ApiResult<List<ProjectDirectGroupUngroupedWorkerResp>> ungroupedWorker(@RequestBody @Valid ProjectDirectGroupUngroupedWorkerReq req);
/**
* 直属小组工人
*
* @param req req
* @author: wxf
* @date: 2022/11/30 14:04
* @return:
**/
@PostMapping("api/project-worker/direct-group/worker")
ApiResult<List<ProjectDirectGroupWorkerListResp>> workerList(@RequestBody @Valid ProjectDirectGroupWorkerListReq req);
}

View File

@ -4,9 +4,12 @@ import cn.axzo.orgmanax.dto.common.PersonProfileBriefDTO;
import cn.axzo.orgmanax.dto.common.WorkspaceBriefDTO;
import cn.axzo.orgmanax.dto.cooperateship.dto.OrgCooperateShipDTO;
import cn.axzo.orgmanax.dto.job.dto.OrgJobBriefDTO;
import cn.axzo.orgmanax.dto.node.dto.NodeProfile;
import cn.axzo.orgmanax.dto.node.dto.OrgNodeBriefDTO;
import cn.axzo.orgmanax.dto.node.enums.NodeTypeEnum;
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
import cn.axzo.orgmanax.dto.unit.dto.OrgUnitBriefDTO;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -216,4 +219,29 @@ public class NodeUserDTO implements Serializable {
}
return (T) Optional.ofNullable(profile).map(p -> JSONObject.parseObject(p.toString(), clazz)).orElse(null);
}
public Long getProjectWorkerId() {
if (ObjectUtil.isEmpty(profile)) {
return null;
}
return profile.getLong("projectWorkerId");
}
public Long getProjectTeamId() {
if (node == null || node.getNodeType() == null) {
return null;
}
Integer nodeType = node.getNodeType();
if (nodeType.equals(NodeTypeEnum.PROJECT_TEAM.getValue())) {
//项目班组
NodeProfile.ProjectTeamProfile projectTeamProfile = node.resolveProfile();
return Optional.ofNullable(projectTeamProfile).orElse(new NodeProfile.ProjectTeamProfile()).getProjectTeamId();
}
if (nodeType.equals(NodeTypeEnum.PROJECT_GROUP.getValue())) {
//项目小组
NodeProfile.ProjectGroupProfile projectGroupProfile = node.resolveProfile();
return Optional.ofNullable(projectGroupProfile).orElse(new NodeProfile.ProjectGroupProfile()).getBelongProjectTeamId();
}
return null;
}
}

View File

@ -83,15 +83,44 @@ public class NodeUserProfile {
*/
public static class ProjectGroupWorkerProfile {
// 新冗余字段
/**
* 项目小组人员id
* 项目小组人员主键id
*/
private Long projectGroupWorkerId;
/**
* 状态 状态 0-有效 1-无效
*/
private Integer status;
//
// /**
// * 所属的项目内班组id
// */
// private Long belongProjectTeamId;
//
// /**
// * (合作小组才有)原项目内班组id
// */
// private Long sourceProjectTeamId;
// /**
// * 小组id
// */
// private Long projectGroupId;
/**
* 项目内工人id
*/
private Long projectWorkerId;
// /**
// * 小组类型 0-直属小组 1-合作小组
// */
// private Integer groupType;
/**
* 是否删除 0: 其他删除
*/
private Long isDelete;
}
private static final Map<Integer, Class<?>> typeClassMapping = ImmutableMap.of(

View File

@ -208,7 +208,7 @@ public class ListNodeUserReq extends PageReqV2 {
private String keyword;
/**
* 状态1未激活 2已激活 3施工中 4已退场
* @see cn.axzo.orgmanax.api.projectworker.enums.ProjectWorkerStatusEnum
* @see cn.axzo.orgmanax.api.project.worker.enums.ProjectWorkerStatusEnum
*/
private Collection<Integer> projectWorkerStatuses;
/**
@ -307,6 +307,8 @@ public class ListNodeUserReq extends PageReqV2 {
*/
private DistinctRule distinctRule;
//
// 指定聚合信息
/**
* 聚合信息needs

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.enums;
package cn.axzo.orgmanax.dto.project.group.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
package cn.axzo.orgmanax.dto.project.group.req;
import lombok.AllArgsConstructor;
import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
package cn.axzo.orgmanax.dto.project.group.req;
import lombok.AllArgsConstructor;
import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
package cn.axzo.orgmanax.dto.project.group.req;
import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
package cn.axzo.orgmanax.dto.project.group.req;
import cn.axzo.foundation.page.PageReqV2;
import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
package cn.axzo.orgmanax.dto.project.group.req;
import cn.axzo.foundation.page.PageReqV2;
import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
package cn.axzo.orgmanax.dto.project.group.req;
import cn.axzo.foundation.page.PageReqV2;
import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
package cn.axzo.orgmanax.dto.project.group.req;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
package cn.axzo.orgmanax.dto.project.group.req;
import cn.axzo.foundation.page.PageReqV2;
import com.fasterxml.jackson.annotation.JsonIgnore;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.req;
package cn.axzo.orgmanax.dto.project.group.req;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.Data;
import lombok.EqualsAndHashCode;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.Data;

View File

@ -1,6 +1,6 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import cn.axzo.orgmanax.dto.projectgroup.enums.ProjectGroupOwnerPermissionEnum;
import cn.axzo.orgmanax.dto.project.group.enums.ProjectGroupOwnerPermissionEnum;
import lombok.Data;
import java.util.List;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import cn.axzo.orgmanax.dto.project.team.dto.TeamCategoryAggregateDTO;
import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.Data;
import lombok.experimental.Accessors;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.axzo.orgmanax.dto.projectgroup.resp;
package cn.axzo.orgmanax.dto.project.group.resp;
import lombok.AllArgsConstructor;
import lombok.Builder;

View File

@ -269,11 +269,6 @@ public class NodeUserServiceImpl implements NodeUserService {
return listReq;
}
@Override
public List<SearchEntNodeUserResp> searchEntUser(SearchEntNodeUserReq req) {
return nodeUserFoundationService.searchEntUser(req);
}
/**
* 处理 findBy 查询通过查询结果再次查询的情况 findByTopNodeId findByAncestorNodeId
*
@ -321,6 +316,11 @@ public class NodeUserServiceImpl implements NodeUserService {
return nodeUserQueryRepository.page(findByReq);
}
@Override
public List<SearchEntNodeUserResp> searchEntUser(SearchEntNodeUserReq req) {
return nodeUserFoundationService.searchEntUser(req);
}
private void assemble(ListNodeUserReq req, List<NodeUserDTO> records) {
assembleUnit(req, records);
assembleJob(req, records);

View File

@ -29,7 +29,7 @@ public class OrgUserController implements OrgUserApi {
}
@Override
public ApiResult<PageResp<PageOrgUserElementResp>> page(PageOrgUserReq req) {
public ApiResult<PageResp<PageOrgUserElementResp>> genericPage(PageOrgUserReq req) {
return ApiResult.success();
}
}

View File

@ -0,0 +1,38 @@
package cn.axzo.orgmanax.server.projectworker.controller;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.api.project.worker.feign.OrgProjectWorkerApi;
import cn.axzo.orgmanax.dto.project.group.req.ProjectDirectGroupUngroupedWorkerReq;
import cn.axzo.orgmanax.dto.project.group.req.ProjectDirectGroupWorkerListReq;
import cn.axzo.orgmanax.dto.project.group.resp.ProjectDirectGroupUngroupedWorkerResp;
import cn.axzo.orgmanax.dto.project.group.resp.ProjectDirectGroupWorkerListResp;
import cn.axzo.orgmanax.server.projectworker.service.OrgProjectWorkerService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import java.util.List;
/**
* @author zhanghongbo
* @date 2025/1/8
*/
@RestController
@Slf4j
@AllArgsConstructor
public class OrgProjectWorkerController implements OrgProjectWorkerApi {
private OrgProjectWorkerService orgProjectWorkerService;
@Override
public ApiResult<List<ProjectDirectGroupUngroupedWorkerResp>> ungroupedWorker(@Valid ProjectDirectGroupUngroupedWorkerReq req) {
orgProjectWorkerService.ungroupedWorker(req);
return null;
}
@Override
public ApiResult<List<ProjectDirectGroupWorkerListResp>> workerList(@Valid ProjectDirectGroupWorkerListReq req) {
return null;
}
}

View File

@ -0,0 +1,14 @@
package cn.axzo.orgmanax.server.projectworker.service;
import cn.axzo.orgmanax.dto.project.group.req.ProjectDirectGroupUngroupedWorkerReq;
import cn.axzo.orgmanax.dto.project.group.resp.ProjectDirectGroupUngroupedWorkerResp;
import java.util.List;
/**
* @author zhanghongbo
* @date 2025/1/8
*/
public interface OrgProjectWorkerService {
List<ProjectDirectGroupUngroupedWorkerResp> ungroupedWorker(ProjectDirectGroupUngroupedWorkerReq req);
}

View File

@ -0,0 +1,68 @@
package cn.axzo.orgmanax.server.projectworker.service.impl;
import cn.axzo.orgmanax.api.project.worker.enums.ProjectWorkerStatusEnum;
import cn.axzo.orgmanax.dto.common.IdentityType;
import cn.axzo.orgmanax.dto.node.req.ListNodeReq;
import cn.axzo.orgmanax.dto.nodeuser.dto.NodeUserDTO;
import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq;
import cn.axzo.orgmanax.dto.project.group.req.ProjectDirectGroupUngroupedWorkerReq;
import cn.axzo.orgmanax.dto.project.group.resp.ProjectDirectGroupUngroupedWorkerResp;
import cn.axzo.orgmanax.server.node.service.NodeService;
import cn.axzo.orgmanax.server.nodeuser.service.NodeUserService;
import cn.axzo.orgmanax.server.projectworker.service.OrgProjectWorkerService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author zhanghongbo
* @date 2025/1/8
*/
@Service
@Slf4j
@AllArgsConstructor
public class OrgProjectWorkerServiceImpl implements OrgProjectWorkerService {
private NodeUserService nodeUserService;
private NodeService nodeService;
@Override
public List<ProjectDirectGroupUngroupedWorkerResp> ungroupedWorker(ProjectDirectGroupUngroupedWorkerReq req) {
// //查询班组下工人
// List<NodeUserDTO> nodeUserDTOS4Team = nodeUserService.list(ListNodeUserReq.builder()
// .workspaceId(req.getWorkspaceId())
// .platTeamId(req.getPlatTeamId())
// .identityType(IdentityType.WORKER.getCode())
// .projectWorkerStatuses(Lists.newArrayList(ProjectWorkerStatusEnum.INACTIVE.getValue(), ProjectWorkerStatusEnum.ACTIVE.getValue()))
// .build());
// if (ObjectUtil.isEmpty(nodeUserDTOS4Team)) {
// return Collections.emptyList();
// }
//
// //查询班组下的直属小组工人
// nodeService.list(ListNodeReq.builder()
// .platTeamIds(Sets.newHashSet(req.getPlatTeamId()))
// .workspaceIds(Sets.newHashSet(req.getWorkspaceId()))
// .groupType(ProjectGroupTypeEnum.DIRECTLY_UNDER.getValue())
// .build());
//
//
// List<NodeUserDTO> nodeUserDTOS = nodeUserService.list(ListNodeUserReq.builder()
// .workspaceId(req.getWorkspaceId())
// .platTeamId(req.getPlatTeamId())
// .projectWorkerStatuses(Lists.newArrayList(ProjectWorkerStatusEnum.INACTIVE.getValue(), ProjectWorkerStatusEnum.ACTIVE.getValue()))
// .build());
return null;
}
}

View File

@ -1,11 +1,8 @@
package cn.axzo.orgmanax.server.workerprofession.service.impl;
import cn.axzo.orgmanax.dto.workerprofession.dto.ProjectWorkerProfessionDTO;
import com.google.common.collect.Maps;
import cn.axzo.foundation.dao.support.mysql.MybatisPlusOperatorProcessor;
import cn.axzo.foundation.dao.support.wrapper.Operator;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.orgmanax.api.projectworker.enums.ProjectWorkerStatusEnum;
import cn.axzo.orgmanax.api.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;