2.9 KiB
2.9 KiB
招聘项目编号允许重复实施记录
保存路径确认
- 实施记录保存路径:
docs/reports/implementation/2026-05-07-staff-recruitment-allow-duplicate-recruit-id.md - 本次为招聘信息主从表关联修正,使用实施记录目录保存。
修改内容
- 移除新增、编辑、导入时对
recruit_id的重复拦截,招聘项目编号允许重复。 ccdi_staff_recruitment_work新增recruitment_id,历史工作经历改为关联招聘主表自增id。- 列表历史工作经历条数、详情历史工作经历、编辑保存和删除清理均改为按
recruitment_id处理。 - 导入模板字段保持不变,历史工作经历导入时通过“招聘项目编号 + 候选人姓名 + 招聘项目名称 + 职位名称”匹配主记录;匹配多条时返回失败,避免错误归属。
- 更新初始化 SQL、增量 SQL、数据库字段说明和 API 文档。
影响范围
- 后端服务:招聘信息 CRUD、双 Sheet 导入、历史工作经历查询与清理。
- 数据库表:
ccdi_staff_recruitment、ccdi_staff_recruitment_work。 - 前端页面:接口仍传主表
id,页面字段无新增。 - 导入功能:模板不新增主键列。
验证情况
- 数据库迁移已执行:
sh bin/mysql_utf8_exec.sh sql/migration/2026-05-07-allow-duplicate-staff-recruitment-id.sql- 回查确认
ccdi_staff_recruitment.recruit_id为普通索引,ccdi_staff_recruitment_work.recruitment_id为非空字段并已建立索引。
- 后端定向测试通过:
mvn -pl ccdi-info-collection -am -Dtest=CcdiStaffRecruitmentImportServiceImplTest,CcdiStaffRecruitmentDualImportContractTest -Dsurefire.failIfNoSpecifiedTests=false test
- 前端构建通过:
cd ruoyi-ui && nvm use && npm run build:prod- 构建仅保留既有资源体积 warning。
- 真实页面验证:
- 已按项目规则优先尝试
browser-use,但当前 Codex 环境没有可用 in-app browser pane,运行时返回No active Codex browser pane available。 - 使用本机 Playwright 兜底打开真实页面
http://localhost:8080/maintain/staffRecruitment验证。 - 通过接口新增两条相同招聘项目编号
RC-DUP-20260507003554的招聘记录,均返回操作成功。 - 给第一条记录插入 1 条历史工作经历后,页面列表展示两条同编号记录:
TestA为1段,TestB为0段。 - 打开
TestA详情可见Company A历史工作经历;打开TestB详情显示“暂无历史工作经历”,未发生串数据。 - 后端日志确认列表按
recruitment_id聚合历史工作经历,详情查询分别按recruitment_id = 6003与recruitment_id = 6004查询从表。
- 已按项目规则优先尝试
- 清理情况:
- 已删除本轮测试主表和从表造数。
- 已关闭 Playwright 浏览器。
- 已停止本轮启动的前端
8080与后端62318进程,端口回查无监听。