# 见习岗位管理、公益性岗位管理、岗位推荐模块完善开发记录 > 日期:2026-06-05 > 参考编码风格:重点人员管理(FocusPersonnel) > 需求文档:湛江市人力资源和社会保障局智慧人社运营运维(2025-2027年)项目需求规格说明书-就业一湛通服务平台.docx --- ## 一、见习岗位管理模块完善 ### 1.1 后端修改 #### InternshipPost.java 实体类 - 改为继承 `JeecgEntity`,删除 `implements Serializable`、`serialVersionUID`、`id` 字段 - `@EqualsAndHashCode` 改为 `callSuper = true` - 增加 `@Dict` 字典翻译注解: - `publishStatus` → `@Dict(dicCode = "publish_status")` - `applyStatus` → `@Dict(dicCode = "apply_status")` - `companyNature` → `@Dict(dicCode = "company_nature")` - `identityRequirement` → `@Dict(dicCode = "identity_requirement")` - `applyMethod` → `@Dict(dicCode = "apply_method")` #### IInternshipPostService.java 服务接口 - 新增4个方法:`publish`、`unpublish`、`updateApplyStatus`、`copyPost` #### InternshipPostServiceImpl.java 服务实现类 - 实现 `publish`:校验岗位存在性→校验未发布→获取登录用户→设置发布人/发布机构/发布时间→默认报名状态"01" - 实现 `unpublish`:校验岗位存在性→校验已发布→重置发布状态及相关字段 - 实现 `updateApplyStatus`:校验岗位存在性→校验已发布→更新报名状态 - 实现 `copyPost`:复制业务字段→重置系统字段(发布状态/发布人等)→保存新记录 #### InternshipPostController.java 控制器 - 新增4个接口: - `PUT /internshipPost/publish` - 发布(权限 `internship_post:publish`) - `PUT /internshipPost/unpublish` - 取消发布(权限 `internship_post:publish`) - `PUT /internshipPost/updateApplyStatus` - 更新报名状态(权限 `internship_post:edit`) - `POST /internshipPost/copy` - 复制岗位(权限 `internship_post:add`) - 修改 `delete` 和 `deleteBatch` 方法:增加已发布岗位不允许删除的校验 ### 1.2 前端修改 #### InternshipPost.api.ts - Api枚举增加 `publish`、`unpublish`、`updateApplyStatus`、`copy` - 新增4个API导出方法:`publish()`、`unpublish()`、`updateApplyStatus()`、`copyPost()` #### InternshipPost.data.ts - 增加 `publishStatusMap` 和 `applyStatusMap` 状态映射常量 - columns中 `companyNature`、`identityRequirement`、`publishStatus`、`applyStatus` 增加 `customRender` 字典翻译 - superQuerySchema中 `publishStatus`、`applyStatus` 增加 `dictCode` 配置 #### InternshipPostList.vue - 查询区域新增"单位性质"下拉选择条件 - import扩展:新增 `publish, unpublish, updateApplyStatus, copyPost` 和 `createConfirm` - 操作栏宽度从120调整为250 - 新增4个业务方法:`handlePublish`、`handleUnpublish`、`handleToggleApplyStatus`、`handleCopy` - 删除操作增加发布状态保护(已发布不允许删除) - 主操作栏:编辑/发布/取消发布按钮根据发布状态条件显示 - 下拉操作栏:新增人员已满/恢复报名/复制按钮,删除按钮增加发布状态判断 #### InternshipPostForm.vue - `validatorRules` 从空对象改为13项完整验证规则(含邮箱和手机号格式验证) - `submitForm` 增加 `publishNow` 参数,支持保存并发布;使用浅拷贝避免修改原始formData #### InternshipPostModal.vue - footer新增"保存并发布"按钮 - 新增 `handleSaveAndPublish()` 方法 --- ## 二、公益性岗位管理模块完善 ### 2.1 后端修改 #### WelfarePost.java 实体类 - 改为继承 `JeecgEntity`,删除 `implements Serializable`、`serialVersionUID`、`id` 字段 - `@EqualsAndHashCode` 改为 `callSuper = true` - 增加 `@Dict` 字典翻译注解: - `publishStatus` → `@Dict(dicCode = "publish_status")` - `postType` → `@Dict(dicCode = "welfare_post_type")` - `postStatus` → `@Dict(dicCode = "welfare_post_status")` - `applyMethod` → `@Dict(dicCode = "apply_method")` #### IWelfarePostService.java 服务接口 - 新增3个方法:`publish`、`unpublish`、`updatePostStatus` #### WelfarePostServiceImpl.java 服务实现类 - 实现 `publish`:校验→获取登录用户→设置发布信息→默认岗位状态"招聘中" - 实现 `unpublish`:校验→重置发布状态及相关信息 - 实现 `updatePostStatus`:校验→更新岗位状态 #### WelfarePostController.java 控制器 - 新增3个接口: - `PUT /welfarePost/publish` - 发布(权限 `welfare_post:publish`) - `PUT /welfarePost/unpublish` - 取消发布(权限 `welfare_post:publish`) - `PUT /welfarePost/updatePostStatus` - 更新岗位状态(权限 `welfare_post:edit`) - 修改 `delete` 和 `deleteBatch` 方法:增加已发布岗位不允许删除的校验 ### 2.2 前端修改 #### WelfarePost.api.ts - Api枚举增加 `publish`、`unpublish`、`updatePostStatus` - 新增3个API导出方法 #### WelfarePost.data.ts - 增加 `publishStatusMap` 和 `postStatusMap` 状态映射 - columns中 `postType`、`publishStatus`、`postStatus` 增加 `customRender` 字典翻译 - superQuerySchema中 `postType`、`publishStatus`、`postStatus` 增加 `dictCode` 配置 #### WelfarePostList.vue - import扩展:新增 `publish, unpublish, updatePostStatus` 和 `createConfirm` - 操作栏宽度从120调整为250 - 删除操作增加已发布岗位不允许删除的判断 - 新增3个业务方法:`handlePublish`、`handleUnpublish`、`handleUpdatePostStatus` - 主操作栏:编辑/发布/取消发布按钮根据发布状态条件显示 - 下拉操作栏:新增设为已满/设为已关闭/恢复招聘按钮,删除按钮增加发布状态判断 #### WelfarePostForm.vue - `validatorRules` 增加8个必填字段验证规则 - `submitForm` 增加 `publishNow` 参数,支持保存并发布 #### WelfarePostModal.vue - footer新增"保存并发布"按钮 - 新增 `handleSaveAndPublish()` 方法 --- ## 三、岗位推荐模块完善 ### 3.1 后端修改 #### JobRecommend.java 实体类 - 改为继承 `JeecgEntity`,删除 `implements Serializable`、`serialVersionUID`、`id` 字段 - `@EqualsAndHashCode` 改为 `callSuper = true` - 新增3个字段:`recommender`(推荐人)、`recommendOrg`(推荐机构)、`recommendTime`(推荐时间) - 增加 `@Dict` 字典翻译注解: - `recommendType` → `@Dict(dicCode = "recommend_type")` - `recommendStatus` → `@Dict(dicCode = "recommend_status")` #### JobRecommendPageVo.java - 新增3个字段:`recommender`、`recommendOrg`、`recommendTime`(含 `@JsonFormat`/`@DateTimeFormat`) #### JobRecommendController.java - 修改 `add` 方法:自动填充推荐人/推荐机构/推荐时间(从登录用户获取) - 修改 `queryPageList` 方法:增加 `recommendTimeBegin`/`recommendTimeEnd` 时间范围查询参数 #### JobRecommendMapper.xml - 增加 `recommend_time >=` 和 `recommend_time <=` 的时间范围查询条件 ### 3.2 前端修改 #### JobRecommend.data.ts - 新增推荐人/推荐机构/推荐时间列 - 推荐类型和推荐状态增加 `customRender` 字典翻译 - 高级查询增加推荐时间 #### JobRecommendList.vue - 增加推荐时间范围选择器(`a-range-picker`) - 操作栏增加"推荐"按钮 - 重置时清空时间范围 #### JobRecommendForm.vue - 新增推荐人/推荐机构/推荐时间只读字段(disabled) - 增加表单验证规则(personalId/postId/recommendType 必填) --- ## 四、数据库迁移脚本 ### V20260605_2__alter_internship_post_and_welfare_post_tables.sql - `internship_post` 表增加5个审计字段(create_by, create_time, update_by, update_time, sys_org_code) - `welfare_post` 表增加5个审计字段 - `job_recommend` 表增加3个业务字段(recommender, recommend_org, recommend_time)+ 5个审计字段 ### V20260605_3__init_dict_and_permission_for_modules.sql - 初始化9个字典:publish_status, apply_status, company_nature, identity_requirement, apply_method, welfare_post_type, welfare_post_status, recommend_type, recommend_status - 初始化28个字典项 - 新增2个权限按钮:internship_post:publish, welfare_post:publish - 新增2条角色授权(admin角色) --- ## 五、注意事项 1. 数据库表 `job_recommend` 需新增 `recommender`、`recommend_org`、`recommend_time` 三个字段(由flyway脚本自动执行) 2. 视图 `v_job_recommend_list` 需包含这三个新字段(需手动更新视图定义) 3. 字典表需配置 `recommend_type` 和 `recommend_status` 字典项(由flyway脚本自动执行) 4. 所有实体类改为继承 `JeecgEntity` 后,数据库表需有对应的审计字段(由flyway脚本自动执行)