重构数据引擎和报表引擎
This commit is contained in:
36
.codebuddy/memory/2026-06-03.md
Normal file
36
.codebuddy/memory/2026-06-03.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# 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_list,row_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 接口中也能生效
|
||||
Reference in New Issue
Block a user