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