260605-见习岗位管理_公益性岗位管理_岗位推荐模块完善开发记录.md 8.5 KB

见习岗位管理、公益性岗位管理、岗位推荐模块完善开发记录

日期:2026-06-05 参考编码风格:重点人员管理(FocusPersonnel) 需求文档:湛江市人力资源和社会保障局智慧人社运营运维(2025-2027年)项目需求规格说明书-就业一湛通服务平台.docx


一、见习岗位管理模块完善

1.1 后端修改

InternshipPost.java 实体类

  • 改为继承 JeecgEntity,删除 implements SerializableserialVersionUIDid 字段
  • @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个方法:publishunpublishupdateApplyStatuscopyPost

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
  • 修改 deletedeleteBatch 方法:增加已发布岗位不允许删除的校验

1.2 前端修改

InternshipPost.api.ts

  • Api枚举增加 publishunpublishupdateApplyStatuscopy
  • 新增4个API导出方法:publish()unpublish()updateApplyStatus()copyPost()

InternshipPost.data.ts

  • 增加 publishStatusMapapplyStatusMap 状态映射常量
  • columns中 companyNatureidentityRequirementpublishStatusapplyStatus 增加 customRender 字典翻译
  • superQuerySchema中 publishStatusapplyStatus 增加 dictCode 配置

InternshipPostList.vue

  • 查询区域新增"单位性质"下拉选择条件
  • import扩展:新增 publish, unpublish, updateApplyStatus, copyPostcreateConfirm
  • 操作栏宽度从120调整为250
  • 新增4个业务方法:handlePublishhandleUnpublishhandleToggleApplyStatushandleCopy
  • 删除操作增加发布状态保护(已发布不允许删除)
  • 主操作栏:编辑/发布/取消发布按钮根据发布状态条件显示
  • 下拉操作栏:新增人员已满/恢复报名/复制按钮,删除按钮增加发布状态判断

InternshipPostForm.vue

  • validatorRules 从空对象改为13项完整验证规则(含邮箱和手机号格式验证)
  • submitForm 增加 publishNow 参数,支持保存并发布;使用浅拷贝避免修改原始formData

InternshipPostModal.vue

  • footer新增"保存并发布"按钮
  • 新增 handleSaveAndPublish() 方法

二、公益性岗位管理模块完善

2.1 后端修改

WelfarePost.java 实体类

  • 改为继承 JeecgEntity,删除 implements SerializableserialVersionUIDid 字段
  • @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个方法:publishunpublishupdatePostStatus

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
  • 修改 deletedeleteBatch 方法:增加已发布岗位不允许删除的校验

2.2 前端修改

WelfarePost.api.ts

  • Api枚举增加 publishunpublishupdatePostStatus
  • 新增3个API导出方法

WelfarePost.data.ts

  • 增加 publishStatusMappostStatusMap 状态映射
  • columns中 postTypepublishStatuspostStatus 增加 customRender 字典翻译
  • superQuerySchema中 postTypepublishStatuspostStatus 增加 dictCode 配置

WelfarePostList.vue

  • import扩展:新增 publish, unpublish, updatePostStatuscreateConfirm
  • 操作栏宽度从120调整为250
  • 删除操作增加已发布岗位不允许删除的判断
  • 新增3个业务方法:handlePublishhandleUnpublishhandleUpdatePostStatus
  • 主操作栏:编辑/发布/取消发布按钮根据发布状态条件显示
  • 下拉操作栏:新增设为已满/设为已关闭/恢复招聘按钮,删除按钮增加发布状态判断

WelfarePostForm.vue

  • validatorRules 增加8个必填字段验证规则
  • submitForm 增加 publishNow 参数,支持保存并发布

WelfarePostModal.vue

  • footer新增"保存并发布"按钮
  • 新增 handleSaveAndPublish() 方法

三、岗位推荐模块完善

3.1 后端修改

JobRecommend.java 实体类

  • 改为继承 JeecgEntity,删除 implements SerializableserialVersionUIDid 字段
  • @EqualsAndHashCode 改为 callSuper = true
  • 新增3个字段:recommender(推荐人)、recommendOrg(推荐机构)、recommendTime(推荐时间)
  • 增加 @Dict 字典翻译注解:
    • recommendType@Dict(dicCode = "recommend_type")
    • recommendStatus@Dict(dicCode = "recommend_status")

JobRecommendPageVo.java

  • 新增3个字段:recommenderrecommendOrgrecommendTime(含 @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 需新增 recommenderrecommend_orgrecommend_time 三个字段(由flyway脚本自动执行)
  2. 视图 v_job_recommend_list 需包含这三个新字段(需手动更新视图定义)
  3. 字典表需配置 recommend_typerecommend_status 字典项(由flyway脚本自动执行)
  4. 所有实体类改为继承 JeecgEntity 后,数据库表需有对应的审计字段(由flyway脚本自动执行)