# 招聘信息编辑页手动维护历史工作经历实施记录

## 文档信息

- 保存路径：`docs/reports/implementation/2026-04-22-staff-recruitment-work-experience-manual-edit-implementation.md`
- 实施日期：2026-04-22
- 关联范围：招聘信息管理前后端

## 本次修改内容

### 后端

1. 新增 `CcdiStaffRecruitmentWorkEditDTO`，接收编辑页提交的历史工作经历子项。
2. 在 `CcdiStaffRecruitmentEditDTO` 中补充 `workExperienceList` 字段，并启用嵌套校验。
3. 在 `CcdiStaffRecruitmentServiceImpl.updateRecruitment` 中增加历史工作经历覆盖保存逻辑：
   - 社招且前端传入工作经历列表时，按当前表单内容覆盖 `ccdi_staff_recruitment_work`；
   - 切换为校招时，自动清空该招聘记录的历史工作经历。

### 前端

1. 在招聘信息编辑弹窗中新增“候选人历史工作经历”编辑表格。
2. 支持手动新增、删除历史工作经历，并在前端自动重排序号。
3. 将入职时间、离职时间改为月份选择器，避免手输格式错误。
4. 提交编辑前增加年月格式、开始结束时间顺序、必填项校验。
5. 编辑提交时将规范化后的历史工作经历列表一并提交给后端；新增请求继续沿用原字段集，不携带额外子表字段。

## 影响范围

- 后端：招聘信息编辑接口、历史工作经历子表保存逻辑。
- 前端：招聘信息管理编辑弹窗。
- 文档：新增前后端实施计划与本实施记录。

## 验证情况

1. Maven 编译校验通过：
   - 执行命令：`mvn -pl ccdi-info-collection -am compile -DskipTests`
   - 结果：编译成功。
2. 前端构建校验通过：
   - 执行命令：`cd ruoyi-ui && source ~/.nvm/nvm.sh && nvm use 14.21.3 && npm run build:prod`
   - 结果：构建成功，仅存在原有体积告警，无新增构建错误。
3. 浏览器实测通过：
   - 先通过真实登录页进入实际业务路由 `/maintain/staffRecruitment`；
   - 在真实“招聘信息管理”页面编辑社招记录 `RC2025001805`，手动新增一条历史工作经历并保存；
   - 保存后列表中的“历史工作经历”由 `0段` 变为 `1段`；
   - 打开真实详情弹窗后，新增的工作经历可正常展示。
   - 在另一条 `0段` 记录的编辑弹窗中确认“入职时间 / 离职时间”已切换为月份选择器，点击后会弹出月份面板。
4. 测试进程清理：
   - 已关闭本次测试过程中打开的 Playwright 浏览器、前端 dev server 和后端进程。
