Files
ccdi/docs/reports/implementation/2026-03-19-staff-income-and-relatives-backfill.md
2026-03-19 16:11:32 +08:00

36 lines
2.0 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-03-19 员工收入与亲属补数实施记录
## 背景
- 当前 `ccdi_base_staff` 共 1004 名员工,其中仅 2 名员工已维护 `annual_income`
- 当前 `ccdi_staff_fmy_relation` 已存在 3004 条员工亲属数据,但只覆盖 53 名员工,且单人亲属数量集中在 42-82 条,不符合“每个员工 1-3 个亲属”的目标
- 现有员工资产表中有 1 条亲属关系被 2 条资产记录引用,补数时需要保留该关系,避免资产详情失联
## 本次处理
1. 新增增量脚本 `sql/migration/2026-03-19-backfill-staff-income-and-relatives.sql`
2.`ccdi_base_staff``annual_income IS NULL` 的员工补齐年收入,保留已有收入值不覆盖
3. 识别并保留已与 `ccdi_asset_info` 建立关联的员工亲属关系
4. 清理旧的员工亲属数据后,按员工主数据重新生成每人 1-3 条亲属关系
5. 为新生成和保留的亲属统一补齐 `annual_income`、有效状态和基础元数据
## 数据规则
- 员工年收入仅补空值,使用固定公式生成,保证脚本重复执行时口径稳定
- 员工亲属数量按 `staff_id % 3 + 1` 生成,因此每名员工最终稳定为 1-3 条亲属
- 生成亲属关系类型按顺序落为 `配偶 / 父亲 / 母亲`
- 若某员工已有被资产引用的亲属,则先保留该亲属,再补齐剩余条数
## 验证项
- 执行后 `ccdi_base_staff``annual_income` 空值应为 `0`
- 执行后所有员工的亲属数量分布只允许出现 `1``2``3`
- 已挂到亲属名下的 2 条资产仍可通过保留的亲属证件号关联到员工
## 实际执行结果
- 已执行:`bin/mysql_utf8_exec.sh sql/migration/2026-03-19-backfill-staff-income-and-relatives.sql`
- 员工收入校验结果:`staff_count = 1004``income_null_count = 0``annual_income` 区间为 `120000.00 ~ 274000.00`
- 员工亲属数量分布:`1条=335人``2条=334人``3条=335人`
- 资产保留校验:员工 `330101198802020033` 名下原有测试亲属 `330101199202020044` 已保留,仍关联 `2` 条资产记录