4.3 KiB
4.3 KiB
生产数据同步总体规划
编写日期:2026-07-12
状态:P0 方案已定稿(用户:中文名登录)
目标库:shanxia2.0(租户tenant_no = 'shanxia2.0')
1. 目标
- 在门户 2.0 建立统一用户体系(
sys_user+ 角色 + 菜单权限) - 将 sx 库 CRM、报销生产数据迁入对应
crm_*、bx_*表 - 将地磅库业务数据迁入
db_*表 - 全过程可审计、可回滚、可重复执行(幂等)
2. 已确认决策
| 决策项 | 结论 |
|---|---|
登录账号(user_no) |
以中文名为准(真实姓名);见 02-user-unification.md |
| 超级管理员 | 保留 admin 账号(不按中文名改) |
| 租户编号 | 统一 shanxia2.0 |
| 主键 ID(全局) | 原系统 id 原样迁入:bigint/int → 同值 VARCHAR 字符串;详见 05-id-preservation-policy.md |
| 主键例外 | 仅 sys_user:P0 已用门户 UUID,外键经 user_mapping;字典 id 按类型+值对齐 |
| 密码 | 优先沿用 bx/CRM 的 bcrypt;地磅明文密码不迁入,统一重置临时密码 |
| 地磅用户 | 并入 sys_user,分配「地磅操作员」角色;无中文名的账号单独处理 |
3. 阶段划分
P0 基础主数据
├── 字典 sys_dict_data
├── 部门 sys_dept
├── 角色 sys_role + sys_role_menu
└── 用户 sys_user + sys_user_role ← 阻塞项,最先人工确认映射表
P1 CRM 业务(~7110 行级 INSERT)
└── 产品 → 客户 → 线索 → 商机 → 报价 → 合同(按依赖顺序)
P2 报销业务(~857 行)
└── 费用项/工作流 → 备用金 → 报销单 → 附件
P3 地磅业务(~4254 行)
└── 车辆 → migrate_dibang_data.py(计划/地磅单/出入库)
P4 验收
└── 抽样单据 + 登录 + 附件 URL + 行数对账
4. 执行原则
- 先映射、后灌数:P0 生成
user_mapping;业务表 ID 多为恒等映射,见 05-id-preservation-policy.md - dry-run 优先:所有脚本支持
--dry-run,生产执行前在测试库跑通 - 只追加日志:
phase-*/logs/按批次追加,不覆盖 - 备份:每阶段执行前 mysqldump 目标库
- 不双写:切换窗口内旧系统只读对照,不做双向同步
5. 脚本与产物
| 产物 | 路径 | 状态 |
|---|---|---|
| 用户映射表 | mappings/user_mapping.csv |
已生成初稿 |
| 产品分类 ID 映射 | mappings/crm_product_category_id_mapping.csv |
✅ 5 行恒等映射 |
| 产品 ID 映射 | mappings/crm_product_id_mapping.csv |
✅ 239 行恒等映射 |
| 产品编号映射 | mappings/crm_product_no_mapping.csv |
✅ 239 行 old→new |
| 产品编号统一脚本 | backend/scripts/renumber_crm_product_no.py |
✅ 已执行 |
| CRM ID 映射 | mappings/crm_id_mapping.csv |
待 P1(汇总;多为 source_id=new_id) |
| 报销 ID 映射 | mappings/bx_id_mapping.csv |
待 P2 |
| 地磅迁移脚本 | backend/scripts/migrate_dibang_data.py |
已有 |
| 用户迁移脚本 | backend/scripts/migrate_users.py |
已有 |
| 产品分类迁移脚本 | backend/scripts/migrate_crm_product_category.py |
✅ 已执行 |
| 产品迁移脚本 | backend/scripts/migrate_crm_product.py |
✅ 已执行(239 行) |
6. 风险摘要
| 风险 | 对策 |
|---|---|
| 中文名重复 | 映射表人工审核;冲突时 user_no 追加手机后四位 |
| 吴九华等手机号不一致 | 映射表标注,合并时取 bx 或 CRM 较新记录 |
| 工作流审批人节点 | 导入用户后重绑 bx_workflow_node.approver_id |
CRM create_by 为 bigint |
经 user_mapping 转为门户 sys_user.id(用户表为 P0 例外,不保留源 id) |
| 附件 MinIO URL 失效 | P4 前批量 HEAD 检查 |
7. 相关文档
- CRM 数据注意事项:
docs/superpowers/specs/2026-05-30-crm-migration-design.md§7 - 地磅数据脚本说明:
docs/db-migration/00-migration-plan.md§7 - 报销范围:
docs/bx-migration/00-migration-plan.md(代码移植;数据同步在本目录 P2) - 主键 ID 全局策略:05-id-preservation-policy.md