Files
data-engine/sql/seed_data_dingtalk_hrm.sql
2026-06-11 13:06:54 +08:00

70 lines
2.9 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================
-- 钉钉智能人事平台初始化数据
-- 注意:此平台使用 x-acs-dingtalk-access-token Header 认证
-- API 基础地址为 https://api.dingtalk.com与 oapi 不同)
--
-- 执行后需配置 tokenOAUTH2 读取 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
);