70 lines
2.9 KiB
SQL
70 lines
2.9 KiB
SQL
-- =============================================
|
||
-- 钉钉智能人事平台初始化数据
|
||
-- 注意:此平台使用 x-acs-dingtalk-access-token Header 认证
|
||
-- API 基础地址为 https://api.dingtalk.com(与 oapi 不同)
|
||
--
|
||
-- 执行后需配置 token(OAUTH2 读取 token 列,非 api_key):
|
||
-- UPDATE api_datasource_platform SET token = '你的hrm access_token'
|
||
-- WHERE platform_code = 'dingtalk_hrm';
|
||
-- =============================================
|
||
|
||
-- 1. 创建钉钉智能人事平台
|
||
INSERT INTO api_datasource_platform (
|
||
tenant_id, creator, created_at, updater, updated_at,
|
||
platform_code, platform_name, description, status,
|
||
api_base_url, auth_type,
|
||
auth_config,
|
||
rate_limit_per_minute, rate_limit_per_hour,
|
||
concurrency_limit, request_timeout_ms, max_retries, retry_delay_ms
|
||
) VALUES (
|
||
1, 'admin', NOW(), 'admin', NOW(),
|
||
'dingtalk_hrm', '钉钉智能人事', '钉钉智能人事数据同步(header 认证)', 'ACTIVE',
|
||
'https://api.dingtalk.com', 'OAUTH2',
|
||
'{
|
||
"token_in_query": false,
|
||
"header_name": "x-acs-dingtalk-access-token",
|
||
"header_format": "{token}"
|
||
}'::jsonb,
|
||
60, 3600, 5, 30000, 3, 1000
|
||
);
|
||
|
||
-- 2. 企业职位列表(游标分页,hasMore 判结束)
|
||
-- 响应:list(职位数组),nextToken(游标),hasMore(是否还有更多)
|
||
-- 注意:此接口成功时无 errcode 字段,parseRespExt 在找不到 success_field 时自动跳过检查
|
||
INSERT INTO api_interface (
|
||
tenant_id, creator, created_at, updater, updated_at,
|
||
platform_id, name, code, url, method, status, auth_type,
|
||
request_config, response_config, table_definition
|
||
) VALUES (
|
||
1, 'admin', NOW(), 'admin', NOW(),
|
||
(SELECT id FROM api_datasource_platform WHERE platform_code = 'dingtalk_hrm'),
|
||
'企业职位列表', 'position_list',
|
||
'/v1.0/hrm/positions/query', 'POST', 'active', 'inherit',
|
||
'{
|
||
"cursor_pagination": true,
|
||
"page_param": "nextToken",
|
||
"page_size_param": "maxResults",
|
||
"pageSize": 200,
|
||
"initial_cursor": 0,
|
||
"parameters_location": "query"
|
||
}'::jsonb,
|
||
'{
|
||
"list_path": "list",
|
||
"cursor_field": "nextToken",
|
||
"has_more_field": "hasMore"
|
||
}'::jsonb,
|
||
'{
|
||
"table_name": "dingtalk_position",
|
||
"columns": [
|
||
{"name": "positionId", "type": "VARCHAR(100)", "comment": "职位ID"},
|
||
{"name": "positionName", "type": "VARCHAR(300)", "comment": "职位名称"},
|
||
{"name": "positionCategoryId", "type": "VARCHAR(100)", "comment": "职位类别ID"},
|
||
{"name": "jobId", "type": "VARCHAR(100)", "comment": "所属职务ID"},
|
||
{"name": "positionDes", "type": "TEXT", "comment": "职位描述"},
|
||
{"name": "rankIdList", "type": "JSONB", "comment": "职级ID列表"},
|
||
{"name": "status", "type": "INT", "comment": "职位状态 0启用 1停用"}
|
||
],
|
||
"conflict_keys": ["positionId"]
|
||
}'::jsonb
|
||
);
|