Files
data-engine/.codebuddy/memory/2026-06-03.md
2026-06-11 13:06:54 +08:00

37 lines
2.2 KiB
Markdown
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.
# 2026-06-03 工作记录
## 钉钉智能薪酬平台对接
- 新增 `dingtalk_salary` 平台 + 2个接口到 `sql/seed_data_dingtalk_salary.sql`
- 新认证类型 `APP_SIGNATURE`app-id + signature 头部认证
- 签名算法MD5(body_string + app_secret).toUpperCase()
### 接口明细
1. **salary_dept_list**`POST /oapi/salary/dept/list`,无入参,单次拉取全量部门
2. **salary_statistics**`POST /oapi/salary/statistics/dept`prefetch 自 salary_dept_listrow_inject statisticsMonth
### 代码改动
- `api_client.go`: `applyAuthHeader` 扩展支持 `APP_SIGNATURE` 认证,新增 `applyAppSignatureAuth` + `computeBodySignature`
- `platform_manager.go`: 新增 `APP_SIGNATURE` case从 auth_config 提取 app_id/app_secret
- `dynamic_sync.go`:
- `toFloat64` 扩展支持 string→float64适配 salary API 返回 code: "200" 字符串)
- `buildReqBody`/`buildPrefetchParams` skip list 新增 `row_inject`
- 新增 `injectRowFields` 函数:将请求参数注入响应行
- `injectRowFields` 调用于 syncWithPrefetch 中3处 row 注入点
## 新增钉钉智能薪酬人力成本报表接口 (2026-06-03 第二阶段)
### 新增接口
3. **salary_statistic_report**`POST /oapi/salary/statistic/report/data`无分页single_record获取指定月份的人力成本报表
- 入参:`calBizId`(格式 yyyyMM"M",如 "202606M",为空默认当月)
- 出参:`data.calBizId` + `data.sumStatisticsData`(成本项数组 JSONB
- 表:`dingtalk_salary_statistic_report`conflict_key: `calBizId`
4. **salary_statistic_report_group**`POST /oapi/salary/statistic/report/groupData`无分页single_record
- 入参:`calBizId` + `salaryGroupName`(必填),使用 `row_inject` 注入 salaryGroupName
- 表:`dingtalk_salary_statistic_report_group`conflict_keys: `calBizId` + `salaryGroupName`
### 代码改动
- `dynamic_sync.go`:修复主同步路径(非 prefetch`injectRowFields` 未调用的问题
- 在 5 处 savePage 调用前添加 injectRowFields初始页、游标分页循环、hasMore 分页、普通分页(有/无 response_config
- 使 `row_inject` 在单记录single_record非 prefetch 接口中也能生效