164 lines
6.2 KiB
Markdown
164 lines
6.2 KiB
Markdown
# 用户统一方案
|
||
|
||
> **决策**:登录账号(`sys_user.user_no`)**以中文名为准**。
|
||
> **例外**:超级管理员固定为 `admin`。
|
||
|
||
---
|
||
|
||
## 1. 三源用户概览
|
||
|
||
| 来源表 | 库 | 记录数 | 有效(未删除/启用) | 说明 |
|
||
|--------|-----|--------|---------------------|------|
|
||
| `bx_user` | sx | 26 | 25 | 报销员工,有 `real_name` + bcrypt |
|
||
| `sys_user` | sx(CRM) | 12 | 8 | 若依用户,`user_name` 混用拼音/中文 |
|
||
| `users` | dibang | 15 | 6 | 地磅账号,多为拼音/数字,仅 `过磅员` 为中文 |
|
||
| `sys_user` | shanxia2.0 | 1 | 1 | 仅 `admin`,目标写入表 |
|
||
|
||
---
|
||
|
||
## 2. 字段映射规则
|
||
|
||
门户 `sys_user` 目标字段:
|
||
|
||
| 目标字段 | 规则 |
|
||
|----------|------|
|
||
| `user_no` | **中文真实姓名**;管理员为 `admin`;地磅无中文名见 §4 |
|
||
| `nick_name` | 与 `user_no` 相同(管理员为「系统管理员」) |
|
||
| `phone_no` | 优先 bx `phone`,其次 CRM `phonenumber` |
|
||
| `email` | bx `email` 或 CRM `email` |
|
||
| `password` | 优先 bx bcrypt(`$2b$12`);CRM 为 `$2a$10` 可保留或统一重哈希 |
|
||
| `status` | 门户 `1`=正常:`bx.status=1` / CRM `status='0'` / 地磅 `is_active=1` |
|
||
| `del_flag` | `0`;旧系统已删除用户不导入 |
|
||
| `tenant_no` | `'shanxia2.0'` |
|
||
| `dept_id` | 默认销售部门 UUID(P0 部门迁移后填入) |
|
||
|
||
---
|
||
|
||
## 3. 去重与合并规则
|
||
|
||
按以下优先级识别**同一自然人**:
|
||
|
||
1. **手机号相同**(11 位,去空格)
|
||
2. **中文姓名相同**(`bx.real_name` = CRM `nick_name` 或 `user_name`)
|
||
3. 仅一方存在且 `del_flag=0` / 未删除 → 单独建档
|
||
|
||
合并后只保留 **一条** `sys_user`,在 `user_mapping.csv` 记录各源 ID → 门户 `new_user_id`。
|
||
|
||
> **与全局 ID 策略的关系**:业务表主键一律原样保留([05-id-preservation-policy.md](./05-id-preservation-policy.md));**仅用户表**因 P0 已执行而使用新生成的门户 UUID,所有 `create_by` / `owner_user_id` 等用户外键必须经本映射转换。
|
||
|
||
### 3.1 需人工确认
|
||
|
||
| 姓名 | 说明 |
|
||
|------|------|
|
||
| 方金强 | CRM 有两条历史(`wwww` 已删、`方金强` 活跃);只导入活跃条 |
|
||
|
||
> 吴九华手机号已确认:`18656008189`(bx 与 CRM 合并为一条)。
|
||
|
||
### 3.2 不导入
|
||
|
||
- CRM:`lisi`、`nana`、`wwww`、`admin1`(均已 `del_flag=1`)
|
||
- bx:`冯传忠`(`del_flag=1`)
|
||
- 地磅:id 7–16 测试账号(`is_active=0`)
|
||
|
||
---
|
||
|
||
## 4. 地磅用户处理(无中文名)
|
||
|
||
地磅账号将并入门户,登录名规则:
|
||
|
||
| 原地磅 username | 建议 user_no | nick_name | 角色 |
|
||
|----------------|-------------|-----------|------|
|
||
| admin | 不单独建账号 | — | 复用门户 `admin` |
|
||
| gly | 管理员 | 管理员 | 地磅管理员(或合并到业务管理员) |
|
||
| shanxia | 山峡 | 山峡 | 地磅操作员 |
|
||
| user1 | 过磅员1 | 过磅员1 | 地磅操作员 |
|
||
| user2 | 过磅员2 | 过磅员2 | 地磅操作员 |
|
||
| 过磅员 | 过磅员 | 过磅员 | 地磅操作员 |
|
||
|
||
> 若「管理员」「山峡」与员工姓名冲突,在 `user_no` 后加后缀,如 `管理员_地磅`。
|
||
|
||
地磅密码均为明文弱密码,**迁入时统一重置**为临时密码(首次登录强制修改)。
|
||
|
||
---
|
||
|
||
## 5. 完整用户清单(初稿)
|
||
|
||
以下为基于 `docs/sql/sx.sql`、`docs/sql/dibang.sql` 快照整理的 **待导入** 清单(不含已删除、不含门户已有 `admin`)。
|
||
|
||
### 5.1 员工账号(bx 为主,中文名登录)
|
||
|
||
| user_no | 来源 bx_id | 来源 CRM user_id | 手机 | 备注 |
|
||
|---------|-----------|------------------|------|------|
|
||
| 吴九华 | 16 | 1988153817824903170 | 18656008189 | |
|
||
| 汪璇 | 17 | 1984880722460753922 | 18895395317 | |
|
||
| 刘茂生 | 18 | — | 18955618780 | 仅 bx |
|
||
| 吴良萍 | 19 | 1984881464336662529 | 18855101814 | |
|
||
| 方金强 | 20 | 1984880121521848321 | 18110402102 | |
|
||
| 黄天宝 | 21 | — | 13865153716 | 仅 bx |
|
||
| 程欢欢 | 22 | 1984881038509948929 | 18855677446 | |
|
||
| 刘丹 | 23 | — | 13865565378 | 仅 bx |
|
||
| 郑丽娜 | 24 | 1993942552906809345 | 13522116225 | |
|
||
| 李勤 | 26 | — | 13470794894 | 仅 bx |
|
||
| 吴春生 | 27 | — | 18805561555 | 仅 bx |
|
||
| 吴自国 | 28 | — | 15155081585 | 仅 bx |
|
||
| 潘光荣 | 29 | — | 13955614150 | 仅 bx |
|
||
| 刘道银 | 30 | — | 15855555833 | 仅 bx |
|
||
| 汪华胜 | 31 | — | 13976616618 | 仅 bx |
|
||
| 王晓阳 | 32 | — | 19939016266 | 仅 bx |
|
||
| 郭奇 | 33 | — | 13805683372 | 仅 bx |
|
||
| 刘端 | 34 | — | 18749617637 | 仅 bx |
|
||
| 方长彪 | 35 | — | 13225569301 | 仅 bx |
|
||
| 吴自寨 | 36 | — | 13855607262 | 仅 bx |
|
||
| 吴祚权 | 37 | — | 19855069273 | 仅 bx |
|
||
| 沈卫斌 | 45 | — | 18756693937 | 仅 bx |
|
||
| 王伍云 | 47 | — | 18815716809 | 仅 bx |
|
||
| 胡银池 | 48 | — | 13955508997 | 仅 bx |
|
||
| 宋健 | — | 1984880895001837569 | 18297798890 | 仅 CRM |
|
||
|
||
**合计:25 名员工 + 1 管理员(admin 已存在)**
|
||
|
||
### 5.2 地磅专用账号(+5,若不与员工合并)
|
||
|
||
见 §4 表。
|
||
|
||
---
|
||
|
||
## 6. 角色分配建议(P0 执行时配置)
|
||
|
||
| 角色 | 适用用户 |
|
||
|------|---------|
|
||
| 超级管理员 | `admin` |
|
||
| 销售人员 | CRM 销售相关(方金强、汪璇、程欢欢等,按现网 CRM 角色对照) |
|
||
| 报销-员工 | bx 全体申请人 |
|
||
| 报销-财务 / 总经理 | 按 bx 原 `bx_role_user` 对照 |
|
||
| 地磅操作员 | 地磅 §4 账号 |
|
||
|
||
具体 `sys_role` 名称与 `sys_role_menu` 在 `phase-0-foundation/step-03-role-menu.md` 定义(待编写)。
|
||
|
||
---
|
||
|
||
## 7. 映射表结构
|
||
|
||
`mappings/user_mapping.csv` 列:
|
||
|
||
```
|
||
new_user_id,user_no,nick_name,phone_no,bx_user_id,crm_user_id,dibang_user_id,password_source,status,remark
|
||
```
|
||
|
||
- `new_user_id`:新生成 UUID(脚本写入前为空,执行后回填)
|
||
- `password_source`:`bx` | `crm` | `reset`(地磅)
|
||
|
||
---
|
||
|
||
## 8. 对下游数据迁移的影响
|
||
|
||
| 下游 | 旧字段 | 新字段 |
|
||
|------|--------|--------|
|
||
| CRM 全表 | `create_by` bigint | `user_mapping.crm_user_id` → `new_user_id` |
|
||
| CRM 全表 | `owner_user_id` bigint | 同上 |
|
||
| bx 全表 | `applicant_id` / 审批人 int | `user_mapping.bx_user_id` → `new_user_id` |
|
||
| bx 工作流节点 | `approver_id` | 重绑为新 UUID |
|
||
| 地磅 | 无用户 FK | 仅操作员需能登录门户 |
|
||
|
||
**P0 用户迁移完成并验收后**,方可启动 P1/P2/P3。
|