# 招聘信息自增主键实施记录

## 保存路径确认

- 实施记录保存路径：`docs/reports/implementation/2026-05-07-staff-recruitment-auto-id-primary-key.md`
- 本次为招聘信息主键结构调整，使用实施记录目录保存。

## 修改内容

1. `ccdi_staff_recruitment` 新增 `id` 自增主键，`recruit_id` 调整为普通业务编号。
2. 后端实体 `CcdiStaffRecruitment` 的 MyBatis Plus 主键从 `recruitId` 切换为 `id`。
3. 招聘信息详情、编辑、删除接口改为按 `id` 定位记录。
4. 招聘信息列表和详情 SQL 返回 `id` 字段，前端列表行操作改为传递 `id`。
5. 导入链路继续在模板中填写 `recruit_id`，后续补充改为由后端解析到招聘主表 `id`。
6. 补充迁移脚本 `sql/migration/2026-05-07-add-staff-recruitment-auto-id.sql`，同步更新初始化 SQL 与数据库字段说明。
7. 同步更新招聘信息 API 文档中详情、编辑、删除的主键参数说明。

## 影响范围

- 后端接口：`/ccdi/staffRecruitment/{id}`、`PUT /ccdi/staffRecruitment`、`DELETE /ccdi/staffRecruitment/{ids}`
- 前端页面：`ruoyi-ui/src/views/ccdiStaffRecruitment/index.vue`
- 数据库表：`ccdi_staff_recruitment`
- 导入功能：招聘主信息与历史工作经历模板字段不变，后续补充改为落库时关联招聘主表 `id`。

## 数据库执行

- 已通过 `bin/mysql_utf8_exec.sh sql/migration/2026-05-07-add-staff-recruitment-auto-id.sql` 执行本地 dev 库迁移。
- 回查结果：
  - `id`：`PRIMARY`，`auto_increment`
  - `recruit_id`：普通索引，允许重复。

## 验证情况

1. 后端定向测试通过：
   - `mvn -pl ccdi-info-collection -am -Dtest=CcdiStaffRecruitmentImportServiceImplTest,CcdiStaffRecruitmentDualImportContractTest -Dsurefire.failIfNoSpecifiedTests=false test`
2. 前端生产构建通过：
   - `cd ruoyi-ui && nvm use && npm run build:prod`
   - 构建仅保留既有资源体积 warning。
3. 后端重启验证通过：
   - `sh bin/restart_java_backend.sh restart`
   - 应用启动成功。
4. 真实页面验证通过：
   - 使用 browser-use 打开 `http://localhost:8080/maintain/staffRecruitment`
   - 登录后招聘信息维护列表正常展示。
   - 点击 `RC2025001001` 详情，后端日志显示详情 SQL 使用 `WHERE id = ?` 查询主表。
   - 历史工作经历后续补充改为使用招聘主表 `id` 查询，避免编号重复时串数据。
5. 测试后已关闭本轮启动的前端 `8080` 与后端 `62318` 进程，端口回查无监听。
