重构数据引擎和报表引擎

This commit is contained in:
2026-06-11 13:06:54 +08:00
parent 285a0fc632
commit 419473f266
53 changed files with 8434 additions and 375 deletions

View File

@@ -0,0 +1,69 @@
-- =============================================
-- 钉钉智能人事平台初始化数据
-- 注意:此平台使用 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
);