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

2.0 KiB
Raw Blame History

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_staffannual_income IS NULL 的员工补齐年收入,保留已有收入值不覆盖
  3. 识别并保留已与 ccdi_asset_info 建立关联的员工亲属关系
  4. 清理旧的员工亲属数据后,按员工主数据重新生成每人 1-3 条亲属关系
  5. 为新生成和保留的亲属统一补齐 annual_income、有效状态和基础元数据

数据规则

  • 员工年收入仅补空值,使用固定公式生成,保证脚本重复执行时口径稳定
  • 员工亲属数量按 staff_id % 3 + 1 生成,因此每名员工最终稳定为 1-3 条亲属
  • 生成亲属关系类型按顺序落为 配偶 / 父亲 / 母亲
  • 若某员工已有被资产引用的亲属,则先保留该亲属,再补齐剩余条数

验证项

  • 执行后 ccdi_base_staffannual_income 空值应为 0
  • 执行后所有员工的亲属数量分布只允许出现 123
  • 已挂到亲属名下的 2 条资产仍可通过保留的亲属证件号关联到员工

实际执行结果

  • 已执行:bin/mysql_utf8_exec.sh sql/migration/2026-03-19-backfill-staff-income-and-relatives.sql
  • 员工收入校验结果:staff_count = 1004income_null_count = 0annual_income 区间为 120000.00 ~ 274000.00
  • 员工亲属数量分布:1条=335人2条=334人3条=335人
  • 资产保留校验:员工 330101198802020033 名下原有测试亲属 330101199202020044 已保留,仍关联 2 条资产记录