# 企业端面试管理、录用管理、简历管理 - 需求对齐修改记录 ## 修改日期 2026-06-16 ## 修改说明 按照需求规格说明书,对企业端小程序的简历管理、面试管理、录用管理三个模块进行需求对齐修改。主要解决现有实现与需求文档差异过大的问题。 --- ## 一、简历管理模块修改 ### 需求文档要求 - 列表展示字段:姓名、年龄、工作经验、学历、工作地点、应聘职位、投递时间、数据状态 - 待查看按钮:筛选通过、筛选不通过 - 邀请面试表单:面试时间、面试方式、面试联系人、面试联系电话(无面试地点) ### 修改内容 | 修改项 | 修改前 | 修改后 | 原因 | |--------|--------|--------|------| | 列表字段 | 显示"期望薪资" | 移除"期望薪资" | 需求文档无此字段 | | 列表字段 | "岗位名称" | "应聘职位" | 与需求文档术语一致 | | 按钮文字 | "通过"/"不通过" | "筛选通过"/"筛选不通过" | 与需求文档一致 | | 邀请面试表单 | 包含"面试地点"字段 | 移除"面试地点"字段 | 需求文档无此字段 | ### 修改文件 - `湛就业微信小程序/zjy-wxxcx/src/pages/enterprise/recruitment/index.tsx` --- ## 二、面试管理模块修改 ### 需求文档要求 - 列表展示字段:姓名、年龄、工作经验、学历、期望薪资、是否参加面试、面试说明、面试评价、应聘职位、面试时间 - Tab结构:待面试、面试通过、面试不通过(含面试待定) - 待面试按钮:面试通过、面试不通过、面试待定 - 面试不通过时需填写面试说明(失败原因) - 面试待定:可后续选择通过或不通过 ### 修改内容 | 修改项 | 修改前 | 修改后 | 原因 | |--------|--------|--------|------| | 列表字段 | 显示"面试方式" | 移除"面试方式" | 需求文档列表字段中无此项 | | Tab查询 | 面试不通过Tab只查result=2 | 同时查询result=2和result=3 | 需求要求"面试不通过(含面试待定)" | | 待面试按钮 | "通过"/"不通过" | "面试通过"/"面试不通过"/"面试待定" | 与需求文档一致,新增待定功能 | | 面试不通过操作 | 直接调用接口,无表单 | 弹窗填写面试说明(失败原因) | 需求要求不通过时需填写失败原因 | | 面试待定功能 | 无 | 新增interviewResult=3,待定记录可在不通过Tab中转为通过/不通过 | 需求文档要求 | | 面试不通过Tab | 无待定记录操作 | 待定记录显示"面试通过"/"面试不通过"按钮 | 需求要求待定可后续选择 | ### 新增后端接口 - `PUT /interviewRecord/pending?id=xxx` - 面试待定,设置interviewResult='3' - `GET /interviewRecord/enterpriseList` - 新增interviewResultIn参数,支持多值查询 ### 修改文件 - `湛就业微信小程序/zjy-wxxcx/src/pages/enterprise/interview/index.tsx`(重写) - `湛就业微信小程序/zjy-wxxcx/src/pages/enterprise/interview/index.scss`(添加待定按钮和状态标签样式) - `湛就业微信小程序/zjy-wxxcx/src/config/cgi.ts`(添加pending接口地址) - `湛就业微信小程序/zjy-wxxcx/src/utils/api.ts`(添加pendingInterview方法) - `JeecgBoot-main/.../interview/controller/InterviewRecordController.java`(添加pending接口、修改enterpriseList支持多值查询) - `JeecgBoot-main/.../interview/entity/InterviewRecord.java`(更新interviewResult注释,添加3-面试待定) --- ## 三、录用管理模块修改 ### 需求文档要求 - 列表展示字段:姓名、年龄、工作经验、学历、期望薪资、应聘职位、数据状态、录用时间 - Tab结构:待签约、未录入、已签约、已结束(4个Tab,无签订中Tab) - 待签约页面包含未签约(status=0)和签订中(status=1)的记录 - 待签约按钮:发起签约(仅status=0的记录) - 未录入/已签约/已结束:仅查看 ### 修改内容 | 修改项 | 修改前 | 修改后 | 原因 | |--------|--------|--------|------| | Tab结构 | 5个Tab:待签约/签订中/已签约/已结束/未录入 | 4个Tab:待签约/未录入/已签约/已结束 | 需求文档只有4个Tab | | 待签约Tab | 只显示status=0 | 同时显示status=0和status=1 | 需求要求待签约含签订中 | | 列表字段 | 显示"工作地点"/"录用薪资"/"预计入职日期" | 移除这三个字段 | 需求文档列表字段中无此项 | | 列表字段 | 无"录用时间" | 新增"录用时间"(使用createTime) | 需求文档要求 | | 列表字段 | "岗位名称" | "应聘职位" | 与需求文档术语一致 | | 待签约按钮 | "推进签约" | "发起签约" | 与需求文档一致 | | 签订中记录 | 单独Tab,有"确认签约"按钮 | 在待签约Tab中显示,无按钮,提示"等待求职者确认" | 需求要求签订中等待求职者确认 | | 已签约记录 | 有"完成"按钮 | 无按钮,仅查看 | 需求要求已签约仅查看 | ### 新增后端支持 - `GET /employmentOffer/enterpriseList` - 新增statusIn参数,支持多值查询 ### 修改文件 - `湛就业微信小程序/zjy-wxxcx/src/pages/enterprise/offer/index.tsx`(重写) - `湛就业微信小程序/zjy-wxxcx/src/pages/enterprise/offer/index.scss`(添加签订中提示样式) - `JeecgBoot-main/.../offer/controller/EmploymentOfferController.java`(修改enterpriseList支持多值查询) --- ## 四、字典数据补充 ### 新增SQL迁移文件 - `V20260616_4__init_interview_dict.sql` ### 字典项变更 | 字典编码 | 变更 | 说明 | |----------|------|------| | interview_result | 新增Code=3"面试待定" | 需求文档要求面试待定功能 | | interview_method | 确保存在 | 现场面试/视频面试/电话面试 | | attend_status | 确保存在 | 未反馈/参加/不参加 | --- ## 五、业务流程对照(修改后) ``` 求职者投递简历 → 企业收到简历(待查看) → 筛选通过 → 邀请面试 → 待面试 → 面试通过 → 录用 → 待签约(未签约) → 发起签约 → 签订中(等待求职者确认) → 求职者确认 → 已签约 → 已结束 → 面试不通过(需填写失败原因) → 面试待定 → 后续选择通过/不通过 → 面试通过但不录用 → 未录入 → 筛选不通过 → 可恢复简历回到待查看 ``` --- ## 六、深度检查发现的问题及修复 ### 6.1 后端fail接口重复代码 - **问题**:InterviewRecordController.fail()方法中,对resultRemark的判空和赋值有重复代码(两个if块做相同判断) - **修复**:合并为一个if块,同时设置interviewComment和resultRemark ### 6.2 个人端面试邀请"是否参加"未对接后端API - **问题**:个人端my-jobs页面中,面试邀请的"确认参加"/"不参加"按钮只弹出确认弹窗和Toast,未调用后端API更新attendStatus字段 - **修复**: - 后端新增 `PUT /interviewRecord/attend?id=xxx` 接口(设置attendStatus='1') - 后端新增 `PUT /interviewRecord/notAttend?id=xxx` 接口(设置attendStatus='2') - 前端CGI配置添加attend和notAttend接口地址 - 前端API添加attendInterview和notAttendInterview方法 - 个人端my-jobs页面的handleConfirm方法改为调用真实API ### 6.3 个人端录用通知/签约页面完全未实现 - **问题**:个人端my-jobs页面的"录取记录"Tab(Tab 2)只显示"暂无数据"空状态,完全没有实现 - **修复**: - 添加OfferItem数据结构定义 - 添加fetchOffers方法,调用API.queryMyOffers获取录用通知列表 - 实现renderOffers方法,展示录用通知卡片(录用单位、录用职位、录用薪资、预计入职日期、合同期限、录用时间、备注) - 待签约/签订中状态显示"确认签约"和"拒绝"按钮,调用API.confirmOffer和API.rejectOffer - 添加录用状态样式映射(s-signing/s-signed/s-ended) - Tab切换和下拉刷新支持录用通知Tab ### 6.4 个人端面试邀请查询条件硬编码 - **问题**:fetchInterviews方法中interviewResult硬编码为'0',只能查看待面试状态 - **修复**:移除interviewResult参数,查询所有状态的面试邀请 ### 6.5 个人端面试状态映射不完整 - **问题**:INTERVIEW_STATUS_CLASS_MAP只有3种状态(0/1/2),缺少面试待定(3) - **修复**:添加面试待定状态映射,interviewResult='3'对应s-pending样式 ### 6.6 个人端面试邀请展示字段优化 - **问题**:面试邀请展示字段使用companyName,但后端返回的字段名是enterpriseName - **修复**:InterviewItem接口添加enterpriseName字段,展示使用item.enterpriseName - **补充**:添加attendStatus和interviewComment字段的展示(是否参加、面试说明) ### 修改文件(深度检查新增) - `JeecgBoot-main/.../interview/controller/InterviewRecordController.java`(添加attend/notAttend接口、修复fail重复代码) - `湛就业微信小程序/zjy-wxxcx/src/config/cgi.ts`(添加attend/notAttend接口地址) - `湛就业微信小程序/zjy-wxxcx/src/utils/api.ts`(添加attendInterview/notAttendInterview方法) - `湛就业微信小程序/zjy-wxxcx/src/pages/personal/my-jobs/index.tsx`(重写:修复面试邀请API对接、实现录用通知页面) - `湛就业微信小程序/zjy-wxxcx/src/pages/personal/my-jobs/index.scss`(添加录用状态样式) --- ## 七、注意事项 1. 面试待定(interviewResult='3')是新增状态值,需确保数据库字典项已添加 2. 录用管理的"签订中"状态不再是独立Tab,合并到待签约Tab中展示 3. 面试不通过操作现在必须填写面试说明(失败原因),对应后端interviewComment字段 4. 后端enterpriseList接口新增interviewResultIn/statusIn参数,兼容原有interviewResult/status参数 5. 录用时间使用offer记录的createTime字段