Files
fad_oa/sql/xxl_job_employee_user_link.md

47 lines
1.6 KiB
Markdown
Raw Normal View History

# xxl-job 任务:员工↔用户自动关联
## 部署后一次性操作
登录 xxl-job 调度中心(`http://49.232.154.205:xxxx/xxl-job-admin`,用户名 `admin`/`123456` 是默认,见 `ruoyi-extend/ruoyi-xxl-job-admin/`),执行者组选到本项目对应的执行器(一般叫 `xxl-job-executor-ruoyi`),然后:
**新增任务:**
| 字段 | 值 |
|---|---|
| 执行器 | xxl-job-executor-ruoyi或本项目对应组 |
| 任务描述 | 员工↔用户自动关联体检 |
| 调度类型 | CRON |
| Cron | `0 0 3 * * ?` (每天 03:00 执行一次) |
| 运行模式 | BEAN |
| JobHandler | `employeeUserLinkJob` |
| 路由策略 | FIRST |
| 阻塞处理策略 | 单机串行 |
| 任务超时时间 | 300 秒 |
| 失败重试次数 | 0 |
保存后点「启动」。
## 运行逻辑
- 扫全部 `hrm_employee.del_flag=0`
- 已挂到有效 sys_user 且姓名对得上 → 跳过
- 否则按 `emp_name` 匹配 `sys_user.nick_name` (兜底 `user_name`)
- 候选唯一 + 手机号一致 → 自动挂
- 候选唯一 + 手机号为空 → 也挂
- 多个候选靠手机号唯一定位 → 挂
- 其余情况 → 打「需人工」日志,不动数据
## 观察
xxl-job 调度中心「调度日志」里能看到每次执行的 stdout
```
[已挂] emp_id=xxx emp_name=张三 user_id: null → 123456 (张三 / zhangsan)
[需人工] emp_id=xxx emp_name=胡雪姣 current_user_id=1859249502579310593 候选=[] —— 候选唯一且手机匹配才能自动挂
员工-用户关联体检完成:总数=54跳过=53自动修=0需人工=1
```
## 手动触发
在 xxl-job 后台可以点「执行一次」立即跑,不用等 03:00。