在前后端开发联调前 的提交20260223

This commit is contained in:
Neo
2026-02-23 23:02:20 +08:00
parent 254ccb1e77
commit fafc95e64c
1142 changed files with 10366960 additions and 36957 deletions

View File

@@ -1,50 +0,0 @@
# 助教撤销记录GetAbolitionAssistant → assistant_cancellation_records 字段映射
> 生成时间2026-02-14
## 端点信息
| 属性 | 值 |
|------|-----|
| 接口路径 | `AssistantPerformance/GetAbolitionAssistant` |
| 请求方法 | POST |
| ODS 对应表 | `ods.assistant_cancellation_records` |
| JSON 数据路径 | `data.abolitionAssistants` |
## 字段映射
| JSON 字段 | ODS 列名 | 类型转换 | 说明 |
|-----------|----------|----------|------|
| id | id | int→BIGINT`parse_int` | 本表主键 ID用于唯一标识一条记录 |
| siteId | siteId | int→BIGINT`parse_int` | 门店 ID即该废除记录所在门店 |
| siteProfile | siteProfile | object→JSONB原样存储 | 门店信息快照 |
| assistantName | assistantName | string→TEXT原样 | 助教姓名/对外展示名称 |
| assistantAbolishAmount | assistantAbolishAmount | float→NUMERIC(18,2)`parse_decimal` | 与“助教废除”关联的金额字段 |
| assistantOn | assistantOn | int→INT`parse_int` | 助教编号(工号/序号) |
| pdChargeMinutes | pdChargeMinutes | int→INT`parse_int` | “已发生的计费时长(分钟)”,即这次助教服务在被废除前已经累计了多少分钟 |
| tableAreaId | tableAreaId | int→BIGINT`parse_int` | 台桌所在区域 ID |
| tableArea | tableArea | string→TEXT原样 | 台桌所属区域名称 |
| tableId | tableId | int→BIGINT`parse_int` | 球台/桌子的 ID |
| tableName | tableName | string→TEXT原样 | 台桌名称/编号,供人阅读 |
| trashReason | trashReason | string→TEXT原样 | 用于记录“废除原因”的文本描述,例如“顾客临时有事取消”“录入错误”“更换助教”等 |
| createTime | createTime | string→TIMESTAMP`parse_timestamp` | 这条“助教废除记录”被创建的时间,即系统正式记录“废除”操作的时刻 |
| tenant_id | tenant_id | int→BIGINT`parse_int` | 租户/品牌 ID |
## ETL 补充字段
| ODS 列名 | 生成逻辑 |
|-----------|----------|
| content_hash | 对业务字段(排除 ETL 元数据列)计算 SHA-256用于变更检测与去重 |
| source_file | 固定值:`assistant_cancellation_records.json`,标识原始导出文件 |
| source_endpoint | API 端点路径,如 `AssistantPerformance/GetAbolitionAssistant` |
| fetched_at | ETL 入库时间戳(`TIMESTAMPTZ DEFAULT now()` |
| payload | 完整原始 JSON 记录快照(`JSONB NOT NULL`),用于回溯与二次解析 |
## 类型转换规则
- **时间戳**:通过 `TypeParser.parse_timestamp()` 转换,支持 ISO 字符串和 Unix 毫秒时间戳,自动处理时区
- **金额**:通过 `TypeParser.parse_decimal(value, scale=2)` 转换,`ROUND_HALF_UP` 四舍五入
- **整数**:通过 `TypeParser.parse_int()` 转换,`None` 保持为 `NULL`
- **字符串**:原样保留,`None` / 空字符串均存为 `NULL` 或空文本
- **布尔值**API 返回 `true/false`ODS 存为 `BOOLEAN``INT`0/1
- **JSONB**`siteProfile``payload` 等复合对象直接以 `JSONB` 类型存储

View File

@@ -0,0 +1,80 @@
# 员工档案SearchSystemStaffInfo → staff_info_master 字段映射
> 生成时间2026-02-23
## 端点信息
| 属性 | 值 |
|------|-----|
| 接口路径 | `PersonnelManagement/SearchSystemStaffInfo` |
| 请求方法 | POST |
| ODS 对应表 | `ods.staff_info_master` |
| JSON 数据路径 | `data.staffProfiles` |
| 快照模式 | FULL_TABLE全量快照 |
## 请求参数
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| workStatusEnum | int | 0 | 在职状态筛选0=全部) |
| dingTalkSynced | int | 0 | 钉钉同步状态0=全部) |
| staffIdentity | int | 0 | 员工身份筛选0=全部) |
| rankId | int | 0 | 职级筛选0=全部) |
| criticismStatus | int | 0 | 批评状态0=全部) |
| signStatus | int | -1 | 签约状态(-1=全部) |
## 字段映射
| JSON 字段 | ODS 列名 | 类型转换 | 说明 |
|-----------|----------|----------|------|
| id | id | int→BIGINT | 员工主键 ID |
| tenant_id | tenant_id | int→BIGINT | 租户 ID |
| site_id | site_id | int→BIGINT | 门店 ID |
| tenant_org_id | tenant_org_id | int→BIGINT | 租户组织 ID |
| system_user_id | system_user_id | int→BIGINT | 系统用户 ID |
| staff_name | staff_name | string→TEXT | 员工姓名 |
| alias_name | alias_name | string→TEXT | 别名 |
| mobile | mobile | string→TEXT | 手机号 |
| avatar | avatar | string→TEXT | 头像 URL |
| gender | gender | int→INTEGER | 性别3=未知) |
| job | job | string→TEXT | 职位名称(店长/主管/教练等) |
| job_num | job_num | string→TEXT | 工号 |
| staff_identity | staff_identity | int→INTEGER | 员工身份类型 |
| status | status | int→INTEGER | 账号状态 |
| account_status | account_status | int→INTEGER | 账号启用状态 |
| system_role_id | system_role_id | int→INTEGER | 系统角色 ID |
| rank_id | rank_id | int→INTEGER | 职级 ID |
| rankName | rank_name | string→TEXT | 职级名称(驼峰→蛇形) |
| new_rank_id | new_rank_id | int→INTEGER | 新职级 ID |
| new_staff_identity | new_staff_identity | int→INTEGER | 新员工身份 |
| leave_status | leave_status | int→INTEGER | 在职状态0=在职) |
| entry_time | entry_time | string→TIMESTAMP | 入职时间 |
| resign_time | resign_time | string→TIMESTAMP | 离职时间 |
| create_time | create_time | string→TIMESTAMP | 创建时间 |
| is_delete | is_delete | int→INTEGER | 删除标记 |
| is_reserve | is_reserve | int→INTEGER | 预约标记 |
| shop_name | shop_name | string→TEXT | 门店名称 |
| site_label | site_label | string→TEXT | 门店标签 |
| cashierPointId | cashier_point_id | int→BIGINT | 收银点 ID驼峰→蛇形 |
| cashierPointName | cashier_point_name | string→TEXT | 收银点名称(驼峰→蛇形) |
| groupId | group_id | int→BIGINT | 分组 ID驼峰→蛇形 |
| groupName | group_name | string→TEXT | 分组名称(驼峰→蛇形) |
| staff_profile_id | staff_profile_id | int→BIGINT | 员工档案 ID |
| auth_code | auth_code | string→TEXT | 授权码 |
| auth_code_create | auth_code_create | string→TIMESTAMP | 授权码创建时间 |
| ding_talk_synced | ding_talk_synced | int→INTEGER | 钉钉同步状态 |
| salary_grant_enabled | salary_grant_enabled | int→INTEGER | 工资发放启用 |
| entry_type | entry_type | int→INTEGER | 入职类型 |
| entry_sign_status | entry_sign_status | int→INTEGER | 入职签约状态 |
| resign_sign_status | resign_sign_status | int→INTEGER | 离职签约状态 |
| criticism_status | criticism_status | int→INTEGER | 批评状态 |
| userRoles | user_roles | array→JSONB | 用户角色列表(驼峰→蛇形) |
## ETL 元数据列
| 列名 | 类型 | 说明 |
|------|------|------|
| content_hash | TEXT | 记录内容哈希(去重用) |
| source_file | TEXT | 来源文件路径 |
| fetched_at | TIMESTAMPTZ | 抓取时间 |
| payload | JSONB | 原始 JSON 完整保留 |