# 重点关注人员管理(3.2.1)- P0任务实现记录 ## 修改日期:2026-06-04 ## 一、任务说明 根据"需求与现有实现对比分析",实施P0优先级任务: 1. 数据库初始化(字典) 2. 详情页面完善(展示30个字段) 3. 补充查询条件 --- ## 二、修改文件清单 ### 2.1 新增文件 | 序号 | 文件路径 | 说明 | |:----:|----------|------| | 1 | `jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/V20260604_1__init_focus_personnel_dict.sql` | 字典数据初始化SQL脚本 | | 2 | `jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/V20260604_2__menu_insert_FocusPersonnel_buttons.sql` | 补充5个按钮权限SQL | | 3 | `jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/src/main/java/org/jeecg/modules/zjrs/focuspersonnel/entity/FocusPersonnelDetailVo.java` | 详情VO(含个人信息30个字段) | | 4 | `jeecgboot-vue3/src/views/focuspersonnel/components/FocusPersonnelDetail.vue` | 前端详情展示组件(分5个分组展示30个字段) | ### 2.2 修改文件 | 序号 | 文件路径 | 修改内容 | |:----:|----------|----------| | 1 | `FocusPersonnel.java` | minorTag字段添加@Dict注解(focus_minor_tag字典) | | 2 | `FocusPersonnelMapper.java` | 新增queryDetailById方法 | | 3 | `FocusPersonnelMapper.xml` | 新增detail查询SQL(LEFT JOIN personal_info);列表查询补充5个查询条件 | | 4 | `IFocusPersonnelService.java` | 新增queryDetailById接口方法 | | 5 | `FocusPersonnelServiceImpl.java` | 实现queryDetailById方法 | | 6 | `FocusPersonnelController.java` | 新增queryDetailById端点;补充5个查询参数 | | 7 | `FocusPersonnel.api.ts` | 新增queryDetailById API | | 8 | `FocusPersonnelList.vue` | **重新设计**:去除高级搜索;查询条件改为10个(按需求文档);新增"刷新生成"按钮;操作栏扩展为详情/服务跟进/岗位推送/消息推送/自定义标签/删除 | | 9 | `FocusPersonnelModal.vue` | 新增detail方法,支持详情/编辑双模式切换 | | 10 | `FocusPersonnelForm.vue` | minorTag改为字典选择器(focus_minor_tag) | | 11 | `FocusPersonnel.data.ts` | minorTag列添加dictCode配置;清空superQuerySchema(暂不使用高级查询) | --- ## 三、数据库初始化详细说明 ### 3.1 字典数据 | 字典编码 | 字典名称 | 字典项数 | 说明 | |----------|----------|:--------:|------| | `focus_major_tag` | 人员大类标签 | 2 | 就业困难人员、脱贫人员(见习人员已独立为见习人员管理模块) | | `focus_minor_tag` | 人员小类标签 | 16 | 含就业困难人员13类、脱贫人员3类(不含见习人员小类) | ### 3.2 补充的按钮权限 | 权限ID | 权限标识 | 名称 | 状态 | |--------|----------|------|------| | 178060400000050 | `focus_personnel:refresh` | 刷新生成 | 占位(待开发) | | 178060400000051 | `focus_personnel:messagePush` | 消息推送 | 占位(待开发) | | 178060400000052 | `focus_personnel:jobPush` | 岗位推送 | 占位(待开发) | | 178060400000053 | `focus_personnel:serviceFollow` | 服务跟进 | 占位(待开发) | | 178060400000054 | `focus_personnel:customTag` | 自定义标签 | 占位(待开发) | --- ## 四、后端详情接口 ### GET /focusPersonnel/queryDetailById?id={id} **请求参数:** id(重点关注人员主键) **返回数据:** FocusPersonnelDetailVo(30个字段) **业务逻辑:** - 以focus_personnel为主表 - LEFT JOIN personal_info 通过personal_id关联 - 同时计算年龄(TIMESTAMPDIFF) ### 查询条件补充 列表查询新增5个查询条件: - 户口所在地(householdLocation,模糊匹配) - 现居住地(currentResidence,模糊匹配) - 人员小类标签(minorTag,精确匹配) - 自定义标签(customTag,模糊匹配) --- ## 五、前端详情组件 详情页面分5个分组展示: | 分组 | 包含字段 | 字段数 | |------|----------|:------:| | 基本信息 | 姓名、性别、证件类型、证件号码、出生日期、年龄、民族、国籍、婚姻状况、政治面貌 | 10 | | 教育背景 | 学历、毕业日期、毕业院校、专业 | 4 | | 联系信息 | 联系电话、邮箱、QQ号码、微信号 | 4 | | 户籍与居住 | 户口性质、户口所在地、现居住地、现居住地址 | 4 | | 求职信息 | 求职人员类别、求职状态、工作经验、职业技能等级、是否留学人才、是否接受推荐职位 | 6 | | 标签信息 | 人员大类标签、人员小类标签、自定义标签 | 3 | --- ## 六、前端搜索条件(10个,按需求文档) | 序号 | 字段 | 控件类型 | 查询方式 | |:----:|------|----------|----------| | 1 | 姓名 | a-input | 模糊 | | 2 | 性别 | a-select | 精确 | | 3 | 学历 | a-select | 精确 | | 4 | 户口所在地 | a-input | 模糊 | | 5 | 现居住地 | a-input | 模糊 | | 6 | 年龄 | a-input-number | 精确 | | 7 | 人员大类标签 | j-dict-select-tag | 精确 | | 8 | 人员小类标签 | j-dict-select-tag | 精确 | | 9 | 自定义标签 | a-input | 模糊 | | 10 | 就业状态 | a-select | 精确 | --- ## 七、前端操作栏(按需求文档) | 操作 | 权限标识 | 实现状态 | |------|----------|:--------:| | 编辑 | focus_personnel:edit | ✅ 已实现 | | 详情 | 无 | ✅ 已实现 | | 服务跟进 | focus_personnel:serviceFollow | ⚠️ 占位 | | 岗位推送 | focus_personnel:jobPush | ⚠️ 占位 | | 消息推送 | focus_personnel:messagePush | ⚠️ 占位 | | 自定义标签 | focus_personnel:customTag | ⚠️ 占位 | | 删除 | focus_personnel:delete | ✅ 已实现 | --- ## 八、注意事项 1. **SQL兼容性**:本项目使用达梦数据库,不支持反引号 `` ` ``,SQL中所有表名、字段名均未使用反引号 2. **字典兼容**:字典插入使用了 `SELECT ... WHERE NOT EXISTS` 条件判断,避免重复插入 3. **原有queryById接口保留不变**,新增queryDetailById接口用于详情页面 4. 前端详情组件通过 `watch record` 自动加载数据,无需手动调用 5. **不显示高级搜索**,按用户要求去除 6. **5个新增按钮均为占位**,需后续开发(刷新生成、消息推送、岗位推送、服务跟进、自定义标签) 7. 数据库不删除原有数据:V20260604_1 和 V20260604_2 脚本都用了 WHERE NOT EXISTS,重复执行不会报错