# 招聘信息与中介实体关系导入模板修复实施记录

## 背景

- 【招聘信息维护】当前页面与数据库口径已调整为“招聘记录编号”，原导入模板仍存在旧字段名称和字段顺序不一致问题，导致按模板导入失败。
- 【中介库管理】“导入中介实体关联关系”按钮对应模板字段与新增关联机构弹窗不一致，且导入提示仍要求统一社会信用代码必须已存在于机构表。

## 修改内容

### 招聘信息维护

- 更新招聘主 Sheet 模板字段顺序，使其与新增页字段顺序一致：
  - 招聘记录编号、招聘项目名称、职位名称、职位类别、职位描述、录用情况、候选人姓名、招聘类型、学历、证件号码、毕业年月、毕业院校、专业、面试官1姓名、面试官1工号、面试官2姓名、面试官2工号。
- 更新历史工作经历 Sheet 字段文案：
  - 岗位名称、入职时间、离职时间、主要工作内容。
- 导入逻辑不再从招聘项目名称推断招聘类型，改为读取模板中的“招聘类型”字段。
- 招聘类型支持填写编码或页面文案：
  - `SOCIAL` / `社招`
  - `CAMPUS` / `校招`
- 同步调整导入校验提示，使错误信息与当前页面字段保持一致。
- 前端导入弹窗增加招聘类型填写说明。

### 中介库管理

- 更新“导入中介实体关联关系”模板字段：
  - 中介本人证件号码、统一社会信用代码、关联职务、备注。
- 将必填标识改为 `@Required`，避免字段标题携带 `*` 后与页面字段不一致。
- 导入逻辑统一 trim 证件号、统一社会信用代码、关联职务、备注，避免空格导致查询不到中介本人或重复判断失效。
- 失败记录字段文案由“关联人职务”统一为“关联职务”。
- 前端导入说明调整为：
  - 中介本人证件号码用于定位新增弹窗中的所属中介；
  - 其余字段与新增关联机构弹窗一致；
  - 统一社会信用代码未存在于实体库时会自动补入。

## 影响范围

- 后端导入模板与导入解析：
  - `CcdiStaffRecruitmentExcel`
  - `CcdiStaffRecruitmentWorkExcel`
  - `CcdiStaffRecruitmentImportServiceImpl`
  - `CcdiIntermediaryEnterpriseRelationExcel`
  - `CcdiIntermediaryEnterpriseRelationImportServiceImpl`
  - `IntermediaryEnterpriseRelationImportFailureVO`
- 前端导入弹窗与失败记录展示：
  - 招聘信息维护导入提示
  - 中介库管理导入中介实体关联关系提示
  - 中介实体关系导入失败记录字段标签

## 验证情况

- 后端编译：`mvn -pl ccdi-info-collection -am compile -DskipTests` 通过。
- 前端构建：`ruoyi-ui` 下执行 `nvm use` 后，`npm run build:prod` 通过。
- 真实模板下载：
  - `/ccdi/staffRecruitment/importTemplate` 下载模板成功，表头已变为当前字段顺序。
  - `/ccdi/intermediary/importEnterpriseRelationTemplate` 下载模板成功，表头已变为“中介本人证件号码、统一社会信用代码、关联职务、备注”。
- 真实接口导入：
  - 招聘信息基于下载模板造数，主 Sheet 与历史工作经历 Sheet 共 2 行导入成功，详情接口回查历史工作经历 1 条。
  - 中介实体关联关系基于下载模板造数，导入成功 1 条，列表可回查关联职务。
- 清理情况：
  - 已删除本轮成功导入的招聘记录及历史工作经历。
  - 已删除本轮成功导入的中介实体关联关系。
  - 已删除本轮由导入自动补入的实体库测试数据。
- 真实页面检查：
  - 使用 `browser-use` 打开真实页面 `/maintain/staffRecruitment`，确认招聘信息导入弹窗显示新的双 Sheet 和招聘类型说明。
  - 使用 `browser-use` 打开真实页面 `/maintain/intermediary`，确认“导入中介实体关联关系”按钮可打开导入弹窗，字段说明与新增关联机构口径一致。
  - `browser-use` 当前不支持文件上传，页面文件选择动作无法在浏览器插件内完成；文件上传动作已通过同一真实导入接口完成验证。
- 测试完成后已停止本轮启动的后端与前端进程。
