# 招聘信息历史工作经历手动编辑后端实施计划 ## 文档信息 - 保存路径:`docs/plans/backend/2026-04-22-staff-recruitment-work-experience-manual-edit-plan.md` - 适用范围:招聘信息管理编辑接口 - 需求目标:在招聘信息编辑页支持手动维护历史工作经历,并保证保存后落到 `ccdi_staff_recruitment_work` 子表 ## 实施范围 1. 扩展招聘信息编辑 DTO,允许接收历史工作经历列表。 2. 增加历史工作经历子项 DTO,并对字符长度、年月格式进行基础校验。 3. 调整招聘信息编辑服务: - 主表 `ccdi_staff_recruitment` 继续按原逻辑更新; - 当招聘类型为 `SOCIAL` 且前端传入工作经历列表时,按招聘记录编号先删后插覆盖子表; - 当招聘类型改为 `CAMPUS` 时,删除该记录已存在的历史工作经历。 ## 实施步骤 1. 新增历史工作经历编辑 DTO,约束 `companyName`、`departmentName`、`positionName`、年月等字段长度与格式。 2. 在 `CcdiStaffRecruitmentEditDTO` 中增加 `workExperienceList` 字段,并启用嵌套校验。 3. 在 `CcdiStaffRecruitmentServiceImpl.updateRecruitment` 中增加子表覆盖保存逻辑。 4. 保持详情查询逻辑不变,继续通过已有 `selectWorkExperienceList` 返回子表明细。 ## 影响评估 - 仅影响招聘信息编辑接口,不影响招聘信息导入、详情查询、列表分页逻辑。 - 不新增数据库结构变更,不新增菜单或权限。 - 旧前端若未传 `workExperienceList`,社招编辑仍保留已有工作经历数据,不会被误删。 ## 验证要点 1. 编辑社招记录时可提交多条历史工作经历并成功保存。 2. 编辑社招记录时删除全部历史工作经历后提交,子表数据应被清空。 3. 将社招记录改为校招后提交,历史工作经历应自动删除。 4. 非法年月格式或超长字段应被后端校验拒绝。