Files
fad_oa/sql/xxl_job_employee_user_link.md

47 lines
1.6 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.

# 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。