package com.malk.service.h3yun; import java.io.File; import java.util.List; import java.util.Map; public interface CYClient { //////////////////////////// 单据流程 //////////////////////////// // todo: 统一规划宜搭和氚云格式 /** * 查询表单数据 * * @param schemaCode 表单编码 * @param extInfo 扩展信息 * - pageNumber 分页页码; pageSize 分页页大小,最大值500 * - returnFields 需要返回的字段名,仅支持传入主表的字段 * - matcherJson json格式的动态条件过滤器 * - sortByFields: { fieldName: "排序字段名", direction: "Ascending:升序 / Descending:降序" } 排序字段结构列表 */ List queryData(String accessToken, String schemaCode, Map extInfo); /** * 创建流程数据 [todo: 接口代合并, 流程的逻辑为先创建表单数据为Draft, 再进行流程提交] * * @param extInfo 扩展信息, opUserId 操作用户ID * - 流程发起, 需要传递创建Draft数据ID; * - 创建表单数据 bizObjectJson ; isDraft 是否是草稿 */ Map operateData(String accessToken, String schemaCode, Map extInfo); //////////////////////////// 附件处理 //////////////////////////// /** * 获取附件临时免登地址 [此返回地址有效期为三十分钟] * * @param attachmentId 获取原附件预览地址 [只能作为在线预览, 接口传递无登录态, 参考 getAttachmentPreviewUrl] * @return 返回地址无后缀了[选择对应类型软件可打开], 建议通过氚云文件名做处理, 重新命名储存文件名称与后缀 */ String getTemporaryUrls(String accessToken, String attachmentId); /** * 储存氚云附件到本地, 保留文件名称与格式 */ File saveFromTemporaryUrl(String accessToken, Map attachmentId); //////////////////////////// 组织架构 //////////////////////////// /** * 获取用户数据 * - * ppExt 氚云组织架构只有全量查询接口, 且部门和用户ID, 有单独ID. 更甚接口未返回钉钉userId与手机号登信息 * 1. todo: 后续考虑新建氚云webservice进行查询 * 2. 临时方案为, H_User系统表, 字段DingTalkAccount「返回格式为 userId.corpId」, 通过氚云定时任务储存与钉钉对照关系 * * @param isRecursive 是否递归获取子级部门下的用户。默认值为false */ @Deprecated List getUserInfoList(String accessToken, String departmentId, boolean isRecursive); /** * 获取组织数据 [ppExt: 氚云接口返回组织架构为平铺列表, 若需要可通过 parentId 构建] * * @param departmentId 为空返回同步部门 */ @Deprecated List getDepartmentInfoList(String accessToken, String departmentId); }