# 公益性岗位管理与岗位推荐模块开发记录 ## 开发日期 2026-06-03 ## 模块概述 本次开发实现了"公益性岗位管理"和"岗位推荐"两个模块的完整后端+前端代码,严格参考 FocusPersonnel 模块的代码模式。 --- ## 模块1:公益性岗位管理(WelfarePost) ### 数据库表:WELFARE_POST | 字段 | 说明 | |------|------| | ID | 主键 | | ENTERPRISE_ID | 用人单位ID | | COMPANY_NAME | 用人单位名称 | | POST_NAME | 岗位名称 | | POST_TYPE | 岗位类型(社区服务/城市管理/公共管理/后勤服务) | | WORK_LOCATION | 工作地点 | | DETAILED_ADDRESS | 详细地址 | | RECRUIT_COUNT | 招聘人数 | | PLACED_COUNT | 已安置人数 | | SUBSIDY_STANDARD | 补贴标准 | | SUBSIDY_PERIOD | 补贴期限 | | SOCIAL_SECURITY_SUBSIDY | 社保补贴 | | POST_DESC | 岗位描述 | | POST_REQUIREMENT | 岗位要求 | | APPLY_METHOD | 报名方式(网上报名/现场报名) | | APPLY_DEADLINE | 报名截止日期 | | PUBLISH_STATUS | 发布状态(0未发布/1已发布) | | POST_STATUS | 岗位状态(招聘中/已满/已关闭) | | PUBLISHER | 发布人 | | PUBLISH_ORG | 发布机构 | | PUBLISH_TIME | 发布时间 | ### 后端文件 | 文件 | 路径 | |------|------| | WelfarePost.java | org.jeecg.modules.zjrs.welfarepost.entity.WelfarePost | | WelfarePostMapper.java | org.jeecg.modules.zjrs.welfarepost.mapper.WelfarePostMapper | | WelfarePostMapper.xml | org.jeecg.modules.zjrs.welfarepost.mapper.xml.WelfarePostMapper | | IWelfarePostService.java | org.jeecg.modules.zjrs.welfarepost.service.IWelfarePostService | | WelfarePostServiceImpl.java | org.jeecg.modules.zjrs.welfarepost.service.impl.WelfarePostServiceImpl | | WelfarePostController.java | org.jeecg.modules.zjrs.welfarepost.controller.WelfarePostController | ### 后端实现说明 - 实体类使用 `@TableName("welfare_post")`,主键使用 `@TableId(type = IdType.ASSIGN_ID)` - Controller 继承 `JeecgController`,/list 接口使用 `QueryGenerator` 自动构建查询条件(标准CRUD模式) - 权限前缀:`welfare_post` - Mapper XML 仅基础配置,不需要自定义SQL ### 前端文件 | 文件 | 路径 | |------|------| | WelfarePost.api.ts | views/welfarepost/WelfarePost.api.ts | | WelfarePost.data.ts | views/welfarepost/WelfarePost.data.ts | | WelfarePostList.vue | views/welfarepost/WelfarePostList.vue | | WelfarePostForm.vue | views/welfarepost/components/WelfarePostForm.vue | | WelfarePostModal.vue | views/welfarepost/components/WelfarePostModal.vue | ### 前端实现说明 - 列表字段:用人单位名称、岗位名称、岗位类型、工作地点、招聘人数、已安置人数、补贴标准、发布状态、岗位状态 - 查询字段:用人单位名称(输入框)、岗位名称(输入框)、岗位类型(下拉框)、发布状态(下拉框)、岗位状态(下拉框) - 表单分两个卡片区域:卡片1-用人单位信息、卡片2-岗位信息 - 下拉框使用 `a-select` 硬编码选项 ### Flyway菜单SQL - 文件:`V20260603_7__menu_insert_WelfarePost.sql` - 一级菜单ID:178060100000040 - 二级菜单ID:178060100000041 - 按钮权限ID:1780601000000411 ~ 1780601000000416 - 角色授权ID:1780601000000417 ~ 1780601000000424 --- ## 模块2:岗位推荐(JobRecommend) ### 数据库表:JOB_RECOMMEND | 字段 | 说明 | |------|------| | ID | 主键 | | PERSONAL_ID | 关联个人信息ID | | POST_ID | 关联岗位ID | | RECOMMEND_TYPE | 推荐类型(岗位推荐到人/人推荐到岗位) | | RECOMMEND_OPINION | 推荐意见 | | RECOMMEND_STATUS | 推荐状态(待查看/已查看/已接受/已拒绝) | ### 视图:v_job_recommend_list 关联 personal_info、post_info 和 enterprise_info 表,提供列表展示所需的关联字段。 ### 后端文件 | 文件 | 路径 | |------|------| | JobRecommend.java | org.jeecg.modules.zjrs.jobrecommend.entity.JobRecommend | | JobRecommendPageVo.java | org.jeecg.modules.zjrs.jobrecommend.entity.JobRecommendPageVo | | JobRecommendMapper.java | org.jeecg.modules.zjrs.jobrecommend.mapper.JobRecommendMapper | | JobRecommendMapper.xml | org.jeecg.modules.zjrs.jobrecommend.mapper.xml.JobRecommendMapper | | IJobRecommendService.java | org.jeecg.modules.zjrs.jobrecommend.service.IJobRecommendService | | JobRecommendServiceImpl.java | org.jeecg.modules.zjrs.jobrecommend.service.impl.JobRecommendServiceImpl | | JobRecommendController.java | org.jeecg.modules.zjrs.jobrecommend.controller.JobRecommendController | ### 后端实现说明 - 实体类使用 `@TableName("job_recommend")`,只包含表自身字段 - PageVo 映射视图字段,包含:id, personalId, postId, recommendType, recommendOpinion, recommendStatus, fullName, gender, contactPhone, education, postName, workLocation, companyName - Mapper 添加 `queryPageList` 方法,从视图 `v_job_recommend_list` 查询 - Controller /list 接口使用 `queryPageList`(参考 FocusPersonnelController 模式) - 权限前缀:`job_recommend` ### 前端文件 | 文件 | 路径 | |------|------| | JobRecommend.api.ts | views/jobrecommend/JobRecommend.api.ts | | JobRecommend.data.ts | views/jobrecommend/JobRecommend.data.ts | | JobRecommendList.vue | views/jobrecommend/JobRecommendList.vue | | JobRecommendForm.vue | views/jobrecommend/components/JobRecommendForm.vue | | JobRecommendModal.vue | views/jobrecommend/components/JobRecommendModal.vue | ### 前端实现说明 - 列表字段:姓名、性别、联系电话、学历、岗位名称、工作地点、单位名称、推荐类型、推荐状态、推荐意见 - 查询字段:姓名(输入框)、推荐类型(下拉框)、推荐状态(下拉框)、岗位名称(输入框)、单位名称(输入框) - 表单字段:关联个人信息(personalId)、关联岗位(postId)、推荐类型(下拉框)、推荐意见(文本域)、推荐状态(下拉框) - 下拉框使用 `a-select` 硬编码选项 ### Flyway菜单SQL - 文件:`V20260603_8__menu_insert_JobRecommend.sql` - 一级菜单ID:178060100000050 - 二级菜单ID:178060100000051 - 按钮权限ID:1780601000000511 ~ 1780601000000516 - 角色授权ID:1780601000000517 ~ 1780601000000524 --- ## 注意事项 1. 所有Java注释使用中文 2. Flyway SQL不使用反引号(达梦数据库兼容) 3. 实体类使用 `@TableId(type = IdType.ASSIGN_ID)` 4. Controller 继承 `JeecgController` 5. 不使用视图的模块(公益性岗位),/list接口使用标准QueryGenerator模式 6. 使用视图的模块(岗位推荐),/list接口参考FocusPersonnelController的queryPageList模式 7. 前端表单下拉框使用 `a-select` 硬编码选项 8. Flyway SQL中INSERT语句每行一个,不多行VALUES 9. 岗位推荐模块依赖视图 `v_job_recommend_list`,需先执行视图创建SQL