diff --git a/docs/iwork 人力资源组织机构RESTFUL接口说明.pdf b/docs/iwork 人力资源组织机构RESTFUL接口说明.pdf new file mode 100644 index 00000000..b60c8581 Binary files /dev/null and b/docs/iwork 人力资源组织机构RESTFUL接口说明.pdf differ diff --git a/docs/附件上传注解使用说明.md b/docs/附件上传注解使用说明.md new file mode 100644 index 00000000..31ceda6b --- /dev/null +++ b/docs/附件上传注解使用说明.md @@ -0,0 +1,152 @@ +# @FileUploadController 注解使用说明 + +本文档说明 `@FileUploadController` 的使用方式、调用流程、以及报文结构示例。适用范围为业务创建接口在请求体中携带附件列表的场景,并在业务创建成功后自动建立“业务-附件”的关联关系。 + +## 1. 适用前提 + +- **附件列表在业务创建请求体中传入**。 +- **业务创建返回结构统一为**:`{ code, data: { id, code } }`。 +- 不涉及二次请求与补充请求头流程(文档不包含相关内容)。 + +## 2. 注解字段说明 + +位置:`com.zt.plat.framework.business.annotation.FileUploadController` + +| 字段 | 说明 | 默认值 | 备注 | +|---|---|---|---| +| `filesKey` | 请求体中附件数组的路径 | `files` | 支持多层级路径,如 `data.files` | +| `fileNameKey` | 附件名称字段 | `name` | 解析附件名称使用 | +| `fileIdKey` | 附件ID字段 | `id` | 解析附件ID使用 | +| `source` | 业务来源标识 | `default` | 例如 `bpm` / `oa` / `hr` 等 | +| `primaryKey` | 响应中业务主键路径 | `data.id` | 支持多层级路径 | +| `codeKey` | 响应中业务编码路径 | `data.code` | 支持多层级路径 | + +## 3. 关联处理机制(简述) + +当 Controller 标注 `@FileUploadController` 后: + +1. 请求进入时会读取注解配置并写入 request attribute。 +2. 请求处理完成后,过滤器会读取: + - 请求体中的附件数组 + - 响应体中的业务主键与业务编码 +3. 当响应 `code == 0` 时,自动调用 `BusinessFileApi.batchCreateBusinessFile(...)` 建立附件关联。 + +> 注意:如果请求体中未包含附件数组,或响应中未返回业务主键,则不会产生关联。 + +## 4. 标准调用流程 + +### 步骤 1:业务 Controller 标注注解 + +```java +@FileUploadController(source = "template.contract") +public class DemoContractController extends AbstractFileUploadController implements BusinessControllerMarker { + static { + FileUploadController annotation = DemoContractController.class.getAnnotation(FileUploadController.class); + if (annotation != null) { + setFileUploadInfo(annotation); + } + } +} +``` + +### 步骤 2:可选获取 source 信息 + +请求: + +``` +GET /template/demo-contract/upload-info +``` + +响应: + +```json +{ + "code": 0, + "data": { "source": "template.contract" }, + "msg": "成功" +} +``` + +### 步骤 3:业务创建请求携带附件列表 + +请求体示例(默认字段): + +```json +{ + "name": "测试合同", + "amount": 2000, + "files": [ + { "id": 10125, "name": "合同附件.pdf" }, + { "id": 10126, "name": "补充材料.docx" } + ] +} +``` + +### 步骤 4:业务创建成功返回 + +响应体示例(统一结构): + +```json +{ + "code": 0, + "data": { + "id": 90001, + "code": "HT-2026-0001" + }, + "msg": "成功" +} +``` + +系统会自动读取: + +- `files` 中的 `id/name` +- `data.id` 和 `data.code` + +并建立业务附件关联。 + +## 5. 多层级字段示例(可选配置) + +如果业务请求体与响应体存在嵌套结构,可通过注解自定义路径: + +```java +@FileUploadController( + source = "template.contract", + filesKey = "data.files", + fileIdKey = "fileId", + fileNameKey = "fileName", + primaryKey = "data.businessId", + codeKey = "data.businessCode" +) +``` + +对应请求体示例: + +```json +{ + "data": { + "files": [ + { "fileId": 1001, "fileName": "合同.pdf" } + ] + } +} +``` + +对应响应体示例: + +```json +{ + "code": 0, + "data": { + "businessId": 90001, + "businessCode": "HT-2026-0001" + }, + "msg": "成功" +} +``` + +## 6. 常见注意事项 + +- 响应 `code != 0` 时不会执行附件关联。 +- `files` 必须是数组,否则会被忽略。 +- 若业务返回未包含 `primaryKey` 对应的字段,附件不会关联。 +- `source` 建议以业务模块唯一标识命名,便于后续查询与归档。 diff --git a/sql/dm/统一对外网关_20251010.sql b/sql/dm/统一对外网关_20251010.sql index b334f638..acacbebf 100644 --- a/sql/dm/统一对外网关_20251010.sql +++ b/sql/dm/统一对外网关_20251010.sql @@ -218,6 +218,7 @@ CREATE TABLE databus_api_client_credential ( create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, updater VARCHAR(64) DEFAULT '' NOT NULL, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, + enable_encryption BIT DEFAULT '1' NOT NULL, deleted BIT DEFAULT '0' NOT NULL ); diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/IWorkIntegrationApi.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/IWorkIntegrationApi.java index 9181a071..84851de0 100644 --- a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/IWorkIntegrationApi.java +++ b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/IWorkIntegrationApi.java @@ -46,18 +46,18 @@ public interface IWorkIntegrationApi { @PostMapping(PREFIX + "/hr/subcompany/page") @Operation(summary = "获取 iWork 分部列表") - CommonResult listSubcompanies(@RequestBody IWorkOrgPageReqDTO reqDTO); + CommonResult listSubcompanies(@RequestBody IWorkSubcompanyQueryReqDTO reqDTO); @PostMapping(PREFIX + "/hr/department/page") @Operation(summary = "获取 iWork 部门列表") - CommonResult listDepartments(@RequestBody IWorkOrgPageReqDTO reqDTO); + CommonResult listDepartments(@RequestBody IWorkDepartmentQueryReqDTO reqDTO); @PostMapping(PREFIX + "/hr/job-title/page") @Operation(summary = "获取 iWork 岗位列表") - CommonResult listJobTitles(@RequestBody IWorkOrgPageReqDTO reqDTO); + CommonResult listJobTitles(@RequestBody IWorkJobTitleQueryReqDTO reqDTO); @PostMapping(PREFIX + "/hr/user/page") @Operation(summary = "获取 iWork 人员列表") - CommonResult listUsers(@RequestBody IWorkOrgPageReqDTO reqDTO); + CommonResult listUsers(@RequestBody IWorkUserQueryReqDTO reqDTO); } diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkDepartmentQueryReqDTO.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkDepartmentQueryReqDTO.java new file mode 100644 index 00000000..7072bb1e --- /dev/null +++ b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkDepartmentQueryReqDTO.java @@ -0,0 +1,48 @@ +package com.zt.plat.module.system.api.iwork.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * iWork 部门查询参数。 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class IWorkDepartmentQueryReqDTO extends IWorkOrgBaseQueryReqDTO { + + @JsonProperty("departmentcode") + @Schema(description = "部门编号") + private String departmentCode; + + @JsonProperty("departmentname") + @Schema(description = "部门名称") + private String departmentName; + + @JsonProperty("subcompanyid1") + @Schema(description = "分部 ID") + private String subcompanyId1; + + @JsonProperty("created") + @Schema(description = "创建时间戳(>=)") + private String created; + + @JsonProperty("modified") + @Schema(description = "修改时间戳(>=)") + private String modified; + + @JsonProperty("canceled") + @Schema(description = "封存标志,默认查询非封存数据。1:封存") + private String canceled; + + @JsonProperty("custom_data") + @Schema(description = "自定义字段列表(逗号分隔)") + private String customData; + + @JsonProperty("id") + @Schema(description = "OA 部门 ID") + private String id; +} diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkJobTitleQueryReqDTO.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkJobTitleQueryReqDTO.java new file mode 100644 index 00000000..553a614c --- /dev/null +++ b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkJobTitleQueryReqDTO.java @@ -0,0 +1,32 @@ +package com.zt.plat.module.system.api.iwork.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * iWork 岗位查询参数。 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class IWorkJobTitleQueryReqDTO extends IWorkOrgBaseQueryReqDTO { + + @JsonProperty("jobtitlename") + @Schema(description = "岗位名称") + private String jobTitleName; + + @JsonProperty("created") + @Schema(description = "创建时间戳(>=)") + private String created; + + @JsonProperty("modified") + @Schema(description = "修改时间戳(>=)") + private String modified; + + @JsonProperty("id") + @Schema(description = "岗位 ID") + private String id; +} diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkOrgBaseQueryReqDTO.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkOrgBaseQueryReqDTO.java new file mode 100644 index 00000000..aeddfdc7 --- /dev/null +++ b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkOrgBaseQueryReqDTO.java @@ -0,0 +1,17 @@ +package com.zt.plat.module.system.api.iwork.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * iWork 人力组织查询基础参数。 + */ +@Data +public class IWorkOrgBaseQueryReqDTO { + + @Schema(description = "当前页码", example = "1") + private Integer curpage; + + @Schema(description = "每页条数", example = "20") + private Integer pagesize; +} diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkOrgPageReqDTO.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkOrgPageReqDTO.java deleted file mode 100644 index 60fe8231..00000000 --- a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkOrgPageReqDTO.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.zt.plat.module.system.api.iwork.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -/** - * iWork 人力组织分页查询通用请求 DTO - */ -@Data -public class IWorkOrgPageReqDTO { - - @Schema(description = "页码", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) - private Integer pageNo; - - @Schema(description = "每页大小", example = "20", requiredMode = Schema.RequiredMode.REQUIRED) - private Integer pageSize; - - @Schema(description = "关键字过滤") - private String keyword; - -} diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkSubcompanyQueryReqDTO.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkSubcompanyQueryReqDTO.java new file mode 100644 index 00000000..0ae343d1 --- /dev/null +++ b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkSubcompanyQueryReqDTO.java @@ -0,0 +1,40 @@ +package com.zt.plat.module.system.api.iwork.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * iWork 分部查询参数。 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class IWorkSubcompanyQueryReqDTO extends IWorkOrgBaseQueryReqDTO { + + @JsonProperty("subcompanycode") + @Schema(description = "分部编号") + private String subcompanyCode; + + @JsonProperty("subcompanyname") + @Schema(description = "分部名称") + private String subcompanyName; + + @JsonProperty("modified") + @Schema(description = "修改时间戳(>=)") + private String modified; + + @JsonProperty("canceled") + @Schema(description = "封存标志,默认查询非封存数据。1:封存") + private String canceled; + + @JsonProperty("custom_data") + @Schema(description = "自定义字段列表(逗号分隔)") + private String customData; + + @JsonProperty("id") + @Schema(description = "OA 分部 ID") + private String id; +} diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkUserQueryReqDTO.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkUserQueryReqDTO.java new file mode 100644 index 00000000..d15b4366 --- /dev/null +++ b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/iwork/dto/IWorkUserQueryReqDTO.java @@ -0,0 +1,60 @@ +package com.zt.plat.module.system.api.iwork.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * iWork 人员查询参数。 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class IWorkUserQueryReqDTO extends IWorkOrgBaseQueryReqDTO { + + @JsonProperty("workcode") + @Schema(description = "人员编号") + private String workCode; + + @JsonProperty("subcompanyid1") + @Schema(description = "分部 ID") + private String subcompanyId1; + + @JsonProperty("departmentid") + @Schema(description = "部门 ID") + private String departmentId; + + @JsonProperty("jobtitleid") + @Schema(description = "岗位 ID") + private String jobTitleId; + + @JsonProperty("id") + @Schema(description = "人员 ID") + private String id; + + @JsonProperty("loginid") + @Schema(description = "登录名") + private String loginId; + + @JsonProperty("created") + @Schema(description = "创建时间戳(>=)") + private String created; + + @JsonProperty("modified") + @Schema(description = "修改时间戳(>=)") + private String modified; + + @JsonProperty("base_custom_data") + @Schema(description = "基本信息自定义字段列表(逗号分隔)") + private String baseCustomData; + + @JsonProperty("person_custom_data") + @Schema(description = "个人信息自定义字段列表(逗号分隔)") + private String personCustomData; + + @JsonProperty("work_custom_data") + @Schema(description = "工作信息自定义字段列表(逗号分隔)") + private String workCustomData; +} diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/iwork/IWorkIntegrationApiImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/iwork/IWorkIntegrationApiImpl.java index b12f91f9..eefc2e95 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/iwork/IWorkIntegrationApiImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/iwork/IWorkIntegrationApiImpl.java @@ -77,7 +77,7 @@ public class IWorkIntegrationApiImpl implements IWorkIntegrationApi { // ----------------- 人力组织分页接口 ----------------- @Override - public CommonResult listSubcompanies(IWorkOrgPageReqDTO reqDTO) { + public CommonResult listSubcompanies(IWorkSubcompanyQueryReqDTO reqDTO) { IWorkSubcompanyQueryReqVO reqVO = BeanUtils.toBean(reqDTO, IWorkSubcompanyQueryReqVO.class); IWorkHrSubcompanyPageRespVO respVO = orgRestService.listSubcompanies(reqVO); IWorkHrSubcompanyPageRespDTO respDTO = BeanUtils.toBean(respVO, IWorkHrSubcompanyPageRespDTO.class); @@ -85,7 +85,7 @@ public class IWorkIntegrationApiImpl implements IWorkIntegrationApi { } @Override - public CommonResult listDepartments(IWorkOrgPageReqDTO reqDTO) { + public CommonResult listDepartments(IWorkDepartmentQueryReqDTO reqDTO) { IWorkDepartmentQueryReqVO reqVO = BeanUtils.toBean(reqDTO, IWorkDepartmentQueryReqVO.class); IWorkHrDepartmentPageRespVO respVO = orgRestService.listDepartments(reqVO); IWorkHrDepartmentPageRespDTO respDTO = BeanUtils.toBean(respVO, IWorkHrDepartmentPageRespDTO.class); @@ -93,7 +93,7 @@ public class IWorkIntegrationApiImpl implements IWorkIntegrationApi { } @Override - public CommonResult listJobTitles(IWorkOrgPageReqDTO reqDTO) { + public CommonResult listJobTitles(IWorkJobTitleQueryReqDTO reqDTO) { IWorkJobTitleQueryReqVO reqVO = BeanUtils.toBean(reqDTO, IWorkJobTitleQueryReqVO.class); IWorkHrJobTitlePageRespVO respVO = orgRestService.listJobTitles(reqVO); IWorkHrJobTitlePageRespDTO respDTO = BeanUtils.toBean(respVO, IWorkHrJobTitlePageRespDTO.class); @@ -101,7 +101,7 @@ public class IWorkIntegrationApiImpl implements IWorkIntegrationApi { } @Override - public CommonResult listUsers(IWorkOrgPageReqDTO reqDTO) { + public CommonResult listUsers(IWorkUserQueryReqDTO reqDTO) { IWorkUserQueryReqVO reqVO = BeanUtils.toBean(reqDTO, IWorkUserQueryReqVO.class); IWorkHrUserPageRespVO respVO = orgRestService.listUsers(reqVO); IWorkHrUserPageRespDTO respDTO = BeanUtils.toBean(respVO, IWorkHrUserPageRespDTO.class); diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkDepartmentQueryReqVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkDepartmentQueryReqVO.java index 059f0962..d0ae5b07 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkDepartmentQueryReqVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkDepartmentQueryReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.system.controller.admin.integration.iwork.vo; +import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,12 +14,35 @@ import lombok.ToString; @ToString(callSuper = true) public class IWorkDepartmentQueryReqVO extends IWorkOrgBaseQueryReqVO { - @Schema(description = "部门编码") + @JsonProperty("departmentcode") + @Schema(description = "部门编号") private String departmentCode; + @JsonProperty("departmentname") @Schema(description = "部门名称") private String departmentName; - @Schema(description = "所属分部ID") - private String subcompanyId; + @JsonProperty("subcompanyid1") + @Schema(description = "分部 ID") + private String subcompanyId1; + + @JsonProperty("created") + @Schema(description = "创建时间戳(>=)") + private String created; + + @JsonProperty("modified") + @Schema(description = "修改时间戳(>=)") + private String modified; + + @JsonProperty("canceled") + @Schema(description = "封存标志,默认查询非封存数据。1:封存") + private String canceled; + + @JsonProperty("custom_data") + @Schema(description = "自定义字段列表(逗号分隔)") + private String customData; + + @JsonProperty("id") + @Schema(description = "OA 部门 ID") + private String id; } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkJobTitleQueryReqVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkJobTitleQueryReqVO.java index 64760eed..191267f9 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkJobTitleQueryReqVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkJobTitleQueryReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.system.controller.admin.integration.iwork.vo; +import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,9 +14,19 @@ import lombok.ToString; @ToString(callSuper = true) public class IWorkJobTitleQueryReqVO extends IWorkOrgBaseQueryReqVO { - @Schema(description = "岗位编码") - private String jobTitleCode; - + @JsonProperty("jobtitlename") @Schema(description = "岗位名称") private String jobTitleName; + + @JsonProperty("created") + @Schema(description = "创建时间戳(>=)") + private String created; + + @JsonProperty("modified") + @Schema(description = "修改时间戳(>=)") + private String modified; + + @JsonProperty("id") + @Schema(description = "岗位 ID") + private String id; } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkOrgBaseQueryReqVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkOrgBaseQueryReqVO.java index 58be39c6..e39d5f02 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkOrgBaseQueryReqVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkOrgBaseQueryReqVO.java @@ -3,7 +3,6 @@ package com.zt.plat.module.system.controller.admin.integration.iwork.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import java.util.Map; /** * iWork 组织查询基础参数。 @@ -16,7 +15,4 @@ public class IWorkOrgBaseQueryReqVO { @Schema(description = "每页条数", example = "10") private Integer pagesize; - - @Schema(description = "查询参数(扩展用),将被序列化为 params 传给 iWork") - private Map params; } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkSubcompanyQueryReqVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkSubcompanyQueryReqVO.java index 781613e7..768e559f 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkSubcompanyQueryReqVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkSubcompanyQueryReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.system.controller.admin.integration.iwork.vo; +import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,9 +14,27 @@ import lombok.ToString; @ToString(callSuper = true) public class IWorkSubcompanyQueryReqVO extends IWorkOrgBaseQueryReqVO { - @Schema(description = "分部编码") + @JsonProperty("subcompanycode") + @Schema(description = "分部编号") private String subcompanyCode; + @JsonProperty("subcompanyname") @Schema(description = "分部名称") private String subcompanyName; + + @JsonProperty("modified") + @Schema(description = "修改时间戳(>=)") + private String modified; + + @JsonProperty("canceled") + @Schema(description = "封存标志,默认查询非封存数据。1:封存") + private String canceled; + + @JsonProperty("custom_data") + @Schema(description = "自定义字段列表(逗号分隔)") + private String customData; + + @JsonProperty("id") + @Schema(description = "OA 分部 ID") + private String id; } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkUserQueryReqVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkUserQueryReqVO.java index 3e4b73fd..5f1fb2f1 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkUserQueryReqVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/integration/iwork/vo/IWorkUserQueryReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.system.controller.admin.integration.iwork.vo; +import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,27 +14,47 @@ import lombok.ToString; @ToString(callSuper = true) public class IWorkUserQueryReqVO extends IWorkOrgBaseQueryReqVO { - @Schema(description = "人员工号") + @JsonProperty("workcode") + @Schema(description = "人员编号") private String workCode; - @Schema(description = "人员姓名") - private String lastName; + @JsonProperty("subcompanyid1") + @Schema(description = "分部 ID") + private String subcompanyId1; - @Schema(description = "所属部门ID") + @JsonProperty("departmentid") + @Schema(description = "部门 ID") private String departmentId; - @Schema(description = "所属分部ID") - private String subcompanyId; - - @Schema(description = "所属岗位ID") + @JsonProperty("jobtitleid") + @Schema(description = "岗位 ID") private String jobTitleId; - @Schema(description = "人员状态 (0:试用, 1:正式, 2:临时, 3:试用延期, 4:解聘, 5:离职, 6:退休, 7:无效)") - private String status; + @JsonProperty("id") + @Schema(description = "人员 ID") + private String id; - @Schema(description = "手机号") - private String mobile; + @JsonProperty("loginid") + @Schema(description = "登录名") + private String loginId; - @Schema(description = "邮箱") - private String email; + @JsonProperty("created") + @Schema(description = "创建时间戳(>=)") + private String created; + + @JsonProperty("modified") + @Schema(description = "修改时间戳(>=)") + private String modified; + + @JsonProperty("base_custom_data") + @Schema(description = "基本信息自定义字段列表(逗号分隔)") + private String baseCustomData; + + @JsonProperty("person_custom_data") + @Schema(description = "个人信息自定义字段列表(逗号分隔)") + private String personCustomData; + + @JsonProperty("work_custom_data") + @Schema(description = "工作信息自定义字段列表(逗号分隔)") + private String workCustomData; } diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/integration/iwork/impl/IWorkOrgRestServiceImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/integration/iwork/impl/IWorkOrgRestServiceImpl.java index f31003a1..0d8973aa 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/integration/iwork/impl/IWorkOrgRestServiceImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/integration/iwork/impl/IWorkOrgRestServiceImpl.java @@ -92,6 +92,18 @@ public class IWorkOrgRestServiceImpl implements IWorkOrgRestService { if (StringUtils.hasText(reqVO.getSubcompanyName())) { params.put("subcompanyname", reqVO.getSubcompanyName()); } + if (StringUtils.hasText(reqVO.getModified())) { + params.put("modified", reqVO.getModified()); + } + if (StringUtils.hasText(reqVO.getCanceled())) { + params.put("canceled", reqVO.getCanceled()); + } + if (StringUtils.hasText(reqVO.getCustomData())) { + params.put("custom_data", reqVO.getCustomData()); + } + if (StringUtils.hasText(reqVO.getId())) { + params.put("id", reqVO.getId()); + } JsonNode node = invokeParamsEndpoint(path, params); return buildSubcompanyPageResp(node); } @@ -106,8 +118,23 @@ public class IWorkOrgRestServiceImpl implements IWorkOrgRestService { if (StringUtils.hasText(reqVO.getDepartmentName())) { params.put("departmentname", reqVO.getDepartmentName()); } - if (StringUtils.hasText(reqVO.getSubcompanyId())) { - params.put("subcompanyid", reqVO.getSubcompanyId()); + if (StringUtils.hasText(reqVO.getSubcompanyId1())) { + params.put("subcompanyid1", reqVO.getSubcompanyId1()); + } + if (StringUtils.hasText(reqVO.getCreated())) { + params.put("created", reqVO.getCreated()); + } + if (StringUtils.hasText(reqVO.getModified())) { + params.put("modified", reqVO.getModified()); + } + if (StringUtils.hasText(reqVO.getCanceled())) { + params.put("canceled", reqVO.getCanceled()); + } + if (StringUtils.hasText(reqVO.getCustomData())) { + params.put("custom_data", reqVO.getCustomData()); + } + if (StringUtils.hasText(reqVO.getId())) { + params.put("id", reqVO.getId()); } JsonNode node = invokeParamsEndpoint(path, params); return buildDepartmentPageResp(node); @@ -117,12 +144,18 @@ public class IWorkOrgRestServiceImpl implements IWorkOrgRestService { public IWorkHrJobTitlePageRespVO listJobTitles(IWorkJobTitleQueryReqVO reqVO) { String path = orgPaths().getJobTitlePage(); Map params = buildBaseParams(reqVO); - if (StringUtils.hasText(reqVO.getJobTitleCode())) { - params.put("jobtitlecode", reqVO.getJobTitleCode()); - } if (StringUtils.hasText(reqVO.getJobTitleName())) { params.put("jobtitlename", reqVO.getJobTitleName()); } + if (StringUtils.hasText(reqVO.getCreated())) { + params.put("created", reqVO.getCreated()); + } + if (StringUtils.hasText(reqVO.getModified())) { + params.put("modified", reqVO.getModified()); + } + if (StringUtils.hasText(reqVO.getId())) { + params.put("id", reqVO.getId()); + } JsonNode node = invokeParamsEndpoint(path, params); return buildJobTitlePageResp(node); } @@ -134,11 +167,8 @@ public class IWorkOrgRestServiceImpl implements IWorkOrgRestService { if (StringUtils.hasText(reqVO.getWorkCode())) { params.put("workcode", reqVO.getWorkCode()); } - if (StringUtils.hasText(reqVO.getLastName())) { - params.put("lastname", reqVO.getLastName()); - } - if (StringUtils.hasText(reqVO.getSubcompanyId())) { - params.put("subcompanyid", reqVO.getSubcompanyId()); + if (StringUtils.hasText(reqVO.getSubcompanyId1())) { + params.put("subcompanyid1", reqVO.getSubcompanyId1()); } if (StringUtils.hasText(reqVO.getDepartmentId())) { params.put("departmentid", reqVO.getDepartmentId()); @@ -146,14 +176,26 @@ public class IWorkOrgRestServiceImpl implements IWorkOrgRestService { if (StringUtils.hasText(reqVO.getJobTitleId())) { params.put("jobtitleid", reqVO.getJobTitleId()); } - if (StringUtils.hasText(reqVO.getStatus())) { - params.put("status", reqVO.getStatus()); + if (StringUtils.hasText(reqVO.getId())) { + params.put("id", reqVO.getId()); } - if (StringUtils.hasText(reqVO.getMobile())) { - params.put("mobile", reqVO.getMobile()); + if (StringUtils.hasText(reqVO.getLoginId())) { + params.put("loginid", reqVO.getLoginId()); } - if (StringUtils.hasText(reqVO.getEmail())) { - params.put("email", reqVO.getEmail()); + if (StringUtils.hasText(reqVO.getCreated())) { + params.put("created", reqVO.getCreated()); + } + if (StringUtils.hasText(reqVO.getModified())) { + params.put("modified", reqVO.getModified()); + } + if (StringUtils.hasText(reqVO.getBaseCustomData())) { + params.put("base_custom_data", reqVO.getBaseCustomData()); + } + if (StringUtils.hasText(reqVO.getPersonCustomData())) { + params.put("person_custom_data", reqVO.getPersonCustomData()); + } + if (StringUtils.hasText(reqVO.getWorkCustomData())) { + params.put("work_custom_data", reqVO.getWorkCustomData()); } JsonNode node = invokeParamsEndpoint(path, params); return buildUserPageResp(node); @@ -161,9 +203,6 @@ public class IWorkOrgRestServiceImpl implements IWorkOrgRestService { private Map buildBaseParams(IWorkOrgBaseQueryReqVO reqVO) { Map params = new HashMap<>(); - if (reqVO.getParams() != null) { - params.putAll(reqVO.getParams()); - } if (reqVO.getCurpage() != null) { params.put("curpage", reqVO.getCurpage()); }