feat(REQ-3488): 人员通用查询接口迁移调整

This commit is contained in:
songyuanlun 2025-01-03 10:29:11 +08:00
parent a5ea6b4f22
commit 2f885b3c48
8 changed files with 304 additions and 1 deletions

View File

@ -2,8 +2,11 @@ package cn.axzo.orgmanax.api.orguser.feign;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.dto.orguser.req.ListOrgUserReq;
import cn.axzo.orgmanax.dto.orguser.dto.OrgUserDTO;
import cn.axzo.orgmanax.dto.orguser.req.ListOrgUserReq;
import cn.axzo.orgmanax.dto.orguser.req.PageOrgUserReq;
import cn.axzo.orgmanax.dto.orguser.resp.PageOrgUserElementResp;
import javax.validation.Valid;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
@ -32,4 +35,14 @@ public interface OrgUserApi {
@PostMapping("/api/org-user/list")
ApiResult<PageResp<OrgUserDTO>> list(@RequestBody @Validated ListOrgUserReq req);
/**
* TODO: 第三期实现
* 通用人员列表分页查询
* 和其他接口逻辑返回结构完全不同只能平迁
* @param req 分页查询入参
* @return 通用人员列表
*/
@PostMapping(value = "/api/org-user/generic/page")
ApiResult<PageResp<PageOrgUserElementResp>> page(@RequestBody @Valid PageOrgUserReq req);
}

View File

@ -0,0 +1,21 @@
package cn.axzo.orgmanax.dto.orguser.enums;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @description
* 通用人员列表场景枚举
* @author luofu
* @version 1.0
* @date 2024/8/2
*/
@Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public enum GenericUserListScenarioEnum {
ATTENDANCE("考勤");
private final String desc;
}

View File

@ -0,0 +1,24 @@
package cn.axzo.orgmanax.dto.orguser.enums;
/**
* @author luofu
* @version 1.0
* @date 2024/8/2
*/
public interface IBaseUserFlagEnum {
/**
* 获取用户标签编码
*/
String getCode();
/**
* 获取用户标签描述
*/
String getDesc();
/**
* 标签优先级
*/
int getPriority();
}

View File

@ -0,0 +1,65 @@
package cn.axzo.orgmanax.dto.orguser.req;
import cn.axzo.foundation.page.PageReqV2;
import cn.axzo.orgmanax.dto.orguser.enums.GenericUserListScenarioEnum;
import com.alibaba.fastjson.JSON;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author luofu
* @version 1.0
* @date 2024/8/2
*/
@EqualsAndHashCode(callSuper = true)
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class PageOrgUserReq extends PageReqV2 {
/**
* 人员列表使用的业务场景
* ATTENDANCE: 考勤
*
* @see GenericUserListScenarioEnum
*/
@NotNull(message = "业务场景不能为空")
private String scenario;
/**
* 项目id
*/
private Long workspaceId;
/**
* 当前用户session中的单位id
*/
private Long sessionOuId;
/**
* 搜索关键字
* * 姓名模糊查询
* * 手机号身份证号精确匹配
*/
private String keyword;
/**
* 单位id列表
*/
private List<Long> ouIds;
/**
* 用户标签编码列表
*/
private List<String> userFlagCodes;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,59 @@
package cn.axzo.orgmanax.dto.orguser.resp;
import com.alibaba.fastjson.JSON;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @description 用户基础信息
* @author luofu
* @version 1.0
* @date 2024/8/2
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class OrgUserBriefResp implements Serializable {
private static final long serialVersionUID = -1037841970293974523L;
/**
* 自然人id
*/
private Long personId;
/**
* 身份id
*/
private Long identityId;
/**
* 真实姓名
*/
private String realName;
/**
* 用户头像
*/
private String avatarUrl;
/**
* 性别
* 1女性
* 2男性
*/
private Integer genderCode;
/**
* 手机号
*/
private String phone;
/**
* 身份证号
*/
private String idNumber;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,45 @@
package cn.axzo.orgmanax.dto.orguser.resp;
import cn.axzo.orgmanax.dto.orguser.enums.IBaseUserFlagEnum;
import com.alibaba.fastjson.JSON;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @description 标签实体
* @author luofu
* @version 1.0
* @date 2024/8/2
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrgUserFlagEntityResp implements Serializable {
private static final long serialVersionUID = -6965721030042547822L;
/**
* 标签编码
*/
private String flagCode;
/**
* 标签描述
*/
private String flagDesc;
public static OrgUserFlagEntityResp from(IBaseUserFlagEnum userFlag) {
return OrgUserFlagEntityResp.builder()
.flagCode(userFlag.getCode())
.flagDesc(userFlag.getDesc())
.build();
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -0,0 +1,69 @@
package cn.axzo.orgmanax.dto.orguser.resp;
import com.alibaba.fastjson.JSON;
import java.io.Serializable;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @author luofu
* @version 1.0
* @date 2024/8/2
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class PageOrgUserElementResp implements Serializable {
private static final long serialVersionUID = 4468275572308565888L;
/**
* 用户基础信息
*/
private OrgUserBriefResp brief;
/**
* 单位id
*/
private Long ouId;
/**
* 单位名称
*/
private String ouName;
/**
* 部门id
*/
private Long orgNodeId;
/**
* 部门名称
*/
private String orgNodeName;
/**
* 主管标识
*/
private Boolean managerFlag;
/**
* 岗位id - 主岗
*/
private Long jobId;
/**
* 岗位名称 - 主岗
*/
private String jobName;
/**
* 用户标签列表
*/
private List<OrgUserFlagEntityResp> userFlagEntities;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

View File

@ -5,6 +5,8 @@ import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.api.orguser.feign.OrgUserApi;
import cn.axzo.orgmanax.dto.orguser.req.ListOrgUserReq;
import cn.axzo.orgmanax.dto.orguser.dto.OrgUserDTO;
import cn.axzo.orgmanax.dto.orguser.req.PageOrgUserReq;
import cn.axzo.orgmanax.dto.orguser.resp.PageOrgUserElementResp;
import cn.axzo.orgmanax.server.orguser.service.OrgUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
@ -25,4 +27,9 @@ public class OrgUserController implements OrgUserApi {
public ApiResult<PageResp<OrgUserDTO>> list(ListOrgUserReq req) {
return ApiResult.success(orgUserService.page(req));
}
@Override
public ApiResult<PageResp<PageOrgUserElementResp>> page(PageOrgUserReq req) {
return ApiResult.success();
}
}